文本
综合
line-height
line-height: <行高>
继承
normal
:常规 默认值(谷歌浏览器为字号的1.32倍,火狐浏览器为字号的1.44倍)- 长度值
- 百分值:相对于字号
- 数值:字号的倍数
说明
- 内容区高度由
font-size
决定 - 行内框高度由
line-height
决定 - 行框的高度由所有行内框中最高顶边和最低底边决定
vertical-align
vertical-align: <纵向对齐>
baseline
:基线对齐 默认值sub
:下标,即元素基线低于父元素基线super
:上标,即元素基线高于父元素基线bottom
:行内框底部与行框底部对齐top
:行内框顶部与行框顶部对齐text-bottom
:行内框底部与父元素内容区底部偏下对齐text-top
:行内框顶部与父元素内容区顶部偏上对齐middle
:行内框中线与父元素基线偏上对齐- 长度值:基线偏离上或下的距离
- 百分值:基线偏离上或下的距离,相对于
line-height
注意
vertical-align
只对行内元素和置换元素有效。
vertical-align: top/bottom
本身位置相对于行框,又影响行框高度,容易迷惑,总结规律如下:
- 先由相对基线的元素,确定初步行框;
top/bottom
的高度如果没有超过当前行框,则初步行框为最终行框,在最终行框下进行top/bottom
定位;- 否则按
top/bottom
中的最高高度元素,top
则定住当前行框顶部,向下拓高行框,bottom
反之,确定出最终行框; - 其他
top/bottom
元素在最终行框下定位。
letter-spacing
letter-spacing: <字符间距>
继承
normal
:默认字符间距 默认值- 长度值:对默认字符间距增加或减少的量
注意
word-spacing
和 letter-spacing
会受 text-align: justify
影响。
word-spacing
word-spacing: <单词间距>
继承
normal
:默认单词间距 默认值- 长度值:对默认单词间距增加或减少的量
说明
word-spacing 其实就是空格的宽度
white-space
white-space: <空白处理>
继承
normal
:空白符压缩,换行符压缩,内容换行 默认值nowrap
:空白符压缩,换行符压缩,内容不换行pre
:空白符保留,换行符换行,内容不换行pre-line
:空白符压缩,换行符换行,内容换行pre-wrap
:空白符保留,换行符换行,内容换行
word-break
word-break: <换行方式>
继承
keep-all
:空格,连字符允许换行normal
:单词之间,空格,连字符允许换行 默认值break-all
:单词内部,单词之间,空格,连字符允许换行break-word
:连续相连符号内部,单词内部,单词之间,空格,连字符允许换行(即任意处都可以换行,不会出现溢出)
注意
- 先考虑
white-space
,当允许内容换行时,才需要考虑换行方式word-break
,即当white-space: nowrap/pre
时,word-break
没意义,因为内容不允许换行; - 一个汉语日语韩语,或者一串连续的字母数字,为一个单词;
overflow-wrap
overflow-wrap: <溢出处理>
继承
normal
:溢出处不换行 默认值break-word
:溢出处换行
注意
先考虑
white-space
,当允许内容换行时,再考虑换行方式word-break
,在当前换行方式下出现溢出,overflow-wrap
才会发挥作用。以下是溢出情况分析:word-break: keep-all
:连续相连符号内部,单词内部,单词之间会溢出word-break: normal
:连续相连符号内部,单词内部会溢出word-break: break-all
:连续相连符号内部会溢出word-break: break-word
:不会出现溢出,overflow-wrap
不起作用
word-wrap
为overflow-wrap
的旧式写法;
tab-size
tab-size: <制表符宽度>
继承
- 数值:空格的个数,8 默认值
- 长度值
注意
white-space 中的空白符包括空格符和制表符,当空白符被压缩时,tab-size
也就不起作用。
direction
direction: <文本方向>
继承
ltr
:从左到右 默认值rtl
:从右到左
说明
direction
与text-align
区别在于,direction
能影响文本溢出时的方向,以及使用两端对齐时最后一行的位置;direction
效果同元素中dir
属性;
writing-mode
writing-mode: <书写模式>
继承
horizontal-tb
:行内方向从左到右,块级方向从上到下 默认值vertical-lr
:行内方向从上到下,块级方向从左到右vertical-rl
:行内方向从上到下,块级方向从右到左
hyphens
hyphens: <连字符>
继承
manual
:单词换行时,优先在­
处加连字符并换行 默认值auto
:自动加连字符none
:忽略连字符
字体
font-family
font-family: <字族>,#
继承
serif
:衬线字体(字形宽度各异,有衬线)sans-serif
:无衬线字体(字形宽度各异,无衬线)monospace
: 等宽字体(字形宽度相同)cursive
:草书字体(手写体)- 字体名,如
Microsoft YaHei
,"Microsoft YaHei"
font-size
font-size: <字号>
继承
绝对大小
xx-small
,x-small
,small
,medium
默认值,large
,x-large
,xx-large
相对大小
smaller
,large
其他
百分值:相对于父元素字号
注意
绝对大小的值取决于浏览器偏好设置和字族,medium
默认是16px,其他值依据一定比例递增递减。显示存在不确定性,不建议使用。
font-weight
font-weight: <字重>
继承
一级字重
100
,200
,300
二级字重
400 | normal
默认值 ,500
三级字重
600
,700 | bold
,800
,900
相对字重
bolder
,lighter
/* 定义多个相同字族,对应不同字重属性和字体文件 */
@font-face {
font-family: "MyFont";
font-weight: 300;
src: url(../font/msyhl.ttc);
}
@font-face {
font-family: "MyFont";
font-weight: 400;
src: url(../font/msyh.ttc);
}
@font-face {
font-family: "MyFont";
font-weight: 700;
src: url(../font/msyhbd.ttc);
}
/* 通过字重属性确定应用的字体文件 */
.div {
font-family: MyFont;
font-weight: normal;
font-size: 50px;
}
说明
使用无定义的字重时,优先使用定义在同一级别的其他字重(一级:字重↓ 权重↑,三级:字重↑ 权重 ↑),同级无则逐渐检索相邻其他级别(检索顺序:1→2→3,2→1→3,3→2→1)。
常见字型字重对应表
字型 | 字重 |
---|---|
Light | 100,200,300 |
Regular | 400 |
Medium | 500 |
Bold | 600,700 |
Extra Bold | 800,900 |
相对字重表
lighter | 继承字重 | bolder |
---|---|---|
100 | 100 | 400 |
100 | 200 | 400 |
100 | 300 | 400 |
100 | 400 | 700 |
100 | 500 | 700 |
400 | 600 | 900 |
400 | 700 | 900 |
700 | 800 | 900 |
700 | 900 | 900 |
font-style
font-style: <字形>
继承
normal
:常规 默认值italic
:斜体oblique
:倾斜体
说明
oblique
和 italic
的表现效果相同,作用互通。
如果定义两个同字族的 @font-face
,前后字形分别是 oblique
和 italic
,后者都会把前者覆盖,即应用 oblique
字形也是取 italic
(后者)对应的 @font-face
。
font-variant
font-variant: <字体变体>
继承
normal
:常规 默认值small-caps
:将小写字母转成小号的大写字母
font-stretch
font-stretch: <字宽>
继承
常规
normal
默认值
压缩
semi-condensed
,condensed
,extra-condensed
,ultra-condensed
扩大
semi-expanded
,expanded
,extra-expanded
,ultra-expanded
font-kerning
font-kerning: <是否使用字体中的字距信息>
继承
auto
:自动 默认值normal
:使用字体中的字距信息none
:禁用字体中的字距信息
font
font: [<font-weight> || <font-style> || <font-variant>]? <font-size> [/ <line-height>]? <font-family>
继承
文本
text-indent
text-indent: <首行缩进>
继承
- 长度值
- 百分值:相对于宽度
text-align
text-align: <文本对齐>
继承
start
:起始对齐 默认值end
:结尾对齐left
:左对齐right
:右对齐center
:居中对齐justify
:两端对齐
text-align-last
text-align-last: <文本尾行对齐>
继承
auto
:自动 默认值start
:起始对齐end
:结尾对齐left
:左对齐right
:右对齐center
:居中对齐justify
:两端对齐
text-transform
text-transform: <文本转换>
继承
none
:无转换 默认值uppercase
:字母转大写lowercase
:字母转小写capitalize
:单词首字母转大写
text-decoration
text-decoration: <文本装饰>
none
:无装饰 默认值underline
:下划线overline
:上划线line-through
:删除线
注意
text-decoration
不可继承,但是效果照样会作用在子元素上。
text-shadow
text-shadow: <水平偏移距离> <垂直偏移距离> <模糊半径>? <阴影颜色>?
继承
text-overflow
text-overflow: <文本溢出>
clip
:裁剪ellipsis
:省略号
注意
需要配合 white-space: nowrap;
和 overflow: hidden;
使用。
text-rendering
text-rendering: <文本渲染效果>
继承
auto
:自动 默认值optimizeSpeed
:速度优先optimizeLegibility
:清晰性优先geometricPrecision
:几何精度优先
text-orientation
text-orientation: <文本方位>
继承
mixed
:英语侧排,汉语直排 默认值upright
:英语和汉语都直排sideways
:英语和汉语都侧排
说明
文本方位在 writing-mode: vertical-lr/vertical-rl
时有作用。
-webkit-text-stroke-width
-webkit-text-stroke-width: <文本描边宽度>
继承
-webkit-text-stroke-color
-webkit-text-stroke-color: <文本描边颜色>
继承
-webkit-text-stroke
-webkit-text-stroke: <text-stroke-width> <text-stroke-color>
继承
说明
火狐浏览器也支持该属性。