从第2段开始的文本缩进

时间:2015-02-04 18:48:39

标签: html css text-indent

我有来自DB的文本($ row [text]),它看起来像:

<p>First</p>
<p>Second</p>
<p>Third</p>

我想从第2段开始应用“text-indent”。 我知道,它可以应用于类:

.a{text-indent: 20px}
<p>First</p>
<p class="a">Second</p>
<p class="a">Third</p>

但我无法做到这一点,因为我无法编辑数据库。 当我使用 p {text-indent:20px} 它适用于所有段落

3 个答案:

答案 0 :(得分:2)

您可以将text-indent应用于所有p代码,然后将其移除first-child

&#13;
&#13;
p{text-indent: 20px}
p:first-child{text-indent:0}
&#13;
<p>First</p>
<p>Second</p>
<p>Third</p>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

这取决于p元素的标记上下文和所需的排版实践。例如,如果p元素遵循列表或表格,那么它应该缩进吗?意见不一致。在任何情况下,一旦你决定了排版政策,你可以使用合适的上下文选择器来处理它(除非你需要担心相当旧版本的IE)。

在一个极端情况下,只有当一个段落紧跟在另一个段落之后时,才能缩进段落,因为这是真正需要缩进的上下文。正如您通常希望在使用缩进时阻止段落之间的默认垂直间距一样,您可以使用

p + p { text-indent: 1em; }
p { margin: 0; }

(使用em单元优于px,因为它适应字体大小的变化。通常1em就足够了。)

答案 2 :(得分:1)

您可以使用nth-child伪类来实现此目的。它接受一个公式以及用0代替n等等,所以你的公式变为 2 + n

p:nth-child(2+n){text-indent: 20px}

<p>First</p>
<p>Second</p>
<p>Third</p>