`div> a`和`div a`是一回事吗?

fun*_*hun -2 html css css-selectors

在CSS中,是选择div > adiv a一样吗?

<div>
  <a>Hi</a>
</div>
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 10

事实并非如此." div > a"是一个儿童选择器 ; 它的意思是"一个a这是一个元素直接子div"." div a"是后代选择器 ; 它的意思是"一个a,这是一个元素后裔一个的div(一个孩子,或孩子的孩子,或孩子的孩子的孩子,...)".当然,所有儿童元素都是后代; 但并非所有的后代都是孩子.

例如:

<div>
  <a href='http://www.google.com'>Google</a>
</div>
Run Code Online (Sandbox Code Playgroud)

匹配both div > adiv a(它a是a的子元素div,当然所有子元素也是后代元素).

但:

<div>
  <span>
    <a href='http://www.google.com'>Google</a>
  </span>
</div>
Run Code Online (Sandbox Code Playgroud)

...不匹配div > a但匹配div a,因为它a是一个后代但不是一个直接的孩子(span中间有一个).

实例