布局是面试中和理论开发中常常遇到的问题,常见的有两栏布局、三栏布局等。想起来之前的一次某团的面试,要求用尽可能多的办法实现左侧固定宽度、右侧自适应的两栏布局,现整顿一份最常见的实现两栏布局的几种办法,简略易懂,可作为前端面试筹备材料。
0.HTML构造如下:
<div class="main"> <div class="left"> </div> <div class="right"> </div> </div>
1.利用浮动float
<style> .main { overflow: hidden; } .left { /* 左栏设置左浮动 */ float: left; width: 400px; height: 500px; background: red; } .right { /* 右栏设置一个左外间距,值为左栏的宽度 */ margin-left: 400px; background: blue; height: 500px; } </style>
2.利用定位position
<style> /* 子绝父相 */ .main { overflow: hidden; position: relative; } .left { position: absolute; left: 0; top: 0; width: 400px; height: 500px; background: red; } .right { /* 右栏设置一个左外间距,值为左栏的宽度 */ margin-left: 400px; height: 500px; background: blue; } </style>
3.利用弹性布局flex
<style> .main { display: flex; } .left { height: 500px; background: red; flex: 0 0 400px } .right { background: blue; height: 500px; flex: 1; } </style>
4.利用表格布局table
<style> .main { display: table; width: 100%; } .left { display: table-cell; width: 400px; height: 500px; background: red; } .right { display: table-cell; background:blue; height: 500px; } </style>
【作者程度无限,欢送大家在评论区交换斧正~】