Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.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
Html 样式第一个子元素(如果它是第一个元素)_Html_Css_Css Selectors - Fatal编程技术网

Html 样式第一个子元素(如果它是第一个元素)

Html 样式第一个子元素(如果它是第一个元素),html,css,css-selectors,Html,Css,Css Selectors,我想向第一个h2子元素添加填充,前提是它是父元素中的“第一个元素” <div id="test"> <h2>Try 1</h2> Test Test Test <h2>Try 2</h2> </div> 但这还不够!我可以用CSS2执行此操作吗?仅当它是第一个子节点时?不,不幸的是,不使用CSS选择器,因为非元素节点对CSS选择器不可见(属性选择器和:empty除外)。检查示例 css示例:

我想向第一个h2子元素添加填充,前提是它是父元素中的“第一个元素”

<div id="test">
    <h2>Try 1</h2>
    Test Test Test
    <h2>Try 2</h2>
</div>  

但这还不够!我可以用CSS2执行此操作吗?

仅当它是第一个子节点时?不,不幸的是,不使用CSS选择器,因为非元素节点对CSS选择器不可见(属性选择器和
:empty除外)。

检查示例

css示例:

 div h2:nth-of-type(1) {
   background:red;
  }​

恐怕只有IE9+支持,其他浏览器都可以

用jquery?我可以测试它吗?如果h2是父级中的第一个“元素”(也在文本之前或之后,而不是特定的元素…),那么您应该能够使用纯JavaScript:
document.getElementById('test')。firstChild.nodeName=='h2'
使用问题中给出的代码进行测试,您会发现它不起作用。不,当文本节点在那里时,它不应该变成红色。我明白你的意思。因此,我想纯粹的css方法是不可能的
h2
{
    padding-top:0;
}

#test h2:first-child
{
    padding-top:40px;
}​
 div h2:nth-of-type(1) {
   background:red;
  }​