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属性,里面写针对子盒子的排列方式。
上图说明了代码中的四种排列方式的效果,大家可以把以上代码复制出来自己测试一下。
fighting本人今年22了,正在读中专,可别笑话,当初我还是一个初中刚毕业的小子,没有太多的杂念,于是就和师傅做学徒学习焊工,历经艰苦三年后,我做了一名普通的焊工师傅.回想2003年一年本人感觉吃的苦太多了,可是年末当我回家时,师傅仅给我1400元钱.好歹20岁做了师傅.又经过了一年半后,我觉得做个普通的焊工,根本上不能改变我的命运,于是我在多方阻挠下来到武汉二轻工业学校学习数控技术,现在已经学习了一年.头一年里专业课很少,我得以在业余学习C语言,现在还在学习中,我已经六年没在读书了,感觉自己的脑子没有别人转得快,现在先自学习C语言,然后学习数控编程,我想没错吧,学习了C语言,我觉得C能锻炼我的大脑思维.我只是一个业余编程爱好者,我只想以后做个优秀的数控程序员,至于计算机专业的编程我没敢想过做出什么成绩来.从焊工到数控编程,我一定行.我还想学习VB,不知学了对我有没有用.我和以上的楼主在计算机专业不敢相提并论,望多多指教.真知灼见啊,作为一名初学者能看到这样的文章实在是一种幸福 好贴! 支持! 很不错的文章! 我刚来本论坛,看了之后,给予我的是动力,我决心好好学习编程,不知有那为高手可以成为我的交流对象啊!! 编程 a我不懂但是我正要学编程呢希望我能学的不一定有你好 但也要和你一样可可 够qiang 在这之前.我还很盲目.不知道到底要学什么 虽然现在还看不懂..不过对我学习编程有很大的帮助.谢谢 看这篇文章的时候,当作者给出了两个程序而监考官依然不满意的时候,我也思考了一下更优的解法,也许就是-1的连续相乘呢..我很高兴我的判断是对的,我学c语言的时间不怎么长,也有做过那样的题目,老师给出的答案也跟作者写的差不多..其实初看到题目的时候,我也有过那种简洁的思路,只是那种想法转瞬即逝..有一次,我重复做一道老师给的题目(附答案),后来我把程序给我的男朋友做(他也是学计算机的,而且算法还可以),他说老师的做法太差,然后给了我他做的答案....有时候,一些算法还是要靠我们自己去摸索的....感谢作者让我重新认识到这一点! 很受感动 学海无涯啊 我现在 刚刚 高中 毕业 现在 自学 VB 我要坚持