多列布局定宽+自适应1)使用float+overflow
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .left { float:left; width:100px; margin-right:20px;}.right { overflow:hidden;} (3)优缺点
2)使用float+margin
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .left { float:left; width:100px;}.right { margin-left:120px;} (3)优缺点
3)使用float+margin(改良版)
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='rigth-fix'> div class='right'> p>rightp> p>rightp> div> div>div> .left { float:left; width:100px; position:relative;}.right-fix { float:right; width:100%; margin-left:-100px;}.right { margin-left:120px;} (3)优缺点
4)使用table
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent { display:table; width:100%; table-layout:fixed;}.left { width:100px; padding-right:20px;}.right,.left { display:table-cell; } 5)使用flex
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent { display:flex;}.left { width:100px; margin-right:20px;}.right { flex:1;} (3)优缺点
两列定宽+一列自适应(1)原理、用法
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='center'> p>centerp> div> div class='right'> p>rightp> p>rightp> div>div> .left,.center { float:left; width:100px; margin-right:20px;}.right { overflow:hidden;} 不定宽+自适应1)使用float+overflow
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .left{ float: left; margin-right: 20px; }.right{ overflow: hidden;}.left p{ width: 200px;} (3)优缺点
2)使用table
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent{ display: table; width: 100%; }.left,.right{ display: table-cell;}.left{ width: 0.1%; padding-right: 20px;}.left p{ width:200px;} (3)优缺点
3)使用flex
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent { display:flex;}.left { margin-right:20px;}.right { flex:1;}.left p{ width: 200px;} (3)优缺点
两列不定宽+一列自适应(1)原理、用法
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='center'> p>centerp> div> div class='right'> p>rightp> p>rightp> div>div> .left,.center{ float: left; margin-right: 20px;}.right{ overflow: hidden;}.left p,.center p{ width: 100px;} 等分布局公式转化:l = w * n + g * (n-1) -> l = w * n + g * n - g -> l + g = (w + g) * n 因此,我们需要解决两个问题:
1)使用float
(2)代码实例 class='parent'> div class='column'>p>1p>div> class='column'>p>2p>div> class='column'>p>3p>div> class='column'>p>4p>div>/div> .parent{ margin-left: -20px;//l增加g}.column{ float: left; width: 25%; padding-left: 20px; box-sizing: border-box;//包含padding区域 w+g} (3)优缺点
2)使用table
(2)代码实例 class='parent-fix'> div class='parent'> div class='column'>p>1p>div> div class='column'>p>2p>div> div class='column'>p>3p>div> div class='column'>p>4p>div> div>/div> .parent-fix{ margin-left: -20px;//l+g}.parent{ display: table; width:100%; table-layout: fixed;}.column{ display: table-cell; padding-left: 20px;//w+g} (3)优缺点
3)使用flex
(2)代码实例 class='parent'> div class='column'>p>1p>div> class='column'>p>2p>div> class='column'>p>3p>div> class='column'>p>4p>div>/div> .parent{ display: flex;}.column{ flex: 1;}.column+.column{ margin-left:20px;} (3)优缺点
定宽+自适应+两块高度一样高1)使用float
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> p{ background: none!important;}.left,.right{ background: #444;}.parent{ overflow: hidden;}.left,.right{ padding-bottom: 9999px; margin-bottom: -9999px;}.left{ float: left; width: 100px; margin-right: 20px;}.right{ overflow: hidden;} (3)优缺点
2)使用table
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent { display:table; width:100%; table-layout:fixed;}.left { width:100px; padding-right:20px;}.right,.left { display:table-cell;} 3)使用flex
(2)代码实例 div class='parent'> div class='left'> p>leftp> div> div class='right'> p>rightp> p>rightp> div>div> .parent { display:flex;}.left { width:100px; margin-right:20px;}.right { flex:1;} (3)优缺点
4)使用display
(2)代码实例 div class='parent'> div class='left'>leftdiv> div class='right'>right div>div> .parent { width: 100%; display: -webkit-box;}.left { width:100px; margin-right: 20px;}.right { -webkit-box-flex: 1;} (3)优缺点
原文连接:https://segmentfault.com/a/1190000013565024#articleHeader1 作 者: 无悔铭 |
|