等号前面的星号是什么意思(* =)?感叹号怎么样?

时间:2012-11-23 08:43:58

标签: css

我在css中找到了这些符号:

.nav li ul li a [class*="icol-"] { opacity: 0.5; filter: alpha(opacity=50); padding-top: 4px; }

.secNav .chzn-container { width: 100%!important; max-width: 100%; }

*之前=的含义是什么?使用!符号时是注释吗?

5 个答案:

答案 0 :(得分:10)

element[attribute*="includesthis"]

换句话说:

<a class="someclassicol-hello">Click me and win a free monkey</a>

匹配

a[class*="icol-"]

如果字符串出现在属性中的任何位置,则表示匹配。

还有^=表示开头,而$=表示结尾。 Read more on this here


!important强制规则相互覆盖,否则不会。

a { color: red !important }
a.blue { color: blue }

<a class="blue">I'm actually red, because the less specific rule is !important</a>

Read more on that here。特别是这一点:

  

何时应该使用!important

     

与任何技术一样,根据具体情况有利有弊。那么什么时候应该使用,如果有的话?以下是我对潜在有效用途的主观概述。

     

NEVER

     除非在所有其他途径都已用尽之后绝对必要,否则不应使用

!important声明。如果你因懒惰而使用!important,避免正确的调试,或者急于完成项目,那么你就是在滥用它,而你(或那些继承你项目的人)将会受到影响。

答案 1 :(得分:8)

!!important的一部分;它是评论。 !important强制始终应用规则。它通常用于覆盖或防止您的样式被覆盖。

*=表示“包含”。因此,在示例中,第一行是查找.nav li ul li a元素的所有子元素,其类名包含“icol - ”。

答案 2 :(得分:2)

来自W3 recommendation

  

<强> [att*=val]

     

表示具有att属性的元素,该属性的值至少包含子字符串“val”的一个实例。如果“val”是空字符串,则选择器不代表任何内容。

因此,在您的情况下,它会匹配其类属性中icol-的任何元素(.nav li ul li a的子项)。

答案 3 :(得分:2)

*=是一个属性选择器,请参阅CSS3 specification

!important表示该规则被样式的作者认为是重要的,不应该被覆盖,例如, CSS2进行深入解释。

答案 4 :(得分:2)

不要与只与空格相匹配的~混淆。

[class*="foo"] /* 'fooA bar' */

将匹配包含foo的类(包含或不包含空格

[class~="foo"] /* 'foo bar' */

将仅包含foo 的类与的空间

匹配

还有:

[class^="foo"] // begins with foo ('fooABC')
[class$="foo"] // ends with foo ('ABCfoo')
[class|="foo"] // begins with foo and is separated by a dash ('foo-bar')

此处有更多详情:Complex Selectors