在CSS中使用子选择器(>)有问题吗?

时间:2012-02-19 23:42:06

标签: css css-selectors

我不确定我是否记得正确,但我想我曾经读过一次使用> css规则中的选择器是不好的做法?有人可以对这个话题有所了解吗?

例如:

<style>
#search-form {
 ... whatever rules...
}
#search-form > input[type=text] {
 ... rules...
}
#search-form > button {
 ... rules ...
}
</style>
<form id="search-form">
    <input type="text" placeholder="Search...">
    <button>Search!</button>
</form>

3 个答案:

答案 0 :(得分:2)

这当然不是不好的做法,但应该与利弊的知识一起使用。使用子选择器(E > F)将仅选择直接子项,并且由于这会阻止完整的后代遍历,因此浏览器将花费更少的时间来应用后代选择器(E F)。但是,IE6中不支持该元素,因此如果这对您很重要,请明确指出。

这有一个很好的写作和一些很好的链接:CSS child vs descendent selector

答案 1 :(得分:1)

IE6不支持>选择器,因此如果您需要支持旧浏览器,则无法使用它。

http://caniuse.com/#feat=css-sel2

除此之外,没有理由不使用它。

答案 2 :(得分:1)

子选择器仅匹配左侧选择器的直接后代。它可能是,也可能不是你想要的,但是对于所有后代应用某种风格,无论它们在左侧选择器下方有多深,都是比较常见的。

例如#mydiv > span问问自己:我真的不想在span下的p内匹配#mydivspan内的li #mydiv怎么样?等等。也许你没有 - 也许你这样做。重要的是understand what it does