通过CSS提供的几个属性,可以非常轻松有效地定义各种文本样式,例如颜色、对齐方式、间距、装饰、转换等。
常用的文字属性有:text-align, text-decoration, text-transform, text-indent, line-height, letter-spacing, word-spacing等。 这些属性使您可以精确控制 characters, words, spaces 的视觉外观,等等。
方便我们更详细地了解如何为元素设置这些文本属性。
1.text-align文本对齐方式
text-align 属性用来设置元素中文本的水平对齐方式,属性的可选值如下:
举例:
<!DOCTYPEhtml><html><head><style>p{border:1pxsolidblack;/*为了能更直观的体现出文本的对齐方式,这里给p标签设置一个边框*/}.text1{text-align:left;}.text2{text-align:right;}.text3{text-align:center;}</style></head><body><pclass=text1>左对齐</p><pclass=text2>右对齐</p><pclass=text3>居中对齐</p></body></html>
展示的结果如图:
2. text-decoration
text-decoration 属性用于设置或删除文本的装饰,最常用的做法就是使用 text-decoration 属性来删除<a>标签的默认下划线。当然了,使用 text-decoration 属性也可以在需要的地方为元素中的文本添加一些装饰,达到突出显示的效果。
text-decoration 属性的可选值如下:
举例:
<!DOCTYPEhtml><html><head><metacharset=utf-8><title>text-decoration</title><style>h1.under{text-decoration:underline;}h1.over{text-decoration:overline;}p.line{text-decoration:line-through;}p.blink{text-decoration:blink;}a.none{text-decoration:none;}p.underover{text-decoration:underlineoverline;}</style></head><body><h1class=under>下划线</h1><pclass=line>删除线</p><pclass=blink>闪烁效果,但浏览器不会显示</p><h1class=over>下划线</h1><p>这是一个<aclass=nonehref=#>链接</a>,默认情况下链接是有下划线的,这边我们移除它。</p><pclass=underover>上划线与下划线</p></body></html>
展示的结果如图:
3.text-transform
text-transform 属性用来控制文本中英文字母的大小写,通过该属性您可以在不修改原文的基础上,将文本中的英文统一更改为小写字母、大写字母或者首字母大写的形式。
4.text-indent
text-indent 属性用来为元素中的文本添加首行缩进的效果,属性的可选值如下:
5.line-height行高
该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。
line-height 与 font-size 的计算值之差(行间距)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。
举例:
<!DOCTYPEhtml><html><head><style>p.small{line-height:0.8;}p.big{line-height:200%;}</style></head><body><p>这是默认的标准行高<br>这是默认的标准行高<br>这是默认的标准行高<br></p><pclass=small>使用数字定义一个较小的行高<br>使用数字定义一个较小的行高<br>使用数字定义一个较小的行高<br></p><pclass=big>使用百分比的形式定义一个较大的行高<br>使用百分比的形式定义一个较大的行高<br>使用百分比的形式定义一个较大的行高<br></p></body></html>
展示的结果如图:
6.letter-spacing
文字与文字间的间距,值可以负数,默认值normal,所有浏览器都支持 letter-spacing 属性。
举例:
<!DOCTYPEhtml><html><head><metahttp-equiv=Content-Typecontent=text/html;charset=gbk2312/><title>css的letter-spacing属性</title><style>*{margin:0;padding:0;}body{width:1000px;margin:200pxauto;}p{font-size:18px;}.p01{letter-spacing:2px;}.p02{letter-spacing:10px}</style></head><body><pclass=p01>css文字间距测试文字!</p><pclass=p02>css文字间距测试文字!</p></body></html>
展示的结果如图:
7.word-spacing
word-spacing 属性用来设置单词与单词之间的间距,但对中文无效,属性的可选值如下:
8.text-shadow文本阴影
text-shadow 为文字添加阴影。可以为文字与 decoration 添加多个阴影,阴影值之间用逗号隔开。每个阴影值由元素在 X 和 Y 方向的偏移量、模糊半径和颜色值组成。
9.vertical-align
vertical-align 属性设置元素的垂直对齐方式。
css中的vertical-align 属性只能用于 行内元素 和 置换元素(例如 图像和表单输入框) ,此属性不继承。
首先我们先看一张图,文字的顶线、中线、基线,基线是字母x的下边缘
提到了基线、底线、顶线、中线等概念,它们到底指什么呢?
(1)顶线:中文汉字的上边沿;
(2)中线:贯穿小写英文字母 x 中间的线;
(3)基线:小写英文字母 x 的下边沿;
(4)底线:中文汉字的下边沿;
(5)内容区:指底线与顶线包裹的区域;
(6)行高:包括内容区与以内容区为基础对称拓展的空白区域,我们称之为行高,也可以认为是相邻文本行基线间的距离;
(7)行距:指相邻文本行间上一个文本行底线和下一文本行顶线之间的距离;
(8)行内框:是一个浏览器渲染模型中的概念,无法显示出来,但是它又确实存在,它的高度与行高相同;
(9)行框:同行内框类似的概念,行框是指本行的一个虚拟的矩形框,也是浏览器渲染模式中的一个概念。行框高度等于本行内所有元素中行内框最大的值(以行高值最大的行内框为基准,其他行内框采用自己的对齐方式向基准对齐,最终计算行框的高度)。
10.white-space处理空白符
下面的表格总结了 white-space 属性的行为:
11.direction文本方向