【问题标题】:CSS or selectorCSS 或选择器
【发布时间】:2014-09-28 18:28:15
【问题描述】:

我正在使用 CSS,我有这样的东西:

#id1 #id2 .class1 #id3, #id1 #id2 .class2 #id3

我只是想知道是否有办法做这样的事情:

#id1 #id2 .[class1 OR class2] #id3

我没有找到办法做到这一点,但也许我没有正确检查谷歌或其他什么。这可能吗,还是我需要使用我的 LONNNNG 语法?

谢谢!

【问题讨论】:

  • 一个页面每个id只能有一个,所以从技术上讲,你可以选择 - #id3...
  • 因为 id 应该是唯一的,所以只要 #id3 就足够了 :)
  • 是的,在这种情况下确实如此!我的问题主要是关于是否有 OR 选择器。你可以假设根本没有#id3! (但在我的情况下,我的某些页面具有类似的结构。例如,许多页面中会有一个#id3(但当时只有一个),而#id1 将是页面类型)。但问题实际上是关于 OR 选择器:)
  • @user3017110:您是否专门为 class1 或 class3 应用属性(或)寻找模式(如 class*、*class)?如果是纯or,我认为没有办法。如果是模式,那么您在答案中给出了一些可能的选项:)
  • @Harry:我需要一个纯粹的,或者因为我没有这些课程的模式!但是我可以接受“没有办法完全按照我的意愿做”或“的答案!我只是在检查是否有办法减少我的语法,但我会保留我现在所拥有的! :)

标签: css css-selectors


【解决方案1】:

如果你的类以相同的字符串开头,你可以编写如下规则:

#id2 [class^="class"] {}

这将查找#id2 中以class 开头的所有内容。

不过,你似乎想要这样的东西:

#id1 #id2 [class^="class"] #id3

但正如已经指出的那样,您应该只使用#id3 就可以了,因为每页只允许一个 ID。当然,除非您只想在其祖先之一具有特定类时应用样式。

有关更多文档,请参阅spec

【讨论】:

  • 这可能是最接近的。但需要注意的是,这将选择所有类似于 class* 的类(不完全是 1 或 3 类型)。这与 #id3 选择器不同。
  • 谢谢!就我而言,类名的开头或结尾是不一样的(它们是独立的词)。但我想答案是没有“或”选择器可以完全按照我的意愿去做:)
  • @user3017110 恐怕不行!但这很容易,不是吗。 (如果对您有帮助,请不要忘记标记此答案。)
【解决方案2】:

这没有任何意义。你一共要选什么?

你的第一个方法很好,就去做吧。

或者提供一个通用类并使用它。

#id1 #id2 .common #id3{}

或者如果你有类似的类名,你可以使用属性选择器;

#id1 #id2 [class^="class"] #id3{} /* ^ denotes starting with */
#id1 #id2 [class*="class"] #id3{} /* * denotes anywhere  */

See more about attribute selector here

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 2015-07-19
    • 1970-01-01
    • 2011-11-22
    • 2015-10-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    相关资源
    最近更新 更多