另一个元素之后或之前的元素的CSS,而不是嵌套的元素

时间:2013-12-30 18:04:07

标签: html css

我使用markdown来编写我的文本,所以我无法控制HTML元素。因此,这是给出的:

<h2>Headline</h2>
<p>A paragraph</p> // standard bottom-margin to next <p>
<p>Another paragraph</p> // double bottom-margin should apply here because the next element is h2

<h2>Another Headline</h2>
<p>And another paragraph</p> standard bottom-margin to next <p>

是否存在与css相关的方法---或者根本没有 - 在<p>和下一个<h2>之间应用比在所有其他<p>之间更大的余量<p>转换?

我想明确控制新<p>之前的<h2>,而不是任何其他float

我正在使用<h2>,因此简单的top-margin {{1}}无效。

这就是我的网站的样子:

enter image description here

3 个答案:

答案 0 :(得分:4)

兄弟选择器怎么样?

h2+p {/*your styles here*/}

参考:http://css-tricks.com/child-and-sibling-selectors/

答案 1 :(得分:2)

编辑:根据你的编辑,这不是你想要的。

您可以改为控制h2,例如:

h2:not(:first-child) {
    margin-top: 10px;
}

除了第一个之外,这将创建比每个h2高10px的边距。

答案 2 :(得分:1)

h2:before {display:block;margin-top:20px;height:20px;content:"";background:#aaa;}

粗略示例http://jsfiddle.net/eHreL/