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的列數一致即可,推薦使用于移動端布局
新聞熱點
疑難解答