CSS3实现了左右固定中间自适应的几种方法
1,弹性盒(flex)布局
中间 .center 区域设置 flex-grow: 1 或者 width: 100%
.container { width: 100%; min-height: 200px; background-color: red; display: flex; } .container .left { width: 200px; height: 200px; background-color: purple; } .container .right { width: 150px; height: 200px; background-color: blue; } .container .center { /* flex-grow: 1; */ width: 100%; height: 200px; background-color: orange; } <div class="container"> <div class="left"></div> <div class="center"></div> <div class="right"></div> </div>
2, 利用浮动(注意div排版的结构)
.container{ width: 100%; /* background-color: green; min-height: 500px; */ } .left{ width: 200px; height: 300px; background-color: pink; float: left; } .right{ width: 150px; height: 300px; background-color: purple; float: right; } .center{ height: 300px; margin-left: 200px; margin-right: 150px; background-color: blue; } <div class="container"> <div class="left"></div> <div class="right"></div> <div class="center"></div> </div>
3,定位 (注意div排版的结构)
.container { width: 100%; position: relative; } .left { width: 200px; height: 300px; background-color: pink; position: absolute; top: 0; left: 0; position: absolute; } .right { width: 150px; height: 300px; background-color: purple; position: absolute; top: 0; right: 0; } .center { height: 300px; margin-left: 200px; margin-right: 150px; background-color: blue; } <div class="container"> <div class="left"></div> <div class="right"></div> <div class="center"></div> </div> 4, 双飞翼布局 left、center、right三种都设置左浮动 设置center宽度为100% 设置负边距,left设置负边距为100%,right设置负边距为自身宽度 设置content的margin值为左右两个侧栏留出空间,margin值大小为left和right宽度 body { min-width: 550px; font-weight: bold; font-size: 20px; } #container { overflow: hidden; } #left, #right, #center { float: left; } #center { width: 100%; background: rgb(206, 201, 201); } #left { width: 200px; margin-left: -100%; background: rgba(95, 179, 235, 0.972); } #right { width: 150px; margin-left: -150px; background: rgb(231, 105, 2); } .content { margin: 0 150px 0 200px; } <div id="container"> <div id="center"> <div class="content">#center</div> </div> <div id="left">#left</div> <div id="right">#right</div> </div>