Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 在顶部留有页边空白,除非它们与容器div齐平?_Css_Css Selectors_Pseudo Class - Fatal编程技术网

Css 在顶部留有页边空白,除非它们与容器div齐平?

Css 在顶部留有页边空白,除非它们与容器div齐平?,css,css-selectors,pseudo-class,Css,Css Selectors,Pseudo Class,我有一个在线文档,它有两列正文(每个段落都有p标签),有一个顶级的/标题和多个内联 我用来设置列样式的CSS与我的问题无关,但基本HTML如下所示: <h1>Page</h1> <h2>Article Title</h2> <div.container><!--Begin container--> <div.col1> <h3>article heading level 2</h

我有一个在线文档,它有两列正文(每个段落都有p标签),有一个顶级的
/
标题和多个内联

我用来设置列样式的CSS与我的问题无关,但基本HTML如下所示:

<h1>Page</h1>
<h2>Article Title</h2>

<div.container><!--Begin container-->

  <div.col1>
    <h3>article heading level 2</h3>
    <p>Paragraph...</p>
    <h3>article heading level 2</h3>
  </div>

  <div.col2>
    <p>Paragraph...</p>
    <h3>article heading level 2</h3>
    <p>Paragraph...</p>
  </div>

...and so on

</div><!--End container-->    
页面
文章标题
第2级标题
段落

第2级标题 段落

第2级标题 段落

等等
我希望设置我的
标记的样式,使顶部的标记(即每列的第一个
标记)与容器顶部齐平,但所有其他
标记都有上边距

最终的目标是找到一种优雅的CSS处理方式,使我的
比我的段落具有更大的垂直空间(页边空白顶部),而无需我遍历并为每个
添加自定义选择器

我希望有某种方法可以使用伪类来达到这个效果。

您可以使用
:not(:first child)
来实现这一点:

div.container > div > h3:not(:first-child) {
   margin-top:30px;
}
这会将样式应用于所有不是您希望的第一个子元素的
元素

请注意,IE8及之前的版本不支持此功能


如果您碰巧正在使用jQuery库,并且希望该选择器(包括对各种其他伪选择器的支持)能够在IE8及之前的版本中工作,那么您可以查看

或者使用IE8支持的
h3~h3
。(不是伪类,但是呃,如果问题坚持要有一个,
h3:first child~h3
也有效。)更新:两个答案(h3:Not和h3~h3)都是完美的。我花了一段时间才回复(对不起),但解决方案非常有效。我最终使用伪类,只是因为我的特定实现排除了使用h3~h3。谢谢你的回答!这无疑让我看到了一个有用CSS的世界。