flex弹性盒模型

flex 意思是弹性布局,用来给盒模型提供最大的灵活度,指定容器中的项目为弹性布局,类似于float:left;

比float的好处是容器没有设置高度,会根据项目来自适应高度,我们都知道,设置float属性,如果没有设置高度,那么容器会脱离文档流,需要清除浮动,才可以根据项目的高度规定高度。

父元素称之为容器,子元素称之为项目

水平的方向叫主轴, 水平和垂直交叉点,称之为交叉轴

flex中如果子元素中的总宽度不超过父级,那么就正常排列,
flex中如果子元素中的总宽度超过父元素,那么就按照父级的宽度均分,而且不受边框和内边距的影响
下面是代码,设置了display:flex,容器中的项目则自动左浮动,且ul没有设置高度,

 


效果

 flex-direction 改属性决定了项目(即子元素)排列的方向

 

row(默认值)水平方向左以左边为起点排列

row-reverse 水平方向以右边终点为起点排列

代码

效果

column 垂直方向,起点在左上角

代码

效果

column-reverse 垂直方向,起点在下边,类似于把子元素翻转了

代码

效果

flex-wrap:wrap 设置了该属性,如果子元素的宽度超出了父元素的宽度,则会换行

上面说了设置了dispay:flex,flex中如果子元素中的总宽度不超过父级,那么就正常排列(按照实际像素排列),

flex中如果子元素中的总宽度超过父元素,那么就按照父级的宽度(按百分比)均分,而且不受边框和内边距的影响
 
我们有时候想即使子元素的宽度超过了父元素的宽度,想让子元素不按照百分比,按照实际像素换行,那么我们可以设置flex-wrap;wrap
 下面的子元素的总宽度明显超出了父元素的总宽度,超出则按照父元素宽度的百分比排列,子元素的实际宽度失效。

 

效果

 

那么我想让子元素的宽度即使超出了父元素的宽度,不需要按照百分比,则是按照子元素的实际宽度排列,我们这里可以设置flex-wrap:wrap属性就可以

 

效果如下

可以看出设置了flex-wrap:wrap,子元素的宽度超出了父元素的宽度,就按照子元素的实际宽度排列,就会换行。


 

转载于:https://www.cnblogs.com/pangbo1213/p/7352001.html

<think>好的,用户问的是微信小程序中flex弹性盒模型的布局。首先,我需要回忆一下flex布局的基本概念。Flexbox是一种CSS布局模式,用于高效地排列、对齐和分配容器内项目的空间,即使它们的大小未知或动态变化。在微信小程序中,WXML和WXSS的结构类似于HTML和CSS,所以flex布局的应用应该和网页开发类似。 接下来,我需要确认用户的需求。他们可能是在开发微信小程序时遇到了布局问题,或者想学习如何使用flex来设计响应式布局。用户可能对flex的基本属性不太清楚,或者不知道如何在小程序的具体环境中应用。 然后,我应该从基础开始解释,包括flex容器的创建,主轴和交叉轴的概念,以及常用的属性如flex-direction、justify-content、align-items等。可能需要给出示例代码,说明如何在WXSS中使用这些属性,并展示实际效果。 另外,考虑到微信小程序的环境,可能需要提到一些注意事项,比如兼容性或者特定的语法要求。例如,某些属性在小程序中的默认值可能不同,或者需要使用特定的单位如rpx。 还要注意用户可能的误区,比如混淆flex项目和容器的关系,或者对对齐属性的应用效果不清楚。这时候需要举例说明不同属性值的效果,帮助用户理解。 最后,根据用户的问题,生成相关问题,比如如何垂直居中、如何实现响应式布局、如何调整项目间距等,这些都是常见的问题,能帮助用户深入理解和应用flex布局。 </think>微信小程序使用 WXSS(类似 CSS)支持 Flex 弹性盒模型布局,通过容器和子元素的属性控制排列方式。以下是核心概念和示例: ```html <!-- WXML 结构 --> <view class="container"> <view class="item">1</view> <view class="item">2</view> <view class="item">3</view> </view> ``` ```css /* WXSS 样式 */ .container { display: flex; /* 启用Flex布局 */ flex-direction: row; /* 主轴方向:row(水平)/column(垂直) */ justify-content: space-between; /* 主轴对齐方式 */ align-items: center; /* 交叉轴对齐方式 */ } .item { flex: 1; /* 子元素等分容器空间 */ min-width: 0; /* 防止内容溢出 */ } ``` **关键属性说明:** 1. `display: flex` - 启用Flex布局 2. `flex-direction`: 主轴方向 - `row`(默认):水平从左到右 - `column`:垂直从上到下 3. `justify-content`: 主轴对齐 - `flex-start`(默认) - `center` 居中 - `space-between` 两端对齐 4. `align-items`: 交叉轴对齐 - `stretch`(默认):拉伸填满 - `center` 居中 5. `flex: 1` - 子元素均分空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值