常见文本样式
缩进和对齐
缩进文本
text-indent
属性规定了一个块级元素内首行文本内容(含行内元素)之前应该有多少水平空格
数值可以为正,也可以为负或者百分数,举个例子:
1 | <div>Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.</div> |
1 | div { |
text-indent
可以被继承
1 | <div class="text"> |
1 | .text { |
文本横向对齐
text-align
可以用于设置块级元素内的水平对齐方式,常见的属性取值有left
、right
和center
1 | <div>Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.</div> |
1 | div { |
还有其他几种取值:
start
和end
这两个属性是CSS3新增的,同时
start
成为了新的text-align
的默认值当文本方向是从左到右,那么
start
与left
作用相同,同理,如果文本方向是从右向左,那么start
与right
相同;end
反之Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.1
<div>Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.</div>
1
2
3
4div {
text-align: start;
/* text-align: end; */
}两端对齐
justify
Some of us get dipped in flat, some in satin, some in gloss....But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.1
<div>Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.</div>
1
2
3div {
text-align: justify;
}
如果想单独为元素的最后一行设置不同的样式,可以使用text-align-last
属性
1 | <div>Some of us get dipped in flat, some in satin, some in gloss.... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.</div> |
1 | div { |
只要一行后面有强制换行,不管是否在元素末尾,都受text-align-last
属性的控制
But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.
1 | <div> |
1 | div { |
需要注意的是,该属性不支持 Safari
文本纵向对齐
行高
行之间的距离受行高的影响,line-height
属性指行的基线之间的距离,与字号无关
对于块级元素,line-height
定义元素中文本行基线之间的最小距离,基线之间的距离也可能比line-height
大
line-height
控制的是行距,是除字体高度之外在文本行上方的额外空间,line-heigh
的值与字体高度之差就是行距
1 | div { |
如上所示,line-height
的取值可以是长度值,也可以是百分比或纯数字,在多数情况下首选纯数字
使用纯数字在继承时,继承的是设定的换算系数,而如果是百分比或者em
,则继承的是计算后的值
Some of us get dipped in flat, some in satin, some in gloss....But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.
1 | <div class="outer"> |
1 | .outer { |
对齐
vertical-align
用来指定行内元素或表格单元格元素的垂直对齐方式,不能被继承
该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式,默认值为 baseline
基线对齐
baseline
可以使元素的基线与父元素的基线对齐,若为图片,则图片底边与父元素基线对齐1
2
3img {
vertical-align: baseline;
}基线对齐是
vertical-align
的默认值上标和下标
super
可以使元素的基线(图片的底边)高于父元素的基线,sub
可以使元素的基线(图片的底边)低于父元素的基线高出或低于的距离由用户代理决定
1
2
3
4img {
vertical-align: super;
/* vertical-align: sub; */
}底端对齐
bottom
将元素所在的内容区的底边与行框所在的底边对齐,text-bottom
使元素的底部与父元素的字体底部对齐1
2
3
4img {
vertical-align: bottom;
/* vertical-align: text-bottom; */
}顶端对齐
top
将元素所在的内容区的顶边与行框所在的顶边对齐,text-top
使元素的顶部与父元素的字体顶部对齐1
2
3
4img {
vertical-align: top;
/* vertical-align: text-top; */
}中间对齐
middle
可以使元素的中部与父元素的基线加上父元素x高度的一半对齐1
2
3img {
vertical-align: middle;
}百分比
把元素的基线(图片的底边)相对父元素的基线上升(取负值为下降)指定的量,指定的百分数相对元素自身计算
长度值
把元素的基线(图片的底边)相对父元素的基线上升(取负值为下降)指定的量
间距和大小写转换
单词间距
word-spacing
可以用于修改单词之间的距离,其值为长度,可正可负,默认值为normal
,等同于把间隔设为 0
1 | div { |
字符间距
letter-spacing
可以用于修改字符或者字母之间的距离,其值为长度,可正可负,默认值为normal
,等同于把间隔设为 0
1 | div { |
大小写转换
text-transform
属性可以改变文本的大小写,有四种取值
uppercase
lowercase
将文本转换为大写字母和小写字母
capitalize
只把各单词的首字母变成大写,不同的用户代理可能以不同的方式确定单词的起点
none
默认值,不对文本做任何修改
文本装饰
text-decoration
可以为文本设置装饰性的线条,是text-decoration-line
,text-decoration-color
和text-decoration-style
的简写
1 | div { |
text-decoration-line
text-decoration-line
可以取值为underline
、overline
、line-through
和none
,其中none
是默认值,可以同时取多个值Some of us get dipped in flat, some in satin, some in gloss .... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.1
2
3
4
5
6div {
text-decoration-line: underline;
/* text-decoration-line: overline; */
/* text-decoration-line: line-through; */
/* text-decoration-line: underline overline; */
}text-decoration-style
该属性可以设置装饰线条的样式,包括
solid
、double
、dotted
、dashed
和wavy
Some of us get dipped in flat, some in satin, some in gloss .... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.1
2
3
4
5
6
7
8div {
text-decoration-line: underline;
text-decoration-style: solid;
/* text-decoration-style: double; */
/* text-decoration-style: dotted; */
/* text-decoration-style: dashed; */
/* text-decoration-style: wavy; */
}text-decoration-color
设置装饰线的颜色
Some of us get dipped in flat, some in satin, some in gloss .... But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.1
2
3
4div {
text-decoration-line: underline;
text-decoration-color: red;
}
以上三个属性可以合并于text-decoration
中
1 | div { |
文本阴影
text-shadow
为文字添加阴影。可以为文字与text-decoration
添加多个阴影,阴影值之间用逗号隔开
每个阴影值由元素在X和Y方向的偏移量、模糊半径和颜色值组成
1 | div { |
1 | div { |
1 | div { |
处理空白
white-space
属性会影响用户代理对文档中空格、换行符和制表符的处理
normal (默认)
white-space
设置为normal
时会丢掉多余的空白,换行符变成空白,同时连续的多个空格变成一个空格,允许自动换行pre
设置为
pre
时保留文本中的换行符和多余的空格,并禁止自动换行nowrap
nowrap
与pre
相反,禁止文本中的换行并去除多余的空格,同时也禁止自动换行pre-wrap
pre-line
这两个属性都保留换行符并且允许自动换行,不同的是,前者保留多余的空白,后者相反
1 | <div> |
I love you three thousand. I love you three thousand. I love you three thousand. I love you three thousand.
1 | div { |