弹性盒布局

1、参考资料:

https://www.ibm.com/developerworks/cn/web/1409_chengfu_css3flexbox/


http://www.runoob.com/w3cnote/flex-grammar.html


2、flex基本布局

弹性盒布局的容器,使用"display: flex"声明使用弹性盒布局
flex-direction用来确定主轴的方向
flex-wrap属性的含义:是否占一行
flex-flow"属性把"flex-direction"和"flex-wrap"结合起来

3、容器中条目的顺序:order属性


4、条目尺寸的弹性:"flex"可以同时声明"flex-basis"、"flex-grow"和"flex-shrink"的值

"flex-basis"属性:flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小,即 width 或 height 属性的值。如果主轴尺寸属性的值也是 auto,则使用的值由条目内容的尺寸来确定。

"flex-grow"属性:值是一个没有单位的非负数,默认值是 1。"flex-grow"属性的值表示的是当容器有多余的空间时,这些空间在不同条目之间的分配比例。

比如,一个容器中有 3 个条目,其"flex-grow"属性的值分别为 1,2 和 3,那么当容器中有空白空间时,这 3 个条目所获得的额外空白空间分别占全部空间的 1/6、1/3 和 1/2,如代码清单 5所示。预览的页面见这里。
"flex-shrink"属性:在使用上类似于"flex-grow"。该属性的值也是无单位的,表示的是当容器的空间不足时,各个条目的尺寸缩小的比例。在进行尺寸缩小时,条目的缩小比例与"flex-basis"的值相乘之后,就得到了应该缩小的尺寸的实际值。

例如,在容器中有 3 个条目,其"flex-shrink"属性的值分别为 1,2 和 3。每个条目的主轴尺寸均为 200px。当容器的主轴尺寸不足 600px 时,比如变成了 540px 之后, 则需要缩小的尺寸 60px 由 3 个条目按照比例来分配。3 个条目分别要缩小 10px、20px 和 30px,主轴尺寸分别变为 190px、180px 和 170px。


5、条目对齐:
(1)第一种方式是使用自动空白边,即"margin: auto"。在使用自动空白边时,容器中额外的空白空间会被声明为 auto 的空白边占据
(2)第二种方式是在主轴方向上的对齐。这是通过容器上的"justify-content"属性来进行设置,可以调整条目在主轴方向上的对齐方式


(3)第三种方式是交叉轴方向上的对齐。除了在主轴方向上对齐之外,条目也可以在交叉轴方向上对齐。容器上的属性"align-items"用来设置容器中所有条目在交叉轴上的默认对齐方向,而条目上的属性"align-self"用来覆写容器指定的对齐方式。


6、交叉轴空白处理
属性“align-content”的可选值和含义,align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。


7、浏览器的支持


CSS3弹性布局(Flexbox)是一种用于创建灵活的、响应式的网页布局的技术。它通过定义容器和内部元素之间的关系来实现布局。以下是CSS3弹性布局的一些基本概念和属性: 1. 弹性容器(Flex Container):使用`display: flex;`或`display: inline-flex;`来定义容器为弹性容器。弹性容器的子元素将根据容器的规则进行布局。 2. 弹性项目(Flex Item):弹性容器中的子元素被称为弹性项目。可以使用`flex`属性来控制弹性项目在容器中的分布。例如,`flex: 1;`将使项目占据可用空间的比例为1。 3. 主轴(Main Axis)和交叉轴(Cross Axis):弹性容器具有主轴和交叉轴,它们决定了项目在容器内的布局方向。默认情况下,主轴是水平方向,交叉轴是垂直方向。 4. 弹性子属性: - `flex-direction`:指定主轴的方向(row、row-reverse、column、column-reverse)。 - `justify-content`:控制弹性项目在主轴上的对齐方式(flex-start、flex-end、center、space-between、space-around)。 - `align-items`:控制弹性项目在交叉轴上的对齐方式(flex-start、flex-end、center、baseline、stretch)。 - `align-self`:控制单个弹性项目在交叉轴上的对齐方式。可以覆盖`align-items`的设置。 - `flex-wrap`:指定是否换行(nowrap、wrap、wrap-reverse)。 - `flex-flow`:`flex-direction`和`flex-wrap`的简写形式。 - `align-content`:控制多行弹性项目在交叉轴上的对齐方式(flex-start、flex-end、center、space-between、space-around、stretch)。 CSS3弹性布局非常灵活,并且可以适应不同屏幕大小和设备。它被广泛应用于响应式网站设计和移动应用程序的开发中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值