div+css布局實現2端對齊是我們網頁排版中經常會使用到的,這篇文章將總結一下可以實現的方法:
html結構
實現demo里面的div通過Css進行2端對齊。
1 <div class="box"> 2 <div class="demo"> 3 <div>1</div> 4 <div>2</div> 5 <div>3</div> 6 </div> 7 </div>
1.margin負值的方式
該方法需要外面多嵌套一層來實現,通過元素的間距,做為中間層的margin溢出值來實現
1 <style> 2 .box{ 3 width:300px;margin:auto;overflow:hidden;border:1px solid #ddd; 4 } 5 .box .demo{ 6 margin-left:-10px;width:310px 7 } 8 .box .demo div{ 9 width:93.333px;/*(計算:(300-10*2)/3)*/ 10 float:left; 11 margin-left:10px; 12 } 13 </style>
2.display:inline-block/text-align:justify方式
justify方式比較簡單方便。只要一個簡單元素做了聲明,里面的元素就自動等間距兩端對齊布局啦!根本無需計算每個列表元素間的margin間距,更不用去修改父容器的寬度。
注意一點:demo結構內元素必須存在【換行符】或【空格符】,否則直接連着寫將不會生效
1 <style> 2 .demo{ 3 margin:0;padding:0; 4 text-align:justify; 5 text-align-last:justify;/*解決IE的支持*/ 6 line-height:0;/*解決標准瀏覽器容器底部多余的空白*/ 7 } 8 @media all and (-webkit-min-device-pixel-ratio:0){ 9 .demo{ 10 font-size:0;/*webkit清除元素中使用[換行符]或[空格符]后,最后元素多余的空白*/ 11 } 12 } 13 .demo:after{/*text-align-last:justify只有IE支持,標准瀏覽器需要使用 .demo:after 偽類模擬類似效果*/ 14 display:inline-block; 15 overflow:hidden; 16 width:100%; 17 height:0; 18 content:''; 19 vertical-align:top;/*opera瀏覽器解決底部多余的空白*/ 20 } 21 .demo div{ 22 width:20%; 23 display:inline-block; 24 text-align:center;/*取消上層元素的影響*/ 25 text-align-last:center; 26 font-size:12px; 27 } 28 </style>
3.css3 屬性 space-between
該方法基於webkit內核的webapp開發和winphone IE10及以上,常用於移動端布局。
1 <style> 2 .demo{ 3 display:-webkit-box; 4 display:-webkit-flex; 5 display:-ms-flexbox; 6 display:flex; 7 -webkit-box-pack:justify; 8 -webkit-justify-content:space-between; 9 -ms-flex-pack:justify; 10 justify-content:space-between; 11 } 12 13 .demo div{ 14 width:30%; 15 } 16 </style>
辦公資源網址導航 https://www.wode007.com
4.css3屬性column-count
column屬性是多列布局,使用column來實現兩端對齊只需要設置模塊的個數跟column的列數一致即可,推薦使用於移動端布局
1 <style> 2 .demo{ 3 -webkit-column-count:3;-moz-column-count:3;column-count:3; 4 -webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px; 5 } 6 7 .demo div{ 8 9 } 10 </style>
完結~~~~~有更好的實現請留言哦
