Html &引用;部门p";VS";部门*p";?它们是相同的还是不同的?

Html &引用;部门p";VS";部门*p";?它们是相同的还是不同的?,html,css,css-selectors,Html,Css,Css Selectors,我知道CSS中存在所谓的“孙子”选择器,直到我看到这一点。我已经玩过了。在我看来,它只是一个通用选择器(选择所有元素) 考虑以下演示: .wrap{ 宽度:400px; 高度:300px; 保证金:50px自动; } .wrap*p{ 宽度:400px; 高度:100px; 背景颜色:绿色; 利润率:10px; 颜色:红色; } 首先 第二 第三 .wrap*p将选择的任何子元素中的任何p元素。wrap .wrap*p{ 颜色:红色; } 正文 文本2 是的,有区别 父元素的后代可以有两

我知道CSS中存在所谓的“孙子”选择器,直到我看到这一点。我已经玩过了。在我看来,它只是一个通用选择器(选择所有元素)

考虑以下演示:

.wrap{
宽度:400px;
高度:300px;
保证金:50px自动;
}
.wrap*p{
宽度:400px;
高度:100px;
背景颜色:绿色;
利润率:10px;
颜色:红色;
}

首先

第二

第三


.wrap*p
将选择
的任何子元素中的任何
p
元素。wrap

.wrap*p{
颜色:红色;
}

正文

文本2


是的,有区别

父元素的后代可以有两种类型:

  • 直系后裔
  • 间接后裔
  • 例如考虑以下标记:

    <div>
      <em>This is direct descendant</span>
      <p>
        p is also a direct descendant.
    
        <span>This is indirect descendant</span>
      </p>
    </div>
    
    上述选择器将选择出现在
    中的所有
    元素(直接和间接)

    在下面的代码段中,所有
    p
    元素都将继承样式

    .wrap p{
    背景:绿色;
    颜色:白色;
    }
    
    包裹的直接p

    间接包裹

    间接包裹


    Yes
    。wrap p
    也选择另一个没有选择的子项。你看不到任何区别,因为你没有孩子。基本上,
    .wrap p
    选择
    .wrap
    的所有子体
    p
    ,而
    .wrap*p
    选择
    .wrap
    的子体的所有子体
    p
    ,但不选择
    .wrap
    正下方的
    p
    。谢谢。
    div p { ... }