Css 使用其他选择器选择MAIN是否有优势?

Css 使用其他选择器选择MAIN是否有优势?,css,html,Css,Html,在HTML5中,main元素被定义为“文档或应用程序的主体的主要内容”,“作者不得在文档中包含多个main元素”,并且“作者不得将主元素作为文章、旁白、页脚、页眉或导航元素的后代包含在内。” 对我来说,这意味着所有main元素都要始终匹配body>main:只匹配类型{}。然而,在编写CSS时,我本能地指定类似body>main{}的内容将main{}始终在没有任何其他选择器的情况下执行作业,或者是否也应选择其父项或其他属性? &根据 这个问题是关于级联的,当然,如果您必须只有一个main元素,

在HTML5中,
main
元素被定义为“文档或应用程序的
主体
的主要内容”,“作者不得在文档中包含多个
main
元素”,并且“作者不得将
元素作为
文章
旁白
页脚
页眉
导航
元素的后代包含在内。”

对我来说,这意味着所有
main
元素都要始终匹配
body>main:只匹配类型{}
。然而,在编写CSS时,我本能地指定类似
body>main{}
的内容将
main{}
始终在没有任何其他选择器的情况下执行作业,或者是否也应选择其父项或其他属性?

&根据


这个问题是关于级联的,当然,如果您必须只有一个
main
元素,那么就可以使用类似的样式来设置它:

main {
  background:red
}
因此,您不需要做更多的工作。但在某些情况下,可以应用其他值来获得更多MDN。例如,您希望特定页面具有另一种背景颜色,以便:

  • 将类名分配给
    main

    <main class="change">
    
    main.change {
      background:blue;
    }
    

在这两种情况下,您获得的相关性都比设置
main

更大。我认为您根本不应该选择像main这样的元素。我建议在它上面使用一个类并选择这个。您还需要什么?除此之外,这个问题是基于观点的。我打算在正文的主要内容中添加填充,但不包括它的页眉、页脚等。您不需要这样做吗他的方法似乎是最具语义的方法。为什么不使用
.site content{padding:20px;}
?如果不想使用类,选择
main
就可以了,因为应该只有一种方法。除了
main{}之外,这里没有“语义”方法可以做到这一点
没有语义JU特殊性检查我的answer@kleinfreund有几个原因。一个原因是我不想通过更改应用于许多元素的某个类而意外地影响主元素。另一个原因是我希望为所有主元素提供一些填充,以使文本和其他视觉元素远离视图的边缘另外,由于我不是唯一一个使用CSS的人,我不希望有人将
.site content
应用到他们认为需要额外填充的每个元素。
body.change  main {
  background:blue;
}