Html 样式第一个子元素(如果它是第一个元素)
我想向第一个h2子元素添加填充,前提是它是父元素中的“第一个元素”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示例:
<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;
}