《写给大家看的CSS书》第三章:字体与文本
一、字体与文本
字体与文本的区别:
-
字体主要涉及文字的大小和外观(可应用于单个字符)。
-
文本主要涉及对字体的处理(只能应用于文本块)
二、指定字体
CSS中指定字体的最简单方式,就是使用五种通用的字体集合
-
serif :该字体在字符笔画末端有叫做衬线的小细节(Time New Roman、Georgia、Palatino)
-
sans-serif:末端无任何细节(Trebuchet MS、Arial、Verdana)
-
monospace:每个字母宽度相等(例如,i与m具有相同的宽度),通常用于排版代码块或模仿打印效果
-
cursive:手写笔记,但是比手写效果要整洁(Comic Sans MS、Brush Script)
-
fantasy:不能归入其他种类的字体
/*指定通用字体,浏览器会选择默认的Helvetica或者Arial*/ /*font-family是一个可继承的属性,值会传递给所有的后代*/ body {font-family: sans-serif;} /*以首先字母为开头,以通用字体结束 */ body{font-family: "hoefler text",times,serif;}
三、设置字体大小
设置字体大小,可以使用三种类型的值:
- 绝对值:像素、英寸
- 相对值:百分比、em
- 运动衫尺码关键字:x-small、small、large、xx-large
-
在文字大小中选择了更大或者更小之后,所有字体都能成比例地缩放
-
只需要改变body标签的字体大小,按比例改变文本的大小
使用相对大小字体的缺点
-
可能因字体大小的继承而导致极小字体的显示
-
用户很容易“破坏”没有考虑到文本缩放因素的CSS页面布局
body{ font-family: verdana,arial,sans-serif; /*为字体设置了可以调准的基准大小,1em一般为16像素高*/ font-size: 1em; } h3{ /*h3的默认大小为1.2em(19.2px),重新设置为0.8em*/ font-size: 0.8em; } /*分别为ol和ul设置大小,而不是为li设置大小,方便后续自定义*/ ol{font-size: .75em;} ul{font-size: .75em;} a {font-size: .7em;} /*规定ul的子元素a从父元素中继承属性值(如果没有使用inherit,a的值就会变成0.75*0.7em,导致过小*/ ul a {font-size: inherit;}
四、字体属性
font-style | 定义文本的直立或倾斜 | italic、normal、oblique |
font-weight | 定义文本的粗细 | 100、200、…、900、lighter、normal、bold、bolder |
font-variant | 转换成小型大写字母 | small-caps、normal |
/*font-style有两个作用:使字体倾斜,或者使倾斜的字体直立*/ p {font-style: italic;} span {font-style: normal;} /*加粗超链接的内容*/ a{font-weight: bold;} /*将h3标题转换为小型大写字母*/ h3{font-variant: small-caps;}
五、字体属性的简写
p { /*始终要保证声明font-size 和 font-family的值*/ /*指定顺序:先指定font-weight、font-style、font-variant(任意顺序),然后依次指定font-size、font-family*/ font:bold italic small-caps .75em verdana, arial, sans-serif; }
六、CSS蛇形文本
CSS会把一个盒子放到位于元素中的文本周围,只在开头和结尾是闭合的
-
text-indent 只能缩进首行
-
要想缩进整个段落,需要使用margin-left将整个容器往右侧推动
七、文本属性
text-indent |
缩进元素中文本的首行 |
任何长度值 |
vertical-align |
相对于基准线将文本向上或者向下方移动 |
任何长度值、sup、sub、top、middle、bottom |
letter-spacing |
设置字符间距 |
任何长度值 |
word-spacing |
设置字间距 |
任何长度值 |
text-decoration |
向文本添加修饰 |
none、underline、overline、line-through、blink |
text-align |
使文本与包含元素对齐 |
left、right、center、justify |
line-height |
设置行高(行与行基准线之间的距离) |
任何数字值(不需要指定单位) |
text-transform |
改变元素中文本的大小写形式 |
uppercase、lowercase、capitalize、none |
/*缩进首行文本*/ p {text-indent: 3em;} /*为段落指定一个大于负缩进值的正左外边距,产生悬挂段落的效果*/ p { text-indent: -1.5em; margin-left: 2em; border: 1px solid red; } /*设置字符间距*/ p{ letter-spacing: .2em; } /*设置单词间距*/ p{ word-spacing: .2em; } /*去掉文本的下划线*/ a{ text-decoration: none; } /*需要在包含元素上设置text-align属性,使其子元素内容对齐*/ div { text-align: right; } /*设置行高*/ p{ line-height: 1.5; } div#intro { /*行高设置为字体的1.4倍*/ /*行高比文本高出的部分,会再文本的上方和下方平均分配*/ font:1.2em/1.4; } /*将每个单词的首字母变成大写*/ p{ text-transform: capitalize; } p{ vertical-align: 50% }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。