前辈,请问下面的代码怎么解释?

前辈 请问下面的代码怎么解释?
原地址
http://www.w3school.com.cn/tiy/t.asp?f=jquery_parent

<!DOCTYPE html>
<html>
<head>
<style>
.ancestors *
{ 
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
  $("span").parent().css({"color":"red","border":"2px solid red"});
});
</script>
</head>
<body>

<div class="ancestors">
  <div style="width:500px;">div (曾祖父)
    <ul>ul (祖父)  
      <li>li (直接父)
        <span>span</span>
      </li>
    </ul>   
  </div>

  <div style="width:500px;">div (祖父)   
    <p>p (直接父)
        <span>span</span>
      </p> 
  </div>
</div>

</body>
</html>

给所标签的父标签加一个样式,红色字体,红色边框。

div class="ancestors"

$(document).ready(function(){ $("span").parent().css({"color":"red","border":"2px solid red"}); });

JS 代码的意思是给所有span标签的添加一个红色2px的边框,字体颜色变红

前辈,还有一点不懂是,

 <style>
.ancestors *
{ 
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>

为什么打一个*,且打和不打屏显效果不同


css里的 * 是通配符 意思就是所有的标签

.ancestors * 意思就是样式ancestors下的所有标签都参照这个样式

懂了吗?