龙空技术网

三栏布局,中栏自适应,且子元素高度自适应

盼少 68

前言:

此时同学们对“div高度自适应屏幕高度”都比较重视,朋友们都需要了解一些“div高度自适应屏幕高度”的相关资讯。那么小编也在网摘上收集了一些关于“div高度自适应屏幕高度””的相关资讯,希望我们能喜欢,各位老铁们一起来了解一下吧!

看下效果图先:

一、三栏布局,中栏自适应宽度很简单,关键点:

父元素设置 display: flex; 左右2栏确定宽度(数值/百分比)中间栏设置 flex:1;如果要布局好点,左右2栏可以靠边排,父元素设置 justify-content: space-between;

二、而子元素要占满剩余高度的css关键点:

父元素要设置 display: flex;父元素的主轴方向设置为纵向从上往下排列 flex-direction: column; 父元素的高度能确定,不管是定高(height: 500px;),还是 100% 其父元素的高度。或者是由其余元素可以确定整体文档高度的都可以。需要占满剩余高度的子元素,设置 flex:1;

html例子:

    <div id="app">        <div class="flex_between demo">            <div class="l1">                <div class="box box-1">1-1</div>            </div>            <div class="l2">                <div class="box box-1">2-1</div>                <div class="box box-2">                    <div class="hd">2-2</div>                    <div class="list myscroll">                        <p v-for="i in 100">{{ i }}</p>                    </div>                </div>            </div>            <div class="l3">                <div class="box box-1">3-1</div>                <div class="box box-2">3-2</div>                <div class="box box-3">3-3</div>            </div>        </div>    </div>

CSS例子:

<style>body { margin: 0; padding: 10px; background: #eee; }.flex_between { display: flex; justify-content: space-between; }.box { background: #fff; box-sizing: border-box; margin-bottom: 10px; text-align: center; font-size: 50px; }.box:last-child { margin-bottom: 0; }.demo .l1, .demo .l3 { width: 300px; }.demo .l2 { flex: 1; margin: 0 10px; }.demo .l1 { display: flex; flex-direction: column; }.demo .l1 .box-1 { flex: 1; }.demo .l2 .box-1 { height: 100px; }.demo .l2 .box-2 .hd { height: 60px; }.demo .l2 .list { height: calc(100vh - 190px); min-height: 300px; overflow-y: auto; font-size: 20px; }.demo .l3 { display: flex; flex-direction: column; }.demo .l3 .box-1 { height: 100px; }.demo .l3 .box-2 { height: 200px; }.demo .l3 .box-3 { flex: 1; }</style>

详细文档&代码demo,可查看:

标签: #div高度自适应屏幕高度 #css找子元素的父元素 #css设置元素宽度和高度 #css设置宽度不生效 #自适应宽度用到的css属性是