我正在做一个教程,这将导致一个花哨的基于html5 / css3 / js的计算器。以前从未发生过的事情 - 我试图以不同的方式设置operator
元素的样式,因为它们可以很容易地与0-9之类的其他键区分开来。
我输入了我的CSS .keys .operator
并添加了不同的背景属性。但是,它没有用。
然后我试图更加具体,如.keys span.operator
。
这很有用。但是,它给我留下了问号。
我的问题:
为什么在这种情况下我需要如此具体,否则CSS不会吞下背景属性?
为什么我不能单独输入.operator
类?
我认为通过输入.keys .operator
,我会在类.operator
的任何元素中选择具有.keys
类的每个html元素。
这对我来说听起来合乎逻辑,但它没有用。
如果我愿意接受CSS强制给我的思路,那么理论上我需要更加精确并写div.keys span.operator
但是在教程中它不需要。
有人可以向我解释原因吗?
以下是我正在处理的代码:
答案 0 :(得分:2)
您正在使用更高的精度。 CSS选择器越“精确”,它就越优先于选择相同元素但精度较低的其他CSS。
你很可能在它下面有CSS覆盖你提供的CSS或CSS在CSS文件中某个地方更精确。
例如,span
的具体程度低于span.MyClass
,因此span.MyClass
优先于span
。任何具有!important
属性的样式都是自动赢取任何东西,但很少使用。
查看CSS文档或在浏览器中检查它,看看哪些类正在影响该元素。
答案 1 :(得分:0)
我刚看了一眼,如果我删除了span
前面的.operator
,那对我来说没问题。这可能是您的浏览器的问题。我正在使用Chrome Canary。以下是笔的链接:http://codepen.io/anon/pen/eGCfn