- CSS3网页设计从入门到精通(微课精编版)
- 前端科技
- 1930字
- 2021-03-26 03:49:45
3.2 设计文本样式
文本样式主要用于设计正文的排版效果,属性名以text为前缀进行命名,下面分别进行介绍。
3.2.1 定义文本对齐
使用CSS3的text-align属性可以定义文本的水平对齐方式,用法如下:
text-align: left | right | center | justify
其中left为默认值,表示左对齐;right为右对齐;center为居中对齐;justify为两端对齐。
【示例】新建test.html文档,在内部样式表中定义3个对齐类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P67_86110.jpg?sign=1739481435-tVDjMa4FrOifsdQjL1vl2Bo9xXeto29Y-0-fb5cc064eb9e63c6294d6527da4fe691)
然后在<body>标签中输入3段文本,并分别应用这3个类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P67_86111.jpg?sign=1739481435-h0ysjZP9d5u4n8CsjcReJq5iH5rs53ef-0-adbba7bc98d214b39f74afca1b600db5)
在浏览器中预览,比较效果如图3.6所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P67_19218.jpg?sign=1739481435-ggU553PkDm9AR7WZNiv2uN2hdUvfEXqp-0-ab754de5a1994f419b7e9e7d471231e0)
图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所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P68_19310.jpg?sign=1739481435-6P8cyTZPHl27wZCbeiX1esv0v4y3nm2Y-0-d4087f6cd2151744ea8954320c098d8f)
图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">标签,定义一个内部样式表,然后输入下面样式,定义两个类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P69_86113.jpg?sign=1739481435-jVrP5KxFhNYv9qU5tfjmrRL1JSSjFKO3-0-1d025b393a1dd9ea362ddba27b11603c)
然后在<body>标签中输入两行段落文本,并应用上面两个类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P69_86114.jpg?sign=1739481435-G9FRpEHQCd4t9Tnd9b5xTIM0SCVlSMay-0-b199aab6250d3df9a839b063b8784f5e)
在浏览器中预览,则显示效果如图3.8所示。从图中可以直观地看到,所谓字距就是定义字母之间的间距,而词距就是定义西文单词的距离。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P69_19371.jpg?sign=1739481435-VKkNfhjc2Xspg1OaZvu72OhQvdbnX8qV-0-00c2abe089d807320c019eb495b80f52)
图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">标签,定义一个内部样式表,输入下面样式,定义两个行高类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P69_86116.jpg?sign=1739481435-XCMp8WeWyvxSnYcBzHO4nbbVLMsrMnpw-0-7fa170c1124a7b98202da1d3fda2caec)
然后在<body>标签中输入两行段落文本,并应用上面两个类样式。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P69_86117.jpg?sign=1739481435-KnejoAyPglETPWfJXDfysXA6XbWoFeSA-0-81b23e25b6b781574981dd1225d6f5d2)
在浏览器中预览,则显示效果如图3.9所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P70_19513.jpg?sign=1739481435-L93C9hOXYh2olntd0frC4ePOPW7aOSWL-0-3e48b25db6ad88536752b7c48b780737)
图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>标签中输入如下标题和段落文本。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P70_86119.jpg?sign=1739481435-A2SNyJajgdZX2BJsDs4821H4fGlqbSf2-0-ca800ac624f9ff494c18642eb634129c)
在浏览器中预览,则可以看到文本缩进效果,如图3.10所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P71_19691.jpg?sign=1739481435-XVCur1naS0ksJoSslWRQHcRfRZAzLlxA-0-ecec82eb03496eee4cb66a6b0d061224)
图3.10 首行缩进效果
【示例2】使用text-indent属性设计悬垂缩进效果。
新建一个网页,保存为test1.html,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表。输入下面样式,定义段落文本首行缩进负的2个字距,并定义左侧内部补白为2个字距。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P71_86120.jpg?sign=1739481435-AQ8oznUwz9LuTChcgwFVS5coq92smGG5-0-3d223a9cbb9c0f435f6d64e6b1a263fd)
text-indent属性可以取负值,定义左侧补白,防止取负值缩进导致首行文本伸到段落的边界外边。
然后在<body>标签中输入如下标题和段落文本。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P71_86121.jpg?sign=1739481435-kX7cjQeONgvXYYLzjJLWQzLP4YsEBed3-0-9f7db4e1b14ab91eab5fb1a1b1b14d39)
在浏览器中预览,则可以看到文本悬垂缩进效果,如图3.11所示。
![](https://epubservercos.yuewen.com/F92AA6/15289822105524506/epubprivate/OEBPS/Images/Figure-P71_19692.jpg?sign=1739481435-MmyI381vQEy2hmhwgdp6oxSH8UVsdXl2-0-2a98c085ee82217a2a58f767d6448ea4)
图3.11 悬垂缩进效果