方法一、表格布局Table-layout
IE兼容情况:不兼容IE7,兼容IE8及以上
<style>
.row {display: table;}
.col {display: table-cell; width: 50%; padding: 10px; border: solid;}
</style>
<div class="row">
<div class="col">我是第一个<br>我是第一个<br>我是第一个<br>我是第一个<br></div>
<div class="col">我是第二个</div>
</div>
方法二、内外补丁法
IE兼容情况:兼容IE7及IE7以上
<style>
#wrap {
overflow:hidden;/*// (这行代码是重点,否则你会看到页面很长很长)*/
padding:0;
padding-left:180px;/*(内补丁)*/
}
#left,#right {
height:auto;
margin-bottom:-10000px;/*(外补丁)*/
padding-bottom:10000px;/*(内补丁)*/
}
#left {
display:inline;
float:left;
width:180px;
margin-left:-180px;/*(外补丁)*/
background: #0CF;
}
#right{
float:right;
width:100%;
background: #FC6;
}
</style>
<div id="wrap">
<div id="left">11111<br>111<br>11111<br>1111111<br><br>11111<br>111<br>11111<br></div>
<div id="right">right</div>
</div>
方法三、Flex弹性盒子
IE兼容情况:不兼容IE9及以下,最低兼容IE10
<style>
.row {display: flex;}
.col {flex: 1;}
</style>
<div class="row">
<div class="col">我是第一个<br>我是第一个<br>我是第一个<br>我是第一个</div>
<div class="col">我是第二个</div>
<div class="col">...</div>
</div>
方法四、CSS3盒模型display: -webkit-box【webkit内核】
IE兼容情况:不兼容(包括IE11,均不兼容)
<style>
.wrap1 {display: -webkit-box;}
.left1{width:30%; background:#0acfff;}
.right1{width:70%; background:#ff412b;}
</style>
<div class="wrap1">
<div class="left1">left div<br/><br/><br/>rr</div>
<div class="right1">right div</div>
</div>
当子元素个数不确定的情况下,想让子元素等分宽度,实现如下
<style>
.wrap1 {display: -webkit-box;}
.left1{width:0%; background:#0acfff;-webkit-box-flex:1;}
.right1{width:0%; background:#ff412b;-webkit-box-flex:1; overflow:hidden;}
</style>
<div class="wrap1">
<div class="left1">left div<br/><br/><br/>rr</div>
<div class="right1">sdgsdgdssssssssssssssssssssssssssssssssssssgsdgsdgsdgsdgsdgsdgsdgsdgsdg</div>
</div>
将子元素设置width:0%; -webkit-box-flex:1; 其中width设置为0%的原因不明。
方法五、CSS网格Grid
IE兼容情况:不兼容(包括IE11均不兼容)
<style>
.container {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.element {border: 1px solid #000;}
</style>
<div class="container">
<div class="element">我是第一个<br>我是第一个<br>我是第一个<br>我是第一个</div>
<div class="element">...</div>
<div class="element">...</div>
</div>