Flex 弹性盒子布局

这篇具有很好参考价值的文章主要介绍了Flex 弹性盒子布局。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么?

1. 弹性盒子布局概念

Flex 是 Flexible Box 的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。比如:

.box{
     display:flex;
}

容器、项目的理解?

采用 Flex 布局的元素,称为 Flex 容器(container),称为“容器”。它的所有子元素自动成为容器成员,称为 Flex 项目(item)。

下面借用别人一张图展示:

容器两根轴线:主轴、交叉轴:

水平的主轴(main axis):主轴的开始位置(与边框的交叉点)叫做 main start,结束位置叫做 main end;

垂直的交叉轴(cross axis):交叉轴的开始位置叫做 cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做 main size,占据的交叉轴空间叫做 cross size。

2. 容器的属性

详细记录各项属性之前,先看下基础样式代码及效果如下所示:

<div class="box">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
</div>
.box{
	width: 500px;
	height:200px;
	padding: 10px;
	border: 2px solid red;
	display: flex;
}
.item {
	width: 50px;
	height: 50px;
	color: white;
	font-size: 1.4em;
	text-align: center;
	line-height: 50px;
	margin: 1px 1px;
	background: #1f1d99;
}

默认的布局方式,由于子元素是 div 以及自身属于块级元素,所以独立占据一行,下面我们给外层盒子添加 display:flex看看效果:

2.1 flex-direction

设置主轴方向,即项目排列方式,默认 row。它有如下4个值:row、row-reverse column、column-reverse。

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

2.2 flex-wrap

默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap 属性定义,如果一条轴线排不下,如何换行,它有如下3个值:nowrap(默认)、wrap 、wrap-reverse

  • nowrap(默认):不换行。
  • wrap:换行,第一行在上方。
  • wrap-reverse:换行,第一行在下方。

2.3 flex-flow

flex-flow 是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row 、nowrap。

2.4 justify-content

设置项目在主轴上都对其方式,它有如下5个值:center、flex-start、flex-end、space-between、space-around。具体对齐方式与轴的方向有关,这里以主轴为从左到右为例:

  • flex-start(默认值):左对齐。
  • flex-end:右对齐。
  • center:居中。
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

2.5 align-items

align-items 属性定义项目在交叉轴上如何对齐,它有如下5个值:center、flex-start、flex-end、stretch(默认)、baseline 。具体的对齐方式与交叉轴的方向有关,这里以交叉轴从上到下为例:

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • stretch(默认):如果项目未设置高度或设为auto,将占满整个容器的高度。
  • baseline: 项目的第一行文字的基线对齐。

2.6 align-content

align-content 属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性与 align-items 属性效果相同。它有如下6个值:center、flex-start、flex-end、space-between、space-around、stretch。

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):轴线占满整个交叉轴。

参考:

https://baijiahao.baidu.com/s?id=1711671351238047881&wfr=spider&for=pc

3. 项目的属性

3.1 order

order 属性定义项目的排列顺序。数值越小,排列越靠前,默认为 0。

3.2 flex-grow

flex-grow 弹性放大,属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

3.3 flex-shrink

flex-shrink 弹性收缩,属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果设置为0,该项目不缩小。

3.4 flex-basis

flex-basis 在 Flex 布局中,一个 Flex 子项的宽度是由元素自身尺寸,flex-basis 设置的基础尺寸,以及外部填充(flex-grow)或收缩(flex-shrink)规则3者共同决定的。

参考:https://blog.csdn.net/qq_41635167/article/details/104190865

3.5 flex

flex 属性是 flex-grow、flex-shrink、和 flex-basis 的简写,默认值为 0 1 auto。后两个属性可选。

3.6 align-self

align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性。默认值为 auto,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch。

参考:https://zhuanlan.zhihu.com/p/440852043文章来源地址https://www.toymoban.com/news/detail-798321.html

到了这里,关于Flex 弹性盒子布局的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flex弹性布局详细介绍

    这里提供一个可以边学习边玩的flex学习网站:弹性盒青蛙 Flex布局是指弹性布局,其中Flex是Flexible Box的缩写,用来为盒状模型提供最大的灵活性。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。本文将介绍几种常见属性使用方法,以后也将不断更新补充(也欢迎

    2023年04月15日
    浏览(50)
  • 9-web前端 flex弹性布局

    1、flex弹性布局 设置方式:给父元素设置 display: flex,子元素可以自动挤压或拉伸   组成部分:     弹性容器     弹性盒子     主轴:默认在水平方向     侧轴 / 交叉轴:默认在垂直方向   例如:   2、主轴对齐方式   属性名:justify-content     属性值 效果 flex

    2024年02月08日
    浏览(48)
  • 弹性盒子布局 Flexbox Layout

    可以嵌套下去 1.display 属性 默认行排列 此时是 列拍 flex-direction属性——行布局 row 列布局:column flex-wrap 属性 折叠 flex-flow属性 包括 flex-direction 和flex-wrap flex-flow: row wrap 行排列 折叠 justify-content属性 元素在主轴上的对齐方式 左对齐 居中对齐 右对齐 两端对齐 拉手对齐 align

    2024年03月15日
    浏览(48)
  • 前端弹性布局神器display:flex【转】

    本文内容摘自博文 :https://www.cnblogs.com/qingchunshiguang/p/8011103.html、https://blog.csdn.net/ababab12345/article/details/119612918 在进行网页前端设计时,需要垂直居中显示文本,但CSS似乎没有明确的垂直居中的代码方法,由于目前的页面不再考虑以前的浏览器了,因此采用CSS3的display:flex方法

    2024年02月08日
    浏览(63)
  • html中的flex是什么?——弹性布局

    在HTML中,flex是一种布局方式,用于处理容器中的子元素的布局。它是CSS3的一部分,也被称为弹性布局。 通过使用flex布局,可以将容器中的子元素进行灵活的定位和扩展,以适应不同的屏幕尺寸和设备。它提供了一种简单而强大的方法来创建响应式的网页布局。 使用flex布局

    2024年01月17日
    浏览(44)
  • css3 flex弹性布局详解

    2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 是 Flexible Box 的缩写,意为\\\"弹性布局\\\",用来为盒状模型提供最大的灵活性。 开启flex布局:

    2024年02月05日
    浏览(45)
  • css之Flex弹性布局(父项常见属性)

    本篇博客会讲解css中的弹性布局的常见用法, 将一个div定义成flex容器,它分为主轴与交叉轴(其中左右边对应主轴的 start、end ,上下边对应交叉轴的 start、end ) 🪂行排列 flex-direction: row 🪂将行排列进行翻转排列 flex-direction: row-reverse 注意:由于翻转时主轴的start、end会进

    2024年02月08日
    浏览(52)
  • 【移动端网页布局】flex 弹性布局子项目属性 ① ( flex 属性用法说明 | 代码示例 : 占有剩余布局 / 平均分成若干等份 )

    flex 子项目 的常用属性 : flex 属性 : flex 子项目 在 flex 父容器 中 占有的 份数比例 , 如果都设置 1 , 那么将对应尺寸平分即可 ; align-self 属性 : 控制 flex 子项目 在 侧轴 的排列方式 ; order 属性 : 控制 flex 子项目 的排列顺序 ; 主要是修改前后顺序 , 原来是 1 - 2 - 3 排列顺序 , 可以

    2024年02月09日
    浏览(56)
  • flex布局 多种方法让两个盒子分布在左右两边

    方法一: 一个父盒子里面包含了两个子盒子的,可以用justify-content:space-between属性 div class=\\\'parent\\\'   div class=\\\"left\\\"/div   div class=\\\"right\\\"/div   /div  .parent {   display:flex;   flex-direction:row;   justify-content:space-between;   } 方法二: 先将子盒子靠右对齐 display:flex;justify-content:flex-end;

    2024年01月17日
    浏览(45)
  • “Flex弹性布局、轮播图mock遍历数据和首页布局解析与实践“

    在现代网页开发中,灵活性和响应式布局是至关重要的。为了实现这一目标,前端开发人员需要掌握各种先进的技术。本篇博客将深入介绍和讨论三个主要主题:Flex弹性布局、轮播图mock遍历数据和首页布局。我们将逐步展示这些技术的使用方法,并提供丰富的实例和信息。

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包