通过CSS提供的几个属性,可以非常轻松有效地定义各种文本样式,例如颜色、对齐方式、间距、装饰、转换等。

常用的文字属性有:text-align, text-decoration, text-transform, text-indent, line-height, letter-spacing, word-spacing等。 这些属性使您可以精确控制 characters, words, spaces 的视觉外观,等等。

方便我们更详细地了解如何为元素设置这些文本属性。

属性描述
text-align设置文本的水平对齐方式;
text-decoration设置文本的装饰;
text-transform设置文本中英文的大小写转换方式;
text-indent设置文本的缩进方式;
line-height设置行高;
letter-spacing设置字符间距;
word-spacing设置单词与单词之间的间距(对中文无效);
text-shadow设置文本阴影;
vertical-align设置文本的垂直对齐方式;
white-space设置文本中空白的处理方式;
direction设置文本方向。


1. text-align文本对齐方式

text-align 属性用来设置元素中文本的水平对齐方式,属性的可选值如下:

描述
left默认值,左对齐
right右对齐
center居中对齐
justify两端对齐
inherit
从父元素继承 text-align 属性的值

举例:

<!DOCTYPE html>
<html>
<head>
    <style>
    p{
        border: 1px solid black;    /*为了能更直观的体现出文本的对齐方式,这里给p标签设置一个边框*/
    }
    .text1 {
        text-align: left;
    }
    .text2 {
        text-align: right;
    }
    .text3 {
    text-align: center;
    }
    </style>
</head>
<body>
    <p class="text1">左对齐</p>
    <p class="text2">右对齐</p>
    <p class="text3">居中对齐</p>
</body>
</html>

展示的结果如图:text-align文本对齐方式


2. text-decoration

text-decoration 属性用于设置或删除文本的装饰,最常用的做法就是使用 text-decoration 属性来删除<a>标签的默认下划线。当然了,使用 text-decoration 属性也可以在需要的地方为元素中的文本添加一些装饰,达到突出显示的效果。

text-decoration 属性的可选值如下:

描述
none默认值,标准文本,没有额外装饰,可以用来删除已有的文本装饰
underline在文本下方添加一条下滑线
overline在文本上方添加一条上滑线
line-through在文本的中间定义一条横向贯穿文本的线(类似于删除线)
blink定义闪烁的文本(目前主流浏览器不再支持)
inherit从父元素继承 text-decoration 属性的值

举例:

<!DOCTYPE html>
<html>
<head>
<meta charset="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: underline overline;
}
 
</style>
</head>
 
<body>
<h1 class="under">下划线</h1>
<p class="line">删除线</p>
<p class="blink">闪烁效果,但浏览器不会显示</p>
<h1 class="over">下划线</h1>
<p>这是一个 <a class="none" href="#">链接</a>,默认情况下链接是有下划线的,这边我们移除它。</p>
<p class="underover">上划线与下划线</p>
 
</body>
 
</html>

展示的结果如图:

text-decoration


3. text-transform

text-transform 属性用来控制文本中英文字母的大小写,通过该属性您可以在不修改原文的基础上,将文本中的英文统一更改为小写字母、大写字母或者首字母大写的形式。

描述
none默认。定义带有小写字母和大写字母的标准的文本。
capitalize文本中的每个单词以大写字母开头。
uppercase定义仅有大写字母。
lowercase定义无大写字母,仅有小写字母。
inherit规定应该从父元素继承text-transform属性的值。


4. text-indent

text-indent 属性用来为元素中的文本添加首行缩进的效果,属性的可选值如下:

描述
length以固定的值加单位的形式(例如 2em)定义缩进距离,默认值为 0
%以基于父元素宽度的百分比来定义缩进距离
inherit从父元素继承 text-indent 属性的值


5. line-height行高

该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。

line-height 与 font-size 的计算值之差(行间距)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。

描述
normal默认值,使用默认的行高,不对行高进行额外设置
number以具体的数字设置行高,这个数字会与当前的字体大小相乘,并将得到的值设置为行高
length以数字加单位的形式设置固定的行高
%以百分比的形式设置基于当前字体尺寸百分比的行高
inherit从父元素继承 line-height 属性的值

举例:

<!DOCTYPE html>
<html>
<head>
    <style>
    p.small {
        line-height: 0.8;
    }
    p.big {
        line-height: 200%;
    }
    </style>
</head>
<body>
    <p>
        这是默认的标准行高<br>
        这是默认的标准行高<br>
        这是默认的标准行高<br>
    </p>
    <p class="small">
        使用数字定义一个较小的行高<br>
        使用数字定义一个较小的行高<br>
        使用数字定义一个较小的行高<br>
    </p>
    <p class="big">
        使用百分比的形式定义一个较大的行高<br>
        使用百分比的形式定义一个较大的行高<br>
        使用百分比的形式定义一个较大的行高<br>
    </p>
</body>
</html>

展示的结果如图:

line-height行高


6. letter-spacing

文字与文字间的间距,值可以负数,默认值normal,所有浏览器都支持 letter-spacing 属性。

描述
normal默认值,表示字符之间没有额外的间距
length以数值加单位的形式设置字符之间的固定间距(允许使用负值)
inherit从父元素继承 letter-spacing 属性的值

举例:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk2312"/>
    <title>css的letter-spacing属性</title>
    <style>
        *{margin:0;padding:0;}
        body{width:1000px;margin:200px auto;}
        p{font-size:18px;}
        .p01{ letter-spacing:2px;}
        .p02{ letter-spacing:10px}
    </style>
</head>
<body>
<p class="p01">css文字间距测试文字!</p>
<p class="p02">css文字间距测试文字!</p>
</body>
</html>

展示的结果如图:

letter-spacing


7. word-spacing

word-spacing 属性用来设置单词与单词之间的间距,但对中文无效,属性的可选值如下:

描述
normal默认值,表示单词与单词之间没有额外的间距
length以数值加单位的形式设置单词与单词之间的固定间距(允许使用负值)
inherit从父元素继承 word-spacing 属性的值


8. text-shadow文本阴影

text-shadow 为文字添加阴影。可以为文字与 decoration 添加多个阴影,阴影值之间用逗号隔开。每个阴影值由元素在 X 和 Y 方向的偏移量、模糊半径和颜色值组成。


9. vertical-align

vertical-align 属性设置元素的垂直对齐方式。

css中的vertical-align 属性只能用于 行内元素 和 置换元素(例如 图像和表单输入框) ,此属性不继承。

首先我们先看一张图,文字的顶线、中线、基线,基线是字母x的下边缘vertical-align

提到了基线、底线、顶线、中线等概念,它们到底指什么呢?

(1)顶线:中文汉字的上边沿;

(2)中线:贯穿小写英文字母 x 中间的线;

(3)基线:小写英文字母 x 的下边沿;

(4)底线:中文汉字的下边沿;

(5)内容区:指底线与顶线包裹的区域;

(6)行高:包括内容区与以内容区为基础对称拓展的空白区域,我们称之为行高,也可以认为是相邻文本行基线间的距离;

(7)行距:指相邻文本行间上一个文本行底线和下一文本行顶线之间的距离;

(8)行内框:是一个浏览器渲染模型中的概念,无法显示出来,但是它又确实存在,它的高度与行高相同;

(9)行框:同行内框类似的概念,行框是指本行的一个虚拟的矩形框,也是浏览器渲染模式中的一个概念。行框高度等于本行内所有元素中行内框最大的值(以行高值最大的行内框为基准,其他行内框采用自己的对齐方式向基准对齐,最终计算行框的高度)。


10. white-space处理空白符

描述
normal默认。空白会被浏览器忽略。
pre空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap文本不会换行,文本会在在同一行上继续,直到遇到
标签为止。
pre-wrap保留空白符序列,但是正常地进行换行。
pre-line合并空白符序列,但是保留换行符。
inherit规定应该从父元素继承 white-space 属性的值。

下面的表格总结了 white-space 属性的行为:

空白符换行符自动换行
pre-line合并保留允许
normal合并忽略允许
nowrap合并忽略不允许
pre保留保留不允许
pre-wrap保留保留允许


11. direction文本方向

描述
ltr默认值,文本按从左到右的方向输出
rtl文本按从右到左的方向输出
inherit从父元素继承 direction 属性的值


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)