CSS 文本

字体

[1] 改变字体大小(字号) font-size

font-size 字体大小设置的是字体中字符 em 框的高度,实际的字符字形通常比字符 em 框要矮,与字体类型有关。

[ 长度单位?!font-size 的值可以用相对长度单位,也可以用绝对长度单位。推荐使用相对长度单位 px / em。


[2] 设置文字字体 font-family

建议:同时指定多个字体(以逗号隔开),这样,若浏览器不支持第一个字体,会尝试下一个,直到找到合适的字体。

[ 字体系列 ]                           // 了解即可

  • 通用字体系列(5 种):拥有相似外观的字体系列

  • 特定字体系列:具体的字体系列


[ 默认字体 ]


[ 中文字体 ] 对于中文字体来说,常见的是宋体和微软雅黑。          // 宋体是衬线字体,而微软雅黑是无衬线字体。

衬线字体常用于排版印刷,而无衬线字体则常用于网页中。一般地,一行中有 30-40 个文字时,行高为 1.5 时,有较好的阅读体验。对于标题来说, 更好的样式是取消其加粗设置,并改变其颜色,增加页面的层次感。

[ 兼容性 - Unicode 字体 ] 在 CSS 中设置字体名称,直接写中文是可以的,但是在文件编码(GB2312、utf-8等)不匹配时会产生乱码的错误。                     // XP 系统不支持类似“微软雅黑”的中文。

方案一:可以使用英文来代替,如 font-family:"Microsoft YaHei";

方案二:直接使用 Unicode 编码来写字体名称(浏览器可以正常解析)。             // 无需记忆,百度即可

// 实际开发中,Unicode 编码字体一般只使用宋体和微软雅黑。


[3] 字体加粗 font-weight

字体加粗除了用 b 和 strong 标签外,可以使用 CSS 来实现,但是 CSS 是没有语义的。


[4] 字体风格(斜体) font-style

字体倾斜除了用 i 和 em 标签之外,可以使用 CSS 来实现,但 CSS 是没有语义的。


[5] 字体变形 font-variant


[6] 行高 line-height

line-height属性用于设置行间距,即行与行之间的距离(字符的垂直间距),一般称为行高。


[7] font 缩写                                                字体图标 iconfont ?↓ }

font 属性用于对字体样式进行综合设置(不强求),其基本语法格式为:


颜色

颜色的出现让网页不再只是黑白,运用好颜色设计,能让网页增色不少。一个网页,给人们留下的第一印象实际上就是它的整体颜色。关于如何设置颜色,可查阅 CSS 的 6 种颜色模式。

实际上,颜色的应用主要分为前景色、背景色和透明三个部分。


[1] color 前景色                                                           { CSS颜色模式及颜色模式转换器?↓ }

[ PS 取色 ] color 属性用于定义文本的颜色,值: <color> | inherit,其取值方式通常有 3 种:

  • 预定义的颜色值,如:red、green、blue 等;
  • 十六进制,如:#fff,#FF6600,#29D794 等,十六进制是最常用的定义颜色的方式;
  • RGB 代码,如:红色可以表示为 rgb(255,0,0) 或 rgb(100%,0%,0%);   // 0% 不能省略百分号

[ 半透明 ] CSS3 中,文本颜色可以采用半透明的语法格式:


[2] 半透明 opacity

CSS3 中专门设置透明度的属性。opacity 只能给整个元素设置一个透明度,且其透明度直接会继承给其后代元素。

值: value | inherit

value:默认值是 1,可以取 0-1 的任意浮点数。其中,1 表示完全不透明,0 表示完全透明。


对齐方式

CSS文本样式是相对于内容进行的样式修饰。由于在层叠关系中,内容要高于背景。所以文本样式相对而言更加重要。有些人对文本和字体样式之间的不同不太了解,简单地讲,文本是内容,而字体则用于显示这个内容。


[1] 水平对齐 text-align:left | right | center | justify(两端对齐)

~ 是影响一个元素中的文本内容的水平对齐方式。   // 初始值: left;应用于: 块级元素(包括 block 和 inline-block )


[ 字间隔、字母间隔、文本转换、文本修饰 ]                { CSS文本方向(了解)?↓ }


[2] 垂直对齐 vertical-align                                    { 深入理解 line-height 和 vertical-align?↓ }

vertical-align 用于设置或检索对象内容的垂直对齐方式,应用于行内元素、替换元素和表单元素。也就是说,它不影响块级元素中的内容对齐,只针对于行内元素或行级块状元素,特别是行级块状元素,通常用来控制图片和表达与文字的对齐。

[ inline-block 底部空隙 — 去除图片底侧缝隙 ]

inline-block元素在块级元素中留空隙是因为图像的默认垂直对齐方式是基线对齐(基线对齐在原理上相当于图像底边与匿名文本大写英文字母X的底边对齐);而匿名文本是有行高的,继承父级元素设置的行高,默认为normal(即font-size的1.2倍),所以X的底边距离行框有一段距离,这段距离就是图像留出的空隙。简单来讲就是:图片或表单等行级块状元素,其底线会和父级盒子的基线对齐,这样会造成一个问题,就是图片的底侧会有一个空白缝隙。


[3] 首行缩进 text-indent:<length>|<percentage>        // 应用于: 块级元素(包括 block 和 inline-block)

首行缩进是将段落的第一行缩进,一般地,中文写作时开头空两格。另,该属性可为负值。


格式处理

[1] 自动换行 word-break:normal | keep-all | break-all

CSS3中文字自动换行的处理方法,主要用于处理英文单词。

通过具体设置,不仅可以让浏览器实现半角空格或连字符后面的换行,还可以让浏览器实现任意位置的换行。

[ word-wrap 单词换行 ]       // 用来实现长单词或URL地址的自动换行


[2] white-space:normal | nowrap | pre | pre-wrap | pre-line                  // 如何处理元素中的空白


文本装饰

[1] 文字阴影 text-shadow:none | [<length>{2,3}&&<color>?]#                       // IE9-浏览器不支持

[2] 文本修饰 text-decoration:none | [underline || overline || line-through]

文本修饰用于为文本提供修饰线,文本修饰线的颜色与文本颜色相同。

注,文本修饰属性无法继承,意味着子元素文本上的任何修饰线与父元素的颜色相同。子元素文本上的修饰线实际上是父元素的,只是正好"经过"而已。互不冲突的文本修饰线可出现多条。


高级设置

[1] 文本溢出 text-overflow            

[ 省略标记:文本溢出,不换行,变成 ... ]

[ 多行文本溢出 ] 在webkit浏览器中,有一个不规范的属性-webkit-line-clamp,它可以实现多行文本溢出。

它的值是一个number,设置为几,便可以设置相应数字的文本溢出。


[2] cursor 定义鼠标形状                     // 即,设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状

在浏览器中,光标对于提供交互反馈很有用通过在不同的场景中改变光标,就能赋予其不同的含义

[ 标准样式 ] CSS2 提供了相对较少的选择

[ 拓展样式 ] CSS3增加了更多的 cursor 的样式值;另,所有拓展样式 IE7- 浏览器都不支持。

[ 私有样式 ] 有些浏览器还提供了增加浏览器前缀的私有样式

[ 自定义样式 ] 所有浏览器都支持使用后缀为.cur的文件,chrome、firefox、safari还支持使用普通图片制作光标。

[ 场景应用 ] 链接的默认光标是手型指针pointer,通过光标的变化可以让访问者清楚的知道该元素是可点击的。


[3] 防止拖拽文本域 resize                           // 可以防止火狐、谷歌等浏览器随意的(右下角)拖动文本域。

[4] 强制继承 inherit        // 和父元素一样的值    { 样式关键字(了解)?↓ }