天天看點

css文本兩端對齊

在做表單時我們經常遇到讓上下兩個字段對齊的情況,比如姓名, 手機号碼, 出生地。這樣我們就要用到 text-align, text-justify樣式了。

text-align直接設為justify就行了,text-justify的情況就複雜了,可能有人對它還不熟悉。IE的取值如下:

  • auto :允許浏覽器使用者代理确定使用的兩端對齊法則
  • inter-word :通過增加字之間的空格對齊文本。該行為是對齊所有文本行最快的方法。它的兩端對齊行為對段落的最後一行無效
  • newspaper : 通過增加或減少字或字母之間的空格對齊文本。是用于拉丁文字母表兩端對齊的最精确格式
  • distribute :處理空格很像newspaper
  • distribute-all-lines:兩端對齊行的方式與distribute相同,也同樣不包含兩段對齊段落的最後一行。适用于表意字文檔
  • inter-ideograph : 為表意字文本提供完全兩端對齊。他增加或減少表意字和詞間的空格

但它最早是作為IE的私有實作,像text-overflow, overflow-x等,在FF很晚才實作,換言之有嚴格的相容性問題。并且FF,chrome需要手動在漢字間插入空白或軟換行标簽才生效,在chrome遇到的阻力就更大了。p>

方案:

.test1 {
      text-align:justify;
      text-justify:distribute-all-lines;/*ie6-8*/
      text-align-last:justify;/* ie9*/
      -moz-text-align-last:justify;/*ff*/
      -webkit-text-align-last:justify;/*chrome 20+*/
  }
  @media screen and (-webkit-min-device-pixel-ratio:0){/* chrome*/
      .test1:after{
          content:".";
          display: inline-block;
          width:100%;
          overflow:hidden;
          height:0;
      }
  }

  運作代碼:



<!DOCTYPE HTML>
<html>
    <head>
        <title>文本兩端對齊 </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


        <style>

            .box1{
                background:red;
                width:30%;
            }
            .test1 {
                text-align:justify;
                text-justify:distribute-all-lines;/*ie6-8*/
                text-align-last:justify;/* ie9*/
                -moz-text-align-last:justify;/*ff*/
                -webkit-text-align-last:justify;/*chrome 20+*/
            }
            @media screen and (-webkit-min-device-pixel-ratio:0){/* chrome*/
                .test1:after{
                    content:".";
                    display: inline-block;
                    width:100%;
                    overflow:hidden;
                    height:0;
                }
            }
        </style>

    </head>
    <body>
        <div class="box1">
            <div class="test1">姓 名</div>
            <div class="test1">姓 名 姓 名</div>
            <div class="test1">姓 名 名</div>
            <div class="test1">所 在 地</div>
            <div class="test1">工 作 單 位</div>
        </div>


    </body>
</html>