text-align

  • 版本:CSS1/3
  • 媒体:视觉
html+div+css+天猫商城
html5+css3+京东手机网站
javascript+jquery+ajax
正则表达式+面向对象+js插件
2D+3D+触屏事件+Canvas+Svg
地理信息+本地存储+H5拖拽api
查看课程大纲

语法:

text-alignstart | end | left | right | center | justify | match-parent | justify-all

默认值start

适用于:块容器

继承性:有

动画性:否

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

取值:

left:
内容左对齐。
center:
内容居中对齐。
right:
内容右对齐。
justify:
内容两端对齐,但对于强制打断的行(被打断的这一行)及最后一行(包括仅有一行文本的情况,因为它既是第一行也是最后一行)不做处理。(CSS3)
start:
内容对齐开始边界。(CSS3)
end:
内容对齐结束边界。(CSS3)
match-parent:
这个值和 inherit 表现一致,只是该值继承的 start 或 end 关键字是针对父母的 <' direction '> 值并计算的,计算值可以是 left 和 right 。(CSS3)
justify-all:
效果等同于 justify,但还会让最后一行也两端对齐。(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 是用来处理块内的最后一行和强制打断的行的,所以当要设置单行文本两端对齐时,需使用该属性;
    • 大部分浏览器要使得两端对齐生效,需在文本间插入空白,如空格(如果一行仅有2个汉字,Firefox也需在之间插入空白);
    • 大部分浏览器尚不支持 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

兼容性:

  • 浅绿 = 支持
  • 红色 = 不支持
  • 粉色 = 部分支持
Values IE Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
Basic Support 6.0+ 2.0+ 4.0+ 6.0+ 15.0+ 6.0+ 2.1+ 18.0+
start 6.0-11.0 2.0+ 4.0+ 6.0+ 15.0+ 6.0+ 2.1+ 18.0+
end 6.0-11.0 2.0-3.5 4.0+ 6.0+ 15.0+ 6.0+ 2.1+ 18.0+
3.6+
justify 6.0-11.0 #1 2.0+ #2 4.0-40.0 #1 6.0+ 15.0-27.0 #1 6.0+ 2.1-4.4.4 #1 18.0-39.0 #1
41.0+ 28.0+ 40.0+
match-parent 6.0-11.0 2.0-37.0 4.0-41.0 6.0-8.0 15.0-27.0 6.0-8.3 2.1-4.4.4 18.0-40.0
justify 6.0-11.0 2.0-37.0 4.0-41.0 6.0-8.0 15.0-27.0 6.0-8.3 2.1-4.4.4 18.0-40.0
  1. 如果要使得两端对齐生效,需要在单词之间添加空白,如空格
  2. 如果一行仅有2个汉字,较低版本的Firefox也需在之间插入空白

示例: