通过CSS文本属性可以定义文本的颜色,字符间距,对齐文本,装饰文本,对文本进行缩进,等等.
缩进文本
text-indent属性:定义文本首行缩进,就是在首行文字之前插入指定长度,长度可以是负值.
把 Web 页面上的段落的第一行缩进,这是一种最常用的文本格式化效果.
这个属性最常见的用途是将段落的首行缩进,下面的规则会使所有段落的首行缩进 5 em:
p {text-indent: 2em;}
1em 等于一个汉字的位置,也等于2个字母的位置.
注意:一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素,图像之类的替换元素上也无法应用 text-indent 属性.
不过,如果一个块级元素(比如段落)的首行中有一个图像,它会随该行的其余文本移动.
提示:如果想把一个行内元素的第一行“缩进”,可以用左内边距或外边距创造这种效果.
使用负值
text-indent 还可以设置为负值。利用这种技术,可以实现很多有趣的效果,比如“悬挂缩进”,即第一行悬挂在元素中余下部分的左边:
p {text-indent: -5em;}
不过在为 text-indent 设置负值时要当心,如果对一个段落设置了负值,那么首行的某些文本可能会超出浏览器窗口的左边界。为了避免出现这种显示问题,建议针对负缩进再设置一个外边距或一些内边距:
p {text-indent: -5em; padding-left: 5em;}
使用百分比值
text-indent 可以使用所有长度单位,包括百分比值.
百分数要相对于缩进元素父元素的宽度.换句话说,如果将缩进值设置为 20%,所影响元素的第一行会缩进其父元素宽度的 20%.
在下例中,缩进值是父元素的 20%,即 100 个像素:
div {width: 500px;}
p {text-indent: 20%;}
<div>
<p>this is a paragragh</p>
</div>
继承
text-indent 属性可以继承,请考虑如下标记:
div#outer {width: 500px;}
div#inner {text-indent: 10%;}
p {width: 200px;}
<div id="outer">
<div id="inner">some text. some text. some text.
<p>this is a paragragh.</p>
</div>
</div>
以上标记中的段落也会缩进 50 像素,这是因为这个段落继承了 id 为 inner 的 div 元素的缩进值.
水平对齐
文本的水平对齐方式用text-align属性来实现,它会影响一个元素中的文本行互相之间的对齐方式.
text-align不能将块级元素或表元素居中,要通过在这些元素上适当地设置左、右外边距来实现。
text-align:left 文本水平方向左对齐.默认左对齐.
text-align:center 文本水平方向居中对齐.
text-align:left 文本水平方向右对齐.
字间隔
word-spacing 属性可以改变字(单词)之间的标准间隔.其默认值 normal 与设置值为 0 是一样的。
word-spacing 属性可以是一个正长度值或负长度值.如果提供一个正长度值,那么字之间的间隔就会增加.为 word-spacing 设置一个负值,会把它拉近.
p.spread {word-spacing: 30px;}
p.tight {word-spacing: -0.5em;}
<p class="spread">
This is a paragraph. The spaces between words will be increased.
</p>
<p class="tight">
This is a paragraph. The spaces between words will be decreased.
字母间隔
letter-spacing 属性与 word-spacing 的区别在于,字母间隔修改的是字符或字母之间的间隔。
与 word-spacing 属性一样,letter-spacing 属性的可取值包括所有长度。默认关键字是 normal(这与 letter-spacing:0 相同)。输入的长度值会使字母之间的间隔增加或减少指定的量:
h1 {letter-spacing: -0.5em}
h4 {letter-spacing: 20px}
<h1>This is header 1</h1>
<h4>This is header 4</h4>
字符转换
text-transform 属性处理文本的大小写。这个属性有 4 个值:
none:默认,不改动.
uppercase:全大写.
lowercase:全小写.
capitalize:首字母大写.
默认值 none 对文本不做任何改动,将使用源文档中的原有大小写。顾名思义,uppercase 和 lowercase 将文本转换为全大写和全小写字符。最后,capitalize 只对每个单词的首字母大写。
作为一个属性,text-transform 可能无关紧要,不过如果您突然决定把所有 h1 元素变为大写,这个属性就很有用。不必单独地修改所有 h1 元素的内容,只需使用 text-transform 为你完成这个修改:
h1 {text-transform: uppercase}
使用 text-transform 有两方面的好处。首先,只需写一个简单的规则来完成这个修改,而无需修改 h1 元素本身。其次,如果您以后决定将所有大小写再切换为原来的大小写,可以更容易地完成修改。
文本装饰
text-decoration 属性,定义文本是否有划线以及划线的方式.text-decoration 有 5 个值:
none--默认值.不做任何修改正常显示文本.
underline--给文本定义下划线.
overline--给文本定义上划线.
line-through-给文本定义中划线.
blink--定义闪烁文本,IE浏览器无效.
处理空白符
用white-space属性定义文本换行的方式.有3个值.
white-space:normal; 默认文本到达边界自动换行.
white-space:pre; 代码是什么样子,输出就是什么样子.
white-space:nowrap; 强制文本在一行,除非<br />,否则不换行.
设置行高
行高用line-height属性定义
该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。
该属性没有负值.