首页 > 健康知识

flex布局属性(使用Flex布局属性编写响应式网页布局优化)

Flex布局是CSS3*的一种弹性盒子布局,它利用直观的方式对容器中的元素进行布局控制,可以轻松实现柔性的响应式Web页面布局。本文将介绍Flex布局的几种主要属性,来帮助开发者更好的应用Flex布局优化页面布局,并实现响应式设计。

1. 容器和项目的设置

Flex最基本的概念是容器和项目。在Flex布局中,容器是放置项目的盒子,它定义了项目排列的规则和方向。要使用Flex布局,只需在容器上设置 display:flex 或 display:inline-flex ,并且容器需要设置所需的主轴方向。项目是容器中的子元素,在盒模型中具有“内容、内边距、边框、外边距”四个部分。项目的表现取决于容器设置的属性,开发者可以使用以下属性来控制容器和项目:1.1. 容器属性- flex-direction:决定主轴的方向(即项目的排列方向)。- flex-wrap:定义如何换行。- flex-flow:是以上两个属性的缩写,第一个属性定义了主轴的方向,第二个属性定义是否换行。- justify-content:定义主轴上项目的对齐方式。- align-items:定义交叉轴(与主轴垂直的轴)上的项目的对齐方式。- align-content:定义多根轴线的对齐方式。1.2. 项目属性- order:定义项目的排列顺序。数值越小,排列越靠前,默认为0。- flex-grow:定义项目的放大比例,默认为0,即如果存在剩余空间也不放大。- flex-shrink:定义了项目的缩小比例,默认为1,即当空间不足时,项目将缩小。- flex-basis:定义项目在分配多余空间之前,第一步将占据的主轴空间。- flex:是flex-grow、flex-shrink 和 flex-basis的一个简写,默认值为0 1 auto。后两个属性可选。- align-self:允许单个项目有与其他项目不同的对齐方式,可覆盖align-items属性。

2. 主轴 Flexbox 对齐

Flex居中似乎是Flex的最常见使用场景之一。Flex容器的justify-content属性可控制沿着container的主轴线如何分配项目的间隔空间。2.1. justify-content 属性的取值- flex-start:默认值。主轴上项目左对齐。- flex-end:主轴上项目右对齐。- center:主轴上项目居中对齐。- space-between:两端对齐,项目之间的间隔都相等。- space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。2.2. 对齐具有弹性,容器的大小固定时,项目分布也相应固定。如果我们为容器加宽,则这个画布会变得更大:.container{\tdisplay: flex;\twidth: 800px;\theight: 200px;\tbackground-color: pink;\tjustify-content: space-around;\talign-items: center;\tmargin: 20px auto;\t}.container div{\twidth: 50%;\theight: 80%;\tbackground-color: #1890ff;\tborder-radius: 15px;\tline-height: 200px;\tcolor: white;\ttext-align: center;\tfont-size: 30px;}

3. 侧轴 Flexbox 对齐

容器这一维度的对齐方式非常好理解,而这个交叉维度的对齐就有些复杂。align-items 确定了包含器上子项的纵向对齐方式,而不是横向。3.1. align-items属性的取值- flex-start:交叉轴的起点对齐。- flex-end:交叉轴的终点对齐。- center:交叉轴的中点对齐。- baseline: 项目的第一行文字的基线对齐。- stretch(默认):如果项目未设置高度或设置为auto,将占满整个容器的高度。

4. 轴线方向的控制

使用 flex-direction 属性可以实现与常规水平对齐的传统页面不同的布局方式,这意味着你可以采用新的布局思想,而不受浪费过多 CSS 代码的影响。要特别注意的是,它只会影响项目的对齐方法(开始,结束、居中对齐等等),而不影响项目自身的方向性。4.1. flex-direction 属性的取值- row:主轴为水平方向,起点在左端。- row-reverse:主轴为水平方向,起点在右端。- column:主轴为垂直方向,起点在上端。- column-reverse:主轴为垂直方向,起点在下端。

5. 其他 Flexbox 属性

5.1. flex-wrapflex-wrap属性定义多行包装,或者单行包装。- nowrap:默认。不换行。- wrap:换行,第一行在上方。- wrap-reverse:换行,第一行在下方。5.2. align-content如果有多行,该属性定义了各行之间的对齐方式,类似于 align-items,但它不是在单行中工作。- flex-start:与交叉轴的起点对齐。- flex-end:与交叉轴的终点对齐。- center:与交叉轴的中点对齐。- space-between:与交叉轴的起点对齐,行之间的间隔相等。- space-around:每行两边的间隔相等。所以,行之间的间隔比行与边框的间隔大一倍。- stretch(默认值):拉伸行以占据剩余的空间。

6. Flexbox 常见用例

以上我们比较着重的讲解了一下 Flexbox 的常用属性和对齐方式等等,下面我们来举一些常见的用例,更能感性的理解这个布局思路。6.1. 垂直居中.parent{\tdisplay: flex;\talign-items: center;\t}\t6.2. 等分宽度.parent{\tdisplay: flex;\tjustify-content: space-between;\t}\t6.3. 两端对齐.parent{\tdisplay: flex;\tjustify-content: space-between;\t\talign-items: center;\t}\t6.4. 由于块级元素缺乏宽度,为了使其具备水平方向上的框线,我们通常使用 flex 来完成这个目标。.parent{\tdisplay: flex;\tjustify-content: space-between;\t}.children{\tdisplay: inline-flex;\twidth: 20%;\t}

结论

Flexbox 通过定义它们需要的轴上元素的弹性容器和可选子元素大小规则,对它们停放的方式进行了精确的定义。这种对项目的分布控制意味着,可以在列和行之间配对,而不必通过任意采用其他格式化方法的装饰性元素来翻译这份信息。从而使得Flexbox成为响应式Web页面布局的利器。

本文链接:http://xindalouti.com/a/3382959.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。