首页 > 代码库 > 《写给大家看的CSS书》第三章:字体与文本

《写给大家看的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%}

 

《写给大家看的CSS书》第三章:字体与文本