CSS:仅在某些出现的 div 上使用 first-of-type

标签 css css-selectors

我正在尝试弄清楚如何指示“第一个”应该只出现在特定的 div 上。例如,假设我有一个类“.maintext”,在某些情况下我希望第一段有首字下沉,而在其他情况下则没有。

我通常会这样做:

.maintext { font, border, etc }
.maintext p:first-of-type:first-letter { css for the dropcap }

但是有了这个,每次我使用 <div class='maintext'>它称为 dropcap。我如何在 HTML 中指出有时我想要首字下沉,有时不需要,这样我就可以保持干燥?

我的一般 HTML 是这样的:

<div class="maintext>
<p>some text</p>
<p>some text</p>
</div>

最佳答案

不用想太多。只需为您的段落标签使用一个类,并在任何需要的地方重复使用它,而不管它的容器是什么。

p.hasDropCap:first-letter {
  font: bold 28px Georgia;
}

如果您只希望 .maintext 的第一段有首字下沉,请按以下步骤操作:

.maintext p:first-child:first-letter {
  font: bold 28px Georgia;
}

或者,如果您想设置整个第一行的样式,您也可以使用 :first-line

关于CSS:仅在某些出现的 div 上使用 first-of-type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946092/

相关文章:

html - 尽管它们都在 CSS 中,但浏览器不会对每个 webfont 发出请求

JQuery nth-child 无法正常工作

jquery - 用 css 类选择器覆盖 JQuery 类选择器

jquery - 单击图像弹出时如何使其余背景变暗

html - 背景上的圆 Angular ?

javascript - Box-shadow 响应鼠标位置

css - 如何使用 Client Bundle 将 CSS 应用于对话框?

css - 自定义单选按钮 w3s 示例

html - 无法在CSS中选择第一个 child

javascript - 如何在 JavaScript 中切换特定的 div