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