欢迎来真孝善网,为您提供真孝善正能量书籍故事!

深入浅出:全面解析Flex布局的语法要领

时间:11-07 民间故事 提交错误

大家好,今天给各位分享深入浅出:全面解析Flex布局的语法要领的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

image.png布局传统的解决方案是基于盒模型,依赖于display属性+position属性+float属性。对于那些特殊的布局来说非常不方便。例如,垂直居中并不容易实现。

image.png 2009年,W3C提出了一种新的解决方案——Flex布局,可以简单、完整、响应式地实现各种页面布局。目前,所有浏览器都支持它,这意味着现在可以安全地使用此功能。

bg2015071003.jpgFlex布局将成为未来布局的首选解决方案。 Flex布局将成为未来布局的首选解决方案。本文介绍其语法,下一篇给出常见布局的Flex编写方法。

一、Flex 布局是什么?

Flex是Flexible Box的缩写,意思是“灵活布局”,用于为盒状模型提供最大的灵活性。

任何容器都可以指定为Flex 布局。盒子{

显示:柔性;

}内联元素也可以使用Flex 进行布局。盒子{

display: 内联柔性;

}具有Webkit核心的浏览器必须添加-webkit前缀。盒子{

显示:-webkit-flex; /* Safari */

显示:柔性;

}注意,设置为Flex布局后,子元素的float、clear、vertical-align属性将失效。

二、基本概念

使用Flex 布局的元素称为Flex 容器(flex 容器),简称“容器”。它的所有子元素都会自动成为容器成员,称为Flex items(弹性项目),简称“items”。

image.png容器默认有两个轴:水平主轴(main axis)和垂直交叉轴(cross axis)。主轴的起始位置(与边界相交)称为主起点,结束位置称为主终点;交叉轴的起始位置称为交叉起点,结束位置称为交叉终点。

默认情况下,项目沿主轴排列。单个项目占用的主轴空间称为主尺寸,单个项目占用的横轴空间称为交叉尺寸。

三、容器的属性

在容器上设置以下6 个属性。

flex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content

3.1 flex-direction属性

flex-direction 属性决定主轴的方向(即项目的排列方向)。盒子{

弯曲方向: 行|行反转|专栏|列反转;

}image.png 它可能有4 个值。

row(默认):主轴是水平的,起点在左端。 row-reverse:主轴水平,起点在右端。柱:主轴垂直,起点位于上边缘。 column-reverse:主轴垂直,起点在下边缘。

3.2 flex-wrap属性

默认情况下,项目排列在一条线上(也称为“轴”)。 flex-wrap 属性定义了如果一个轴无法容纳的话如何换行。

图片.png.box{

flex-wrap: nowrap | Flex-wrap: nowrap |包裹|反转换行;

}它可能需要三个值。

(1)nowrap(默认):不换行。

image.png (2)wrap:换行,第一行在顶部。

image.png (3)wrap-reverse:换行,第一行在下面。

image.png

3.3 flex-flow

flex-flow 属性是flex-direction 属性和flex-wrap 属性的缩写。默认值为row nowrap。盒子{

flex-flow:||;

}

3.4 justify-content属性

justify-content 属性定义项目在主轴上的对齐方式。盒子{

justify-content: 弹性启动| justify-content:弯曲端|中心|之间的空格|周围空间;

}image.png 可能取5个值,具体对齐方式与轴的方向有关。以下假设主轴是从左到右。

flex-start (默认): 左对齐flex-end: 右对齐center: 居中space- Between: 两端对齐,项目之间的间距相等。 space-around:每个项目两侧的间距相等。因此,项目之间的空间是项目与边框之间的空间的两倍。

3.5 align-items属性

align-items 属性定义项目如何在横轴上对齐。盒子{

对齐项目: 弹性启动| 对齐项目:弯曲端|中心|基线|拉紧;

}image.png 可能需要5 个值。具体的排列方式与交叉轴的方向有关。下面假设交叉轴是从上到下。

flex-start:对齐交叉轴的起点。 flex-end:对齐交叉轴的终点。 center:对齐交叉轴的中点。基线: 项目第一行文本的基线对齐方式。拉伸(默认值):如果该项目没有设置高度或设置为auto,它将占据容器的整个高度。

3.6 align-content属性

align-content 属性定义多个轴的对齐方式。如果项目只有一个轴,则此属性无效。盒子{

对齐内容: 弹性启动|弯曲端|中心|之间的空格|周围空间|拉紧;

}image.png 该属性可能有6 个值。

flex-start:与交叉轴的起点对齐。 flex-end:与横轴的终点对齐。 center:与交叉轴的中点对齐。 space-after:与交叉轴两端对齐,轴之间的间隔均匀分布。 space-around:每个轴两侧等距。因此,轴之间的距离是轴与框架之间的距离的两倍。拉伸(默认):轴占据整个交叉轴。

四、项目的属性

项目上设置了以下6 个属性。

orderflex-growflex-shrinkflex-basisflexalign-self

4.1 order属性

order 属性定义项目的排列顺序。值越小,排名越高。默认值为0。物品{

订单:

}image.png

4.2 flex-grow属性

flex-grow 属性定义项目的放大比例。默认为0,即有剩余空间则不放大。物品{

弹性增长: /* 默认0 */

}image.png 如果所有项目的flex-grow 属性都为1,它们将平均划分剩余空间(如果有)。如果一个item的flex-grow属性为2,而其他item都为1,则前者占用的剩余空间是其他item的两倍。

4.3 flex-shrink属性

flex-shrink 属性定义项目的收缩率。默认为1,即如果空间不足,则item会缩小。物品{

弹性收缩: /* 默认1 */

}image.png 如果所有item的flex-shrink属性为1,当空间不足时,它们都会按比例缩小。如果其中一项的flex-shrink 属性为0,其他项为1,则当空间不足时,前者不会收缩。

负值对该属性无效。

4.4 flex-basis属性

flex-basis 属性定义分配多余空间之前项目的主要大小。浏览器使用该属性来计算主轴上是否有多余的空间。它的默认值为auto,即项目的原始大小。物品{

弹性基础:|汽车; /* 默认自动*/

可以设置为与width或height属性相同的值(如350px),item将占据固定的空间。

4.5 flex属性

flex 属性是flex-grow、flex-shrink 和flex-basis 的缩写。默认值为0 1 自动。最后两个属性是可选的。物品{

flex: 无| ["弹性增长""弹性收缩"? ||"弹性基础"]

}此属性有两个快捷值:auto(1 1 auto) 和none (0 0 auto)。

建议首先使用该属性,而不是分别编写三个单独的属性,因为浏览器会推断出相关值。

4.6 align-self属性

align-self 属性允许单个项目以不同于其他项目的方式对齐,从而覆盖align-items 属性。默认值为auto,表示继承父元素的align-items属性。如果没有父元素,则相当于拉伸。物品{

对齐-self: 自动|弹性启动|弯曲端|中心|基线|拉紧;

}image.png 该属性可能有6 个值。除auto外,其他与align-items属性完全相同。

用户评论

軨倾词

终于来了!我一直想学 flex 布局,这篇教程正好能帮我入门。

    有6位网友表示赞同!

断桥残雪

看标题感觉内容很干货,期待学习 flex 的语法规则~

    有16位网友表示赞同!

淡抹烟熏妆丶

我听说 flex 布局很强大,可以轻松实现网页布局,现在就来好好看看吧。

    有13位网友表示赞同!

念旧是个瘾。

之前尝试过 flex 布局,但总觉着不太理解,希望这篇教程能解释得更清楚。

    有6位网友表示赞同!

莫名的青春

想做一些精美的页面效果,觉得 flex 布局很有用,所以要去学习一下哦~

    有14位网友表示赞同!

又落空

好耶!终于有了学习 flex 语法的地方,之前网上找的资料太复杂了。

    有16位网友表示赞同!

你的眸中有星辰

这个教程能解决哪些常见的问题呢?比如如何实现水平排列啊垂直排列啊什么的。

    有16位网友表示赞同!

面瘫脸

看了很多视频教程,还是觉得文字讲解更直观易懂,希望这篇教程能有详细示例讲解哦。

    有19位网友表示赞同!

我就是这样一个人

学习 flex 布局可以让我前端开发的技能变强,这真棒!

    有10位网友表示赞同!

念初

准备做一个网店,想用 flex 布局来优化页面布局,这份教程来得太及时了!

    有5位网友表示赞同!

摩天轮的依恋

期待这篇教程能帮我更深入地理解 flex 的一些高级用法。

    有8位网友表示赞同!

浅巷°

学习新的网页布局技术总是令人兴奋,Flex 布局听起来很酷!

    有19位网友表示赞同!

←极§速

希望能学习到一些使用 flex 布局解决常见网页布局问题的技巧。

    有14位网友表示赞同!

坏小子不坏

准备把 flex 布局的语法记录下来做个笔记,方便以后复习理解。

    有16位网友表示赞同!

非想

希望这篇教程能提供不同浏览器下 flex 布局的表现对比,避免出现兼容性问题。

    有17位网友表示赞同!

滴在键盘上的泪

了解 flex 布局可以让我在项目开发中更灵活地设计页面。

    有14位网友表示赞同!

终究会走-

学习新的知识总是充满挑战和乐趣,期待这场 flex 布局之旅!

    有7位网友表示赞同!

尘埃落定

这篇教程是不是讲解了 flex 的属性值以及如何设置呢?

    有14位网友表示赞同!

君临臣

用 flex 布局设计页面应该会更加简洁高效吧?期待学习~

    有15位网友表示赞同!

【深入浅出:全面解析Flex布局的语法要领】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活