CSS3 justify 文本兩端對齊


瀏覽器參照基准:Firefox4 and Later, Chrome5 and Later, Safari5 and Later, Opera10.53 and Later, IE5.5 and Later
 兩端對齊方案基於 text-align:justify 及 text-align-last:justify 實現
 
 <div>How are you. 你 好 !<div>
 
 由於大部分瀏覽器兩端對齊的實現,都是通過調整字之間的空格大小來達成的,所以我們事先在每個單詞和漢字間都插入一個空格
 
 IE實現
 div{
text-align:justify;
text-align-last:justify;
}
 justify最先是作為IE私有屬性實現
 
 Firefox實現
 div{
text-align:justify;
-moz-text-align-last:justify;
}
text-align-last 在Firefox12-17下仍處理實驗支持階段,需加前綴 -moz-
 
Chrome, Safari, Opera實現
div{
overflow:hidden;
height:19px;
text-align:justify;
}
div:after{
display:inline-block;
content:'';
overflow:hidden;
width:100%;
height:0;
}
Chrome23, Safari5.1.7, Opera12.11 不支持 text-align-last, 但支持 text-align 的 jsutify, 所以這里可以變通實現單行文本兩端對齊對齊,我們知道text-align:justify 不處理塊內的最后一行文本(包括塊內僅有一行文本的情況,這時既是第一行也是最后一行)及被強制打斷的行的兩端對齊,但會處理除此之外的其它行,所以只需要將這里的單行變成多行即可,那么我們可以使用偽對象的方式派生出新行,這樣不需要額外處理html代碼,然后再將派生出的新行隱藏
 
綜合實現
div{
overflow:hidden;
height:19px;
text-align:justify;
text-align-last:justify;
}
div:after{
display:inline-block;
content:'';
overflow:hidden;
width:100%;
height:0;
}
由於所有瀏覽器都支持 text-align 的 justify 屬性值,但不全支持 text-align-last,我們可以對非IE及IE7以上瀏覽器使用偽對象生成額外的內容(IE7及以下瀏覽器不支持偽對象,使用text-align-last處理),置於第二行並將其隱藏,這時第一行文本(即要對齊的那個單行文本)可使用text-align:justify來對齊,所以Firefox也無需使用-moz-text-align-last了,因為也使用了text-align:justify


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM