100天学习前端计划 DAY 3 | CSS选择器梳理

121 阅读1分钟

今天没学啥新知识,复习巩固一下之前选择器知识吧。

前两天在stackoverflow上问了一个关于选择器的问题: div#sidebar和#sidebar div的区别是什么?

热心网友的回答让我总算搞明白了。

#sidebar div:是选择id为sidebar的子孙中的div元素,注意是子孙哦!它本身的这个sidebar元素是不会被选择的。

div#sidebar:则是选择id是sidebar的所有div元素。

用下面这个例子搞明白吧:

<html> 
<head> 
<style type="text/css"> 
div#sidebar, #sidebar2 div { 
background-color: red; 
opacity: 50%; 
} 
#cool{ 
background-color: yellow; 
} 
div { 
border: 2px solid blue; padding: 3px; 
} 
</style> 
</head> 
<body> 
<div id="sidebar">
<div id="cool">div#sidebar
</div>
</div> 
<div id="sidebar2">
<div>#sidebar div</div>
</div> 
</body> 
</html>

效果如下,可以看到#sidebar div只用它里面的子孙元素变红了!而div#sidebar则让id为sidebar的元素变红,因为background-color是不能继承的,所以它的子元素cool并没有变红。