我的位置: 首页  >   揭秘CSS  >   3.2.1 文本缩进

3.2.1 文本缩进

编辑:比特教程网    时间:2018-10-12 13:17    


在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属性,但无法将该属性应用于行内元素、及图像之类的替换元素。但是,如果一个块级元素的首行中有一个图像,图像也会随该行的其余文本而移动。



上一节:3.2 文本

下一节:3.2.2 水平对齐