3.2 设计文本样式

文本样式主要用于设计正文的排版效果,属性名以text为前缀进行命名,下面分别进行介绍。

3.2.1 定义文本对齐

使用CSS3的text-align属性可以定义文本的水平对齐方式,用法如下:

    text-align: left | right | center | justify

其中left为默认值,表示左对齐;right为右对齐;center为居中对齐;justify为两端对齐。

【示例】新建test.html文档,在内部样式表中定义3个对齐类样式。

然后在<body>标签中输入3段文本,并分别应用这3个类样式。

在浏览器中预览,比较效果如图3.6所示。

图3.6 比较3种文本对齐效果

提示:CSS3为text-align属性新增多个属性值,简单说明如下。


justify:内容两端对齐(CSS2曾经支持过,后来放弃)。

start:内容对齐开始边界。

end:内容对齐结束边界。

match-parent:与inherit(继承)表现一致。

justify-all:效果等同于justify,但还会让最后一行也两端对齐。


由于大部分浏览器对这些新属性值支持不是很友好,读者可以暂时忽略。

【拓展】

text-align属性仅对行内对象有效,如文本、图像、超链接等,如果想让块元素对齐显示,如设计网页居中显示,设计<div>标签右对齐等,则需要特殊方法,感兴趣的读者可以扫码深入阅读。

3.2.2 定义垂直对齐

使用CSS3的vertical-align属性可以定义文本垂直对齐,用法如下:

    vertical-align: auto | baseline | sub | super | top | text-top | middle | bottom | text-bottom | length

取值简单说明如下。


auto将根据layout-flow属性的值对齐对象内容。

baseline为默认值,表示将支持valign特性的对象内容与基线对齐。

sub表示垂直对齐文本的下标。

super表示垂直对齐文本的上标。

top表示将支持valign特性的对象的内容对象顶端对齐。

text-top表示将支持valign特性的对象的文本与对象顶端对齐。

middle表示将支持valign特性的对象的内容与对象中部对齐。

bottom表示将支持valign特性的对象的内容与对象底端对齐。

text-bottom表示将支持valign特性的对象的文本与对象底端对齐。

length表示由浮点数字和单位标识符组成的长度值或者百分数,可为负数,定义由基线算起的偏移量,基线对于数值来说为0,对于百分数来说就是0%。


【示例】新建test1.html文档,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,然后输入下面样式,定义上标类样式。

    .super {vertical-align:super;}

然后在<body>标签中输入一行段落文本,并应用该上标类样式。

    <p>vertical-align表示垂直<span class=" super ">对齐</span>属性</p>

在浏览器中预览,则显示效果如图3.7所示。

图3.7 文本上标样式效果

【拓展】

vertical-align属性仅对行内对象有效,如文本、图像、超链接等,如果想让块元素对齐显示,需要特殊方法,感兴趣的读者可以扫码深入阅读。

3.2.3 定义文本间距

使用CSS3的letter-spacing属性可以定义字距,使用CSS3的word-spacing属性可以定义词距。这两个属性的取值都是长度值,由浮点数字和单位标识符组成,默认值为normal,表示默认间隔。

定义词距时,以空格为基准进行调节,如果多个单词被连在一起,则被word-spacing视为一个单词;如果汉字被空格分隔,则分隔的多个汉字就被视为不同的单词,word-spacing属性此时有效。

【示例】下面示例演示如何定义字距和词距样式。

新建一个网页,保存为test.html,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,然后输入下面样式,定义两个类样式。

然后在<body>标签中输入两行段落文本,并应用上面两个类样式。

在浏览器中预览,则显示效果如图3.8所示。从图中可以直观地看到,所谓字距就是定义字母之间的间距,而词距就是定义西文单词的距离。

图3.8 字距和词距演示效果比较

注意:字距和词距一般很少使用,使用时应慎重考虑用户的阅读体验和感受。对于中文用户来说,letter-spacing属性有效,而word-spacing属性无效。

3.2.4 定义行高

使用CSS3的line-height属性可以定义行高,用法如下:

    line-height : normal | length

其中normal表示默认值,一般为1.2em;length表示百分比数字,或者由浮点数字和单位标识符组成的长度值,允许为负值。

【示例】新建test.html文档,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,输入下面样式,定义两个行高类样式。

然后在<body>标签中输入两行段落文本,并应用上面两个类样式。

在浏览器中预览,则显示效果如图3.9所示。

图3.9 段落文本的行高演示效果

【拓展】

line-height属性的用法比较复杂,灵活使用该属性,可以设计很多特殊效果,感兴趣的读者可以扫码深入阅读。

3.2.5 定义首行缩进

使用CSS3的text-indent属性可以定义文本首行缩进,用法如下:

    text-indent: length

length表示百分比数字或者由浮点数字和单位标识符组成的长度值,允许为负值。建议在设置缩进单位时,以em为设置单位,em表示一个字距,这样可以比较精确地确定首行缩进效果。

【示例1】使用text-indent属性设计首行缩进效果。

新建test.html文档,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表,输入下面样式,定义段落文本首行缩进2个字距。

    p {text-indent:2em;}  /*首行缩进2个字距*/

然后在<body>标签中输入如下标题和段落文本。

在浏览器中预览,则可以看到文本缩进效果,如图3.10所示。

图3.10 首行缩进效果

【示例2】使用text-indent属性设计悬垂缩进效果。

新建一个网页,保存为test1.html,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表。输入下面样式,定义段落文本首行缩进负的2个字距,并定义左侧内部补白为2个字距。

text-indent属性可以取负值,定义左侧补白,防止取负值缩进导致首行文本伸到段落的边界外边。

然后在<body>标签中输入如下标题和段落文本。

在浏览器中预览,则可以看到文本悬垂缩进效果,如图3.11所示。

图3.11 悬垂缩进效果