Цель CSS последний абзац после заголовка

Я искал как изменить последний абзац после заголовка с помощью CSS.

Я думал #div h1 ~ p:last-child сделал бы трюк, но он пропускает мимо второго заголовка и редактирует последний абзац перед списком. Я искал некоторое время и наткнулся на несколько продвинутых сайтов справки css, но они повторяются с наиболее распространенными расширенными селекторами.

HTML:

<h1>Heading</h1>
<p>content</p>
<p>content</p>
<p>content</p>

<h2>Heading</h2>
<p>content</p>
<ul>
      <li>list</li>
      <li>list</li>
</ul>

CSS-код:

#contentContainer > h1 ~ p:last-of-type {
    border-bottom: 1px solid #000;
}

2 ответов


символ тильды представляет собой селектор общего брата:

общий селектор селектор очень похож на смежный селектор селектор разница заключается в том, что выбранный элемент не должен немедленно преуспеть в первом элемент, но может появиться где угодно после него.

Это означает, что это может быть после 100 различных тегов (например, h2, h3, div, img и т. д.), и css все равно повлияет на это.

насколько мне известно, нет селектора или комбинации селекторов, которые смогут сделать то, что вы пытаетесь сделать, так как элементы находятся на одном уровне, и CSS не становится настолько продвинутым, как "сделать это, прежде чем он ударит по другому элементу".

Извините, если я ошибаюсь, надеюсь, что я ошибаюсь ради вас.


Если вы хотите создать пробел между заголовком и последним абзацем, вы можете использовать

p + h2, p + h3 { 
    padding-top: 20px 
}