下面两个为什么效果会一样呢?按照子选择器和后代选择器的区别,子选择器应该只对第一层标签有效果吧?那第一个例子中的“”如“”是不是就不应该有颜色呢?
1
.first》span{color:red;}
<span>胆小<span>如</span>鼠</span>
2
.first span{color:red;}
<span>胆小<span>如</span>鼠</span>
你别用color作比较啊,换个明显的属性就能对比出区别了,帮你做个对比
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .a>span{ color:red; border: 1px solid red ; } .b span{ color:red; border: 1px solid red ; } .c>span{ color:red; border: 1px solid red ; } .d span{ color:red; border: 1px solid red ; } </style> </head> <body> <p class="a"> <!--子元素--> <span>胆小<span>如</span><!--孙元素-->鼠</span> </p> <p class="b"> <!--子元素--> <span>胆小<span>如</span><!--孙元素-->鼠</span> </p> <p class="c"> <span>胆小</span><!--子元素-->如<span>鼠</span><!--子元素--> </p> <p class="d"> <span>胆小</span><!--子元素-->如<span>鼠</span><!--子元素--> </p> </body> </html>
第一个,子选择器中的直接后代即第一代后代<span>包含了另一个<span>
.first>span{color:red;} <span>胆小<span>如</span>鼠</span>
你可以理解为<span>(胆小<span>如</span>鼠)</span>,所以颜色会改变
继承了父级span的color属性,
刚才那个回答错了,>作用于第一个后代没问题,但是你的两个span标签,第一个子代就是最外层的span标签,如包含在里面,所以如也有颜色。也就是说你得这两个span标签,第一代包含了第二代!所以第二代也变色了
你添加第三个span标签试试看,也许会发现不同