1. 程式人生 > >一行文字兩端的均勻分佈

一行文字兩端的均勻分佈

前幾天看杜大大的CSS參考手冊,看到了老生常談的文字兩端對齊對齊方式,覺得很好,便記錄下來。

如果要實現本例中單行兩端對齊,可以這樣做:

  • 首先,所有主流瀏覽器都支援text-align的justify屬性值;*.其次,在這個例子中每個 p 都只有一行(所以既是第一行也是最後一行),所以無法通過定義text-align: justify來實現兩端對齊,因為text-align: justify不會處理塊級內容文字的最後一行。
  • 再次,好在有一個專門用來處理最後一行對齊的屬性text-align-last,可以通過定義text-align-last: justify
    來實現單行文字兩端對齊。遺憾的是,不少瀏覽器尚不支援該屬性。
  • 綜上所述,我們無法簡單的通過使用ttext-align或者text-align-last來實現單行文字兩端對齊。那麼可以換個思路,想辦法讓它們變成多行文字,使用偽元素派生一行新的佔位內容是個不錯的選擇,此時再實現兩端對齊,只需要text-align就行了。但是IE7 及以下瀏覽器不支援偽元素,如果要支援的話,可以直接使用text-align-last。Ps(誰還相容IE7啊)實現及效果如下:
.demo p {
    text-align: justify;
    text-align-last: justify;
}
.demo p::after {
    display: inline-block;
    width: 100%;
    height: 0;
    content: "\0020";
    overflow: hidden;
}

這種解決方案並沒有解決元素內容為數字或者字母的兩端對齊問題,如有好的答案,不吝賜教,謝謝