2013-11-22 47 views
2

这个CSS选择器应该指向什么?据我所知:酒吧伪类不存在...如何处理CSS选择器中的未知/无效伪类?

.Today_s_foo:bar 
{ 
font-size: 21px; 
font-family: "Ubuntu"; 
} 
+1

为什么它会做任何事情,如果它无效?你正在使用一些CSS预处理器(SASS,LESS等)吗? – biziclop

+2

@ user2864740:如果浏览器中没有执行某些操作,则不会应用任何操作。这与将样式应用于不存在的元素一样好。 –

+0

我刚刚得到一个必须在HTML上转换的PSD,我导出了要由每个元素应用的CSS。 CSS必须是正确的(或者至少有一定意义),因为它来自我必须做的一种考试... – user1249791

回答

2

通常应该无效整个规则,在一个规则中使用多个选择时可能很重要,看简单的例子:http://jsfiddle.net/S56xM/

HTML:

<div>Hello!</div> 

CSS:

div, div:foobaresque { font-size: 100px; } 

您将会看到div { font-size: 100px; }“子规则”不适用,即使我们的头脑告诉我们它会被应用。

1

应用校正

.Today_s_foo的规则将不会在任何工作浏览器进行设置。

我认为这是IE

.Today_s_foo:IE6 /* IE6 hack */ 

,但它不存在列为不推荐的黑客对http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

+0

我无法真正找到链接页面上的这种特定黑客攻击,只有'body:empty','a:link:visited,a:visited:link',但它们不同。 – biziclop

+0

所以你的意思是他们就像试图给我带来某种错误?我认为我不应该从原始CSS中删除:foo,但如果我不删除它,该规则将不适用(当然,只适用于 user1249791

+0

@biziclop我的错误,我认为它已列出。 user1249791我不确定此刻哪个浏览器会呈现该代码。他们是更好的方式发送CSS到只有一个浏览器,不会在CSS中创建无效的“错误”。 – Wayne

3

根据current specification解析选择器中的错误:“使用选择器的整个规则被丢弃”。有关后果的示例,另请参阅this part of the spec

“规则”表示如果选择器的任何部分被解析为无效,则{brackets}中的每个属性设置都将被忽略。