css實現兩端對齊的3種方法

說到兩端對齊,你們並不陌生,在word、powerpoint、outlook等界面導航處,其實都有一個兩端對齊(分散對齊)的按鈕,平時使用的也很少,咱們更習慣與左對齊、居中對齊、右對齊的方式來對齊頁面的文本或模塊。css

響應式網頁設計出現以來,更可能是使用百分比布自適應佈局,特別是在移動端,兩端對齊的方式顯得愈來愈重要。那麼,如何使用css實現兩端對齊,相信不少同窗會文本對齊的text-align:justify,這是今天要講的其中一種方式,另外還有兩種更精彩的實現方式,請往下看~web

下圖是須要實現的demo,取了寬度分別爲320px、480px、640px下的截圖,也就是說再隨瀏覽器窗口寬度的調整,按鈕菜單高度不變,寬度會按比例自動適應,且左右兩端對齊:瀏覽器

 

方法一:使用text-align:justify佈局

感謝join同窗提供的方案,使用該方案能夠作到兼容全部的瀏覽器,不過實現起來會比較複雜,並且帶有hack的味道spa

text-align:justify 屬性是全兼容的,使用它實現兩端對齊,須要注意在模塊之間添加[空格/換行符/製表符]才能起做用,一樣,實現文本對齊也是須要在字與字之間添加[空格/換行符/製表符]才能起做用設計

HTML:code

<p>模塊內的元素之間爲&nbsp;分隔,只支持webkit和Gecko內核瀏覽器</p>
<br />
<div class="demo"><a class="link" href="#none">10元</a>&nbsp;<a class="link" href="#none">20元</a>&nbsp;<a class="link" href="#none">30元</a>&nbsp;<a class="link" href="#none">50元</a>
</div>
<br />
<p>模塊內的元素之間爲換行符</p>
<br />
<div class="demo">
    <a class="link" href="#none">10元</a>
    <a class="link" href="#none">20元</a>
    <a class="link" href="#none">30元</a>
    <a class="link" href="#none">50元</a>
</div>
<br />
<p>模塊內的元素之間爲空格符</p>
<br />
<div class="demo">
<a class="link" href="#none">10元</a> <a class="link" href="#none">20元</a> <a class="link" href="#none">30元</a> <a class="link" href="#none">50元</a>
</div>
<br />
<p>模塊內的元素之間爲無分隔符,justify不起做用</p>
<br />
<div class="demo"><a class="link" href="#none">選項1</a><a class="link" href="#none">選項2</a><a class="link" href="#none">選項3</a><a class="link" href="#none">選項4</a></div>
<br />

CSS:blog

*{margin:0;padding:0;}
/* 
 說明:
 1.IE中要實現塊內單行兩端對齊須要使用其私有屬性text-align-last:justify配合,text-align-last 要生效,必須先定義text-align 爲justify
 2.line-height:0 解決標準瀏覽器容器底部多餘的空白
*/
.demo{
     text-align:justify;
     text-align-last:justify;
     line-height:0;
     height:44px;
}
/*
 說明:
 模塊使用[換行符]或[空格符]後,webkit瀏覽器中會引發最後一個模塊有多餘空白,使用font-size:0可清除該空格
*/
@media all and (-webkit-min-device-pixel-ratio:0){
.demo{
     font-size:0;
}
}
 /* 
 說明:
 1.text-align-last:justify 目前只有IE支持,標準瀏覽器須要使用 .demo:after 僞類模擬相似效果 
 2.opera瀏覽器須要添加 vertical-align:top 才能徹底解決底部多餘的空白
 */
.demo:after{
     display:inline-block;
     overflow:hidden;
     width:100%;
     height:0;
     content:'';
     vertical-align:top;
}
.demo a{
     width:20%;
     display:inline-block;
     height:44px;
     line-height:44px;
     text-align:center;
     border:1px solid #428cc8;
     color:#666;
     font-size:16px;
     margin-bottom:5px;
     border-radius:3px;
     background-color:#fefefe;
     background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fefefe),color-stop(1,#eee));
     color:#666;
     text-decoration:none;
}
相關文章
相關標籤/搜索