人亦已歌 发表于 2023-2-1 20:28:24

CSS核心(五十三)弹性布局flex弹性盒子的定义以及四种排列方式 flex-direction

弹性布局是目前主流的布局方式,相比之前的盒子模型而言,使用弹性盒子更加方便快捷。弹性布局还广泛应用于H5页面与小程序页面,是一种非常重要布局方法。

先说一下弹性布局的基本原理:
它是通过定义一个弹性盒子,然后使用一些属性可以控制盒子内部元素的排列方式。例如横向、纵向、横向倒序,纵向倒序。
而且,弹性盒子内部的元素尺寸也会被弹性盒子所限制,不足就自动拉伸,超出就自动缩小。
而且,还可以通过简单的属性设置控制弹性盒子内部元素的间距。
所以,在大多数情况下,如果使用弹性布局,我们几乎不需要使用定位,很快就可以将页面排版出来。

文本先从如何定义一个弹性盒子讲起。
在页面中定义一个div,使用css选择器选中该div,设置css属性为display:flex;,此时该div就是一个弹性盒子,在该盒子内部的元素,可以由弹性布局系列属性来控制。
.box{
display:flex;
}

然后请看代码:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>弹性布局flex弹性盒子的定义以及四种排列方式</title>
</head>
<style>
      .box{
                width:400px;
                height:500px;
                border:1px solid #000;
                /* 设置弹性容器 */
                display:flex;
                /* 纵向倒序排列 */
                flex-direction:column-reverse;      
                /* 纵向排列 */
                /* flex-direction: column; */
                /* 横向反向排列 */
                /* flex-direction: row-reverse; */
                /* 横向排列 */
                /* flex-direction: row; */
      }
      .box div{
                width:150px;
                height:200px;
                border:      5px solid #0f0;      
      }
</style>
<body>
<div class="box">
      <div>第一个盒子</div>
      <div>第二个盒子</div>
      <div>第三个盒子</div>
</div>
</body>
</html>



以上HTML代码中,我们在一个class为box的盒子中定义了三个子盒子,使用css选择器将父盒子设置为弹性盒子,然后再设置父盒子的CSS属性,里面写针对子盒子的排列方式。



上图说明了代码中的四种排列方式的效果,大家可以把以上代码复制出来自己测试一下。


小莲子妈妈 发表于 2023-2-19 16:34:45

fighting本人今年22了,正在读中专,可别笑话,当初我还是一个初中刚毕业的小子,没有太多的杂念,于是就和师傅做学徒学习焊工,历经艰苦三年后,我做了一名普通的焊工师傅.回想2003年一年本人感觉吃的苦太多了,可是年末当我回家时,师傅仅给我1400元钱.好歹20岁做了师傅.又经过了一年半后,我觉得做个普通的焊工,根本上不能改变我的命运,于是我在多方阻挠下来到武汉二轻工业学校学习数控技术,现在已经学习了一年.头一年里专业课很少,我得以在业余学习C语言,现在还在学习中,我已经六年没在读书了,感觉自己的脑子没有别人转得快,现在先自学习C语言,然后学习数控编程,我想没错吧,学习了C语言,我觉得C能锻炼我的大脑思维.我只是一个业余编程爱好者,我只想以后做个优秀的数控程序员,至于计算机专业的编程我没敢想过做出什么成绩来.从焊工到数控编程,我一定行.我还想学习VB,不知学了对我有没有用.我和以上的楼主在计算机专业不敢相提并论,望多多指教.真知灼见啊,作为一名初学者能看到这样的文章实在是一种幸福

cosf 发表于 2023-2-26 04:39:31

好贴! 支持!

女王 发表于 2023-3-1 20:59:38

很不错的文章!

IPA 发表于 2023-3-9 05:04:51

我刚来本论坛,看了之后,给予我的是动力,我决心好好学习编程,不知有那为高手可以成为我的交流对象啊!!

为爱走天涯 发表于 2023-3-15 09:55:46

编程 a我不懂但是我正要学编程呢希望我能学的不一定有你好 但也要和你一样可可 够qiang

127264444 发表于 2023-3-19 11:39:57

在这之前.我还很盲目.不知道到底要学什么

dantian 发表于 2023-3-25 04:32:26

虽然现在还看不懂..不过对我学习编程有很大的帮助.谢谢

chonghaohuang 发表于 2023-3-29 04:12:04

看这篇文章的时候,当作者给出了两个程序而监考官依然不满意的时候,我也思考了一下更优的解法,也许就是-1的连续相乘呢..我很高兴我的判断是对的,我学c语言的时间不怎么长,也有做过那样的题目,老师给出的答案也跟作者写的差不多..其实初看到题目的时候,我也有过那种简洁的思路,只是那种想法转瞬即逝..有一次,我重复做一道老师给的题目(附答案),后来我把程序给我的男朋友做(他也是学计算机的,而且算法还可以),他说老师的做法太差,然后给了我他做的答案....有时候,一些算法还是要靠我们自己去摸索的....感谢作者让我重新认识到这一点!

huangwei 发表于 2023-3-31 23:53:54

很受感动 学海无涯啊 我现在 刚刚 高中 毕业 现在 自学 VB 我要坚持
页: [1] 2 3 4
查看完整版本: CSS核心(五十三)弹性布局flex弹性盒子的定义以及四种排列方式 flex-direction