何时使用CSS类,何时不使用?

Luc*_*uke 1 html css

什么时候应该向元素添加类并使用类选择器对它们进行样式化,何时应该在父类上添加类/ id并按原样使用元素?

例:

<div class="warning-dialog">
    <h3>This is the title</h3>
    <p>This is the message</p>
</div>

.warning-dialog {}
.warning-dialog h3 {}
.warning-dialog p {}
Run Code Online (Sandbox Code Playgroud)

<div class="warning-dialog">
    <h3 class="warning-title">This is the title</h3>
    <p class="warning-message">This is the message</p>
</div>

.warning-dialog {}
.warning-title {}
.warning-message {}
Run Code Online (Sandbox Code Playgroud)

或者你应该这样做

.warning-dialog .warning-dialog {}
.warning-dialog .warning-title {}
.warning-dialog .warning-message {}
Run Code Online (Sandbox Code Playgroud)

Mad*_*iha 7

问自己这个简单的问题:

<x>这个共同祖先下的所有元素是否意味着相同的东西?

如果答案是肯定的,那么你就不需要这些元素的类名.以您的代码为例,以下内容就足够了:

<div class="warning-dialog">
    <h3>This is the title</h3>
    <p>This is the message</p>
</div>
Run Code Online (Sandbox Code Playgroud)

因为在a之内.warning-dialog,所有h3元素(1)和所有p元素(1)都意味着相同,对话框的标题和内容!这意味着,您不需要在其上具有任何特定的类名,并且可以通过.warning-dialog h3或轻松访问它们.warning-dialog p.

但是,如果上述问题的答案是"否",那就完全不同了:

<div>Warning</div>
<div>Info</div>
<div>Error</div>
Run Code Online (Sandbox Code Playgroud)

你不能(轻松地)用CSS指定每个div,它们并不都意味着相同的东西,所以你需要使用类名来使它更好!

<div class="warning-dialog">Warning</div>
<div class="info-dialog">Info</div>
<div class="error-dialog">Error</div>
Run Code Online (Sandbox Code Playgroud)

  • 为什么?如果你添加一个'p`元素,你需要问自己AGAIN,所有`<p>`元素在`.warning-dialog`中的含义是相同的,如果答案为"是",那么你很清楚,如果没有,添加一个类名! (3认同)