这篇文章通过flex来解决高度自适应问题,纯用css,还是昨天这个例子
需求和上篇文章一样,这里再重复一遍
html结构如下:
<div id="root"> <header> test </header> <main> content </main> </div>
首先要定义一个弹性容器,然后根据需求我们得知弹性盒子中内容是纵向排列,高度占满全屏,这里我们height用100vh,(注意:height:100%等同于height:100vh,但是前者div不会撑开)
接下来直接上css代码
body { margin: 0; padding: 0; } #root { display: flex; flex-direction: column; height: 100vh; } header { height: 50px; flex: 0 0 auto; background: orange; } main { flex-grow: 1; background-color: blueviolet; }
ok了,写这篇文章,是因为之前项目中遇到一个这么要死的布局,被需求三弄的头痛,后面在一个大佬的指点下选择了flex,所以作为一个小小的编程技巧留用。
另外补充一下flex的桃园三兄弟之flex-grow、flex-shrink、flex-basis详解(这是别人博客里面看到,个人觉得蛮好理解弄过来的,这里只给定义解释,具体实例,还请参考:https://blog.csdn.net/m0_37058714/article/details/80765562)
在flex布局中,父元素在不同宽度下,子元素是如何分配父元素空间的。
(注意:这三个属性都是在子元素上设置的,下面小编要讲的是父元素,指以flex布局的元素(display:flex))
小编这里先教一下大家如何快速记住这三个属性: