如何高亮段落的第一行

在本指南中,您将了解如何高亮段落中的第一行文本,即使您不知道该行的长度。

设置文本第一行的样式

您想让段落的第一行更大更粗。用 `<span>` 标签包裹第一行意味着您可以随意设置其样式,但是,如果由于视口大小减小导致第一行变短,则样式化的文本将换到下一行。

使用伪元素

一个 伪元素 可以替代 `<span>` 标签;然而,它更灵活 — 伪元素所选择的精确内容是在浏览器渲染内容后计算的,因此即使视口大小发生变化,它也能正常工作。

在这种情况下,我们需要使用 ::first-line 伪元素。它会选中每个段落的第一个格式化行,这意味着您可以按需设置其样式。

html
<div class="wrapper">
  <p>
    Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion
    daikon amaranth tatsoi tomatillo melon azuki bean garlic.
  </p>

  <p>
    Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette
    tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato.
    Dandelion cucumber earthnut pea peanut soko zucchini.
  </p>
</div>
css
.wrapper p::first-line {
  font-weight: bold;
  font-size: 130%;
}

注意:所有伪元素都是这样工作的。它们的行为就像您在文档中插入了一个元素,但它们是动态地根据运行时显示的内容来工作的。

将伪元素与其他选择器结合使用

在上面的示例中,伪元素会选中每个段落的第一行。要只选中第一个段落的第一行,您可以将其与其他选择器结合使用。在这种情况下,我们使用 :first-child 伪类。这使我们能够选中 `.wrapper` 的第一个子元素的第一个格式化行,前提是该第一个子元素是一个段落。

html
<div class="wrapper">
  <p>
    Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion
    daikon amaranth tatsoi tomatillo melon azuki bean garlic.
  </p>

  <p>
    Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette
    tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato.
    Dandelion cucumber earthnut pea peanut soko zucchini.
  </p>
</div>
css
.wrapper p:first-child::first-line {
  font-weight: bold;
  font-size: 130%;
}

注意:当在 复杂复合 选择器中将伪元素与其他选择器结合使用时,伪元素必须出现在选择器中它们所出现的其他所有组件之后。

另见