揭秘CSS(第 1 版)
3.2.1 文本缩进
阅读(

概述

CSS选择器

字体和文本

字体

文本

CSS提供了许多强有力的文本格式化工具,可以用来设定字体、颜色、字号、行距的呢过,它还有许多其他属性,可以给标题、列表、段落等添加视觉效果。

文本缩进

在CSS中,使用 text-indent属性,可以让元素第一行缩进一个给定的宽度,可能是最常见的文本格式化效果。语法格式为:

text-indent: <length> | <pecentage>

也就是说,可以使用长度值或百分比来设置文本缩进,长度值可以使用绝对单位或相对单位。当使用相对单位 em 时,缩进的宽度为字符宽度的倍数,字符宽度根据当前元素的 font-size 属性计算得到。

当然,这个属性最常见的用途,是让段落的首行缩进一个给定的宽度。如,以下规则会使所有段落的首行缩进 2 个字符的宽度:

p {
   text-indent: 2em;
}

当使用百分比时,缩进宽度根据元素父元素的宽度计算得到。换句话说,如果将缩进值设置为 20%,则所影响元素的第一行会缩进其父元素宽度的 20%。

不过,在使用百分比时,需要注意的是,text-indent属性具有继承性,而子元素继承的是 text-indent属性的计算结果,而不是百分比的值。考虑如下代码:

<article>
    使用百分比时,…,则缩进父元素宽度的 20%。
    <p>在使用百分比时,…,它可能会出现预料不到的效果。</p>
</article>
article {
    width: 500px;
    text-indent: 10%;
    border: 1px solid #ccc;
}
p {
    width: 400px;
}

上述代码中,article元素的宽度为500px,并设置文本缩进为 10%。根据继承性,p 元素会继承 article 元素的 text-indent属性。运行结果如图 3‑11 所示:

text-indent属性继承
图3-11 text-indent属性继承

从上图可以看出,子元素 p 与父元素 article 的文本缩进宽度相同,因为子元素继承的是 text-indent属性的计算结果 50px,而不是百分比的值 10%。

除了使用正值产生缩进效果外,还可以把 text-indent属性设置为负值,来实现一些很有用的效果,比如悬挂缩进的效果:

p {
    text-indent: -2em;
}

上述规则会使所有段落的首行悬挂缩进 2 个字符的宽度。当然,有时候,希望文本不可见,也可以使用 text-indent属性把文本显示到屏幕之外。

不过,在为 text-indent属性设置负值时要当心,如果对段落设置了负缩进,那么首行的某些文本可能会超出窗口的左边界。为了避免出现这种问题,建议针对负缩进再设置适当的外边距或内边距。

注意:

一般来说,可以为所有块级元素应用 text-indent属性,但无法将该属性应用于行内元素、及图像之类的替换元素。但是,如果一个块级元素的首行中有一个图像,图像也会随该行的其余文本而移动。

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

如果本教程对您帮助很大,请随意打赏。您的支持,将鼓励我写出更好的教程!

← 键盘方向键翻页 →
返回顶部 手机访问 关注微信 返回底部

扫码访问歪脖网

随时随地,想看就看

关注歪脖网微信

分享 web 知识、交流 web 经验