Javascript 选择具有相同父级的多个类

Javascript 选择具有相同父级的多个类,javascript,css,styles,stylesheet,rule,Javascript,Css,Styles,Stylesheet,Rule,假设我有以下几点: <div id="container"> <div id="content"> <span class="first"></span> <span class="second"></span> </div> </div> #container #content .first, #container #content .second

假设我有以下几点:

<div id="container">
    <div id="content">
        <span class="first"></span>
        <span class="second"></span>
    </div>
</div>
#container #content .first, #container #content .second { font-weight: bold; }
但是有没有办法缩短这个时间呢?例如:

#container #content .[first|second] { font-weight: bold; }
当然,在这个例子中,我没有保存太多的字符,但我有过一些实际的例子,在这些例子中,像这样缩短字符会有所帮助


那么,这样的事情可能吗?我四处搜索,什么也找不到,但我希望能有办法做到这一点?我想,一种极端的方法是使用JavaScript之类的东西。

首先,在CSS中,单独使用它是无法做到这一点的,但是有一些称为CSS预处理器的东西使这样的行为成为可能。使用像or这样的预处理器,您通常会按照

 #container #content{
  /* css specific for this element */
  .first,.second{
   /* css specific for elements with class first or second contained in #container #content
  }
 }

缺点是,每次在服务器端更改css时,都需要在客户端执行javascript或运行预处理器。这方面有几个自动化的工作流,但这是另一个问题。

首先,在CSS中,单独做这样的事情是没有办法的,但是有一些称为CSS预处理器的东西使这样的行为成为可能。使用像or这样的预处理器,您通常会按照

 #container #content{
  /* css specific for this element */
  .first,.second{
   /* css specific for elements with class first or second contained in #container #content
  }
 }

缺点是,每次在服务器端更改css时,都需要在客户端执行javascript或运行预处理器。这方面有几个自动化的工作流,但这是另一个问题。

首先,在CSS中,单独做这样的事情是没有办法的,但是有一些称为CSS预处理器的东西使这样的行为成为可能。使用像or这样的预处理器,您通常会按照

 #container #content{
  /* css specific for this element */
  .first,.second{
   /* css specific for elements with class first or second contained in #container #content
  }
 }

缺点是,每次在服务器端更改css时,都需要在客户端执行javascript或运行预处理器。这方面有几个自动化的工作流,但这是另一个问题。

首先,在CSS中,单独做这样的事情是没有办法的,但是有一些称为CSS预处理器的东西使这样的行为成为可能。使用像or这样的预处理器,您通常会按照

 #container #content{
  /* css specific for this element */
  .first,.second{
   /* css specific for elements with class first or second contained in #container #content
  }
 }

缺点是,每次在服务器端更改css时,都需要在客户端执行javascript或运行预处理器。有两个自动化的工作流用于此,但这是另一个问题。

由于ID必须是唯一的,因此无需使用
\container\content

您可以使用“直接子选择器”:


由于ID必须是唯一的,因此无需使用
#container#content

您可以使用“直接子选择器”:


由于ID必须是唯一的,因此无需使用
#container#content

您可以使用“直接子选择器”:


由于ID必须是唯一的,因此无需使用
#container#content

您可以使用“直接子选择器”:


由于ID必须是唯一的,您可以将其简化为:

#内容。第一,#内容。第二
CSS3提供<代码>:匹配<代码>:

#内容:匹配(.first、.second)

然而,正如你所看到的,它并不短!而且它还是新的,所以旧的浏览器不支持它。

由于ID必须是唯一的,您可以将其简化为:

#内容。第一,#内容。第二
CSS3提供<代码>:匹配<代码>:

#内容:匹配(.first、.second)

然而,正如你所看到的,它并不短!而且它还是新的,所以旧的浏览器不支持它。

由于ID必须是唯一的,您可以将其简化为:

#内容。第一,#内容。第二
CSS3提供<代码>:匹配<代码>:

#内容:匹配(.first、.second)

然而,正如你所看到的,它并不短!而且它还是新的,所以旧的浏览器不支持它。

由于ID必须是唯一的,您可以将其简化为:

#内容。第一,#内容。第二
CSS3提供<代码>:匹配<代码>:

#内容:匹配(.first、.second)

然而,正如你所看到的,它并不短!而且它还是新的,所以旧的浏览器不支持它。

为什么不添加另一个类呢

<div id="container">
    <div id="content">
        <span class="first important"></span>
        <span class="second important"></span>
    </div>
</div>

为什么不添加另一个类

<div id="container">
    <div id="content">
        <span class="first important"></span>
        <span class="second important"></span>
    </div>
</div>

为什么不添加另一个类

<div id="container">
    <div id="content">
        <span class="first important"></span>
        <span class="second important"></span>
    </div>
</div>

为什么不添加另一个类

<div id="container">
    <div id="content">
        <span class="first important"></span>
        <span class="second important"></span>
    </div>
</div>

只需使用
.first、.second
@brouxhaha,在这种情况下,您还可以匹配未包含在
#container#content
中的类
second
的实例,这是正确的,但如果它们在其他div中不同,我建议使用不同的类。我的情况是假设在我想要的div之外还有其他元素具有相同的类,并且我不能更改类名。否则,我肯定会重新安排一些类和ID名称,以使事情对我来说更简单。只需使用
。first、.second
@brouxhaha,在这种情况下,您还将匹配
\second
中未包含在
\container\content
中的类的实例,这是正确的,但如果它们在其他div中不同,我建议使用不同的类。我的情况是假设在我想要的div之外还有其他元素具有相同的类,并且我不能更改类名。否则,我肯定会重新安排一些类和ID名称,以使事情对我来说更简单。只需使用
。first、.second
@brouxhaha,在这种情况下,您还将匹配
\second
中未包含在
\container\content
中的类的实例,这是正确的,但如果它们在其他div中不同,我建议使用不同的类。我的情况是假设在我想要的div之外还有其他元素具有相同的类,并且我不能更改类名。否则,我肯定会重新安排一些类和ID名称,以使事情对我来说更简单。只需使用
.first、.second
@brouxhaha,在这种情况下,您还可以匹配类
second的实例<