頁面結構以下:javascript
<div class="container"> <div class="left"> left </div> <div class="right"> right </div> </div>
須要這樣的效果:左右兩邊高度有內容多少,自適應java
下面提供三種方式:flex
第一種: 使用display:table;blog
.container { display: table; width: 80%; } .container .left, .container .right { display: table-cell; } .container .left { width: 20%; background: pink; } .container .right { width: 80%; background: deeppink; }
利用的table自己的自適應特性,兼容性好,容易使用ip
方法2:利用margin和paddingtable
.container { overflow: hidden; width: 400px; } .container .left, .container .right { float: left; margin-bottom: -10000px; padding-bottom: 10000px; } .container .left { width: 20%; background: pink; } .container .right { width: 80%; background: deeppink; }
這個原理是,左右的內容高度並無跟着變化,只是由margin和padding撐出了一些地方,而後被隱藏了,當有一邊的高度由內容撐起來以後,另外一邊的看似也跟着起來了,實際上那部分是paddingclass
方法3:flex,兼容性IE10下面不能使用,手機端也有些兼容兼容性
.container { display: flex; width: 400px; } .container .left { width: 20%; background: pink; } .container .right { width: 80%; background: deeppink; }