两栏布局实现
实现效果:左边固定,右边自适应
实现三部曲:左浮动,右溢出隐藏,外盒子清除浮动
<div id="app">
<div class="left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
<div class="main">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tenetur mollitia vero reprehenderit autem commodi hic nam debitis atque quo fugiat distinctio fugit. Harum blanditiis porro quasi maxime sapiente eveniet ipsum.
</div>
</div>
#app::after{
content: '';
display: block;
clear: both;
}
.left{
width: 100px;
float: left;
background-color: red;
}
.main{
overflow: hidden;
background-color: yellow;
}
看效果:
做常用的,也是必须掌握的两栏布局就完成了。
解释效果实现原理:left左浮动,常规流main就会直接显示上去,默认占满宽度。而main添加overflow(不是默认值visible就行)会触发bfc(一个独立渲染区域),就会避开浮动元素,只撑开剩余内容,从而实现右边自适应(内部实现应该是在main左边添加了外边距)。
至于给父盒子清除浮动,是因为左边浮动,高度不计算在内了,所以清除浮动,确保把父元素盒子撑开。
很多很多网站都是这样布局,这种方式也能实现三栏布局??勺约合胍幌?,很简单。然后看下面提示:
左浮动,右浮动,中间overflow,父盒子清除浮动。
其实实现方式大同小异,不过要注意一点,不管两栏还是三栏布局,浮动元素一定要放在自适应盒子的上面。