text-align

语法:

text-alignstart end | match-parent | <string>? [ start | end | left | right | center | justify ]

默认值start

适用于:块元素

继承性:有

动画性:否

计算值:指定值,除 match-parent 值外

取值:

left:
内容左对齐。
center:
内容居中对齐。
right:
内容右对齐。
justify:
内容两端对齐。
start:
内容对齐开始边界。(CSS3)
end:
内容对齐结束边界。(CSS3)
<string>
字符串必须是单一字符,否则申明将无效。(CSS3)
match-parent:
这个值和 inherit 表现一致,只是该值继承的 start 或 end 关键字是针对父母的 direction 值并计算的,计算值可以是 left 和 right 。(CSS3)
start end:
指定 start 对齐第一行和任何强制打断的行;end 对齐所有剩余的行不受 text-align-last 影响。(CSS3)

说明:

设置或检索对象中内容的水平对齐方式。
  • 块级元素的文本是一些堆叠的线框
  • 要使得 text-align 的 justify 两端对齐生效,需要在汉字间插入有空白,如空格;
  • 块内的最后一行文本(包括块内仅有一行文本的情况,这时既是第一行也是最后一行)及被强制打断的行,其两端对齐需使用 text-align-last
  • IE浏览器下,如果 text-align-last 要生效,必须先定义 text-align 为justify;
  • 单行两端对齐效果变得比较简单:

    css code:

    li{overflow:hidden;width:200px;height:21px;text-align:justify;text-align-last:justify;}
    li:after{display:inline-block;overflow:hidden;width:100%;height:0;content:'';}

    html code:

    <ul>
    	<li>我 是 谁</li>
    	<li>你 又 是 谁</li>
    	<li>世 界 末 日 2012</li>
    </ul>

    以上代码3个li中的内容都将两端对齐

    需注意几点:
    • 所有主流浏览器都支持 text-align 的 justify 属性值;
    • text-align不处理强制打断的行,也不处理块内的最后一行,换句话说,如果块内仅有一行文本(该行既是第一行也是最后一行),这时仅设置text-align:justify无法让该行两端对齐;
    • text-align-last 是用来处理块内的最后一行和强制打断的行的,所以当要设置单行文本两端对齐时,需使用 text-align-last
    • 非Firefox浏览器要使得两端对齐生效,需在文本间插入空白,如空格(如果一行仅有2个汉字,Firefox也需在之间插入空白);
    • Chrome23, Safari5.1.7, Opera12.5 尚不支持 text-align-last
    依据上述的点,要实现单行两端对齐,可以走2个方向:
    1. 由于所有浏览器都支持 text-align 的 justify 属性值,但不全支持 text-align-last,我们可以对非IE及IE7以上浏览器使用伪对象生成额外的内容(IE7及以下浏览器不支持伪对象,使用text-align-last处理),置于第二行并将其隐藏,这时第一行文本(即要对齐的那个单行文本)可使用text-align:justify来对齐
    2. 支持 text-align-last 的浏览器,如IE, Firefox使用 text-align-last 处理,不支持的浏览器使用如上述方法处理;

    所以就目前情况来看,使用第一种方案是比较简约的,可以轻易的兼容IE5.5-10, Firefox, Chrome, Safari, Opera

    查看 css两端对齐详解 css两端对齐效果demo

  • 对应的脚本特性为textAlign

兼容性:

  • 浅绿 = 支持
  • 红色 = 不支持
  • 墨绿 = 部分支持
支持版本\类型 IE Firefox Safari Chrome Opera
版本 5.5-9 #1 #2 #3 4-18 #2 #3 5.1.7 #3 13-23 #3 11.5-12.5 #1 #2 #3
  1. 不支持:start | end
  2. 不支持:<string>
  3. 不支持:match-parent | start end

示例: