2012-05-03 51 views
0

这是*选择器的合法用法,如果有,是否提及了浏览器如何支持此选项?它似乎工作在我的测试中所有的浏览器,但我没有用旧的或IEcss星号选择器支持

body * { 
    float: left; 
} 

回答

1

是的!星号是通配符,它​​会选择您设置的DOM元素中的所有元素。

例如,如果我想要一个属性适用于您的整个网站:

* { 
    attribute: value; 
} 

或者你用一种特殊的DOM元素做到了!

element * { 
    attribute: value; 
    } 

您也可以使用类似:

* { 
    attribute: value; 
    } 

* * { ... } 

* * * { ... } 

* div * { ... } 

这是一个有点困难......像一个递归。

+0

但请注意'* *'不会比'*'提供任何好处,因为后者已经选择了所有dom元素,而不仅仅是顶级。 –

+0

取决于如何风格! * {border:1px solid red}所有顶级元素 * * {border:2px点缀绿色}用于每个顶级元素的所有子元素......所以它可能会很有用! ;) – creativeby

+0

除了'* *'还选择顶级元素。 http://jsfiddle.net/9mUKV/1/ –

1

是的,你的例子是合法的,如果没有严厉的使用*选择的。这将导致body元素的每个子元素都被左移。

+0

试图清理我的CSS,这就是为什么我使用它。也许这是错误的方式去呢?我的所有页脚元素都留有浮动元素,所以每个元素都有它的冗余。 – Lukasz

+0

然后,您可以尝试类似'#footer * {...}' - (将#footer更改为相应的选择器),以便仅针对页脚内的这些元素。这将会/可能是* *选择器的优秀使用。 'body *'通常会保留用于css重置(http://www.cssreset.com/)等 - 但实际上,它们通常仅在'*'级应用,没有'body'选择器。 –

2

是的,但你应该避免使用它。你可以更清楚地说明。但是如果你真的想让所有的元素都浮动,这是一个很好的方法。但为什么你想要这个?

所有浏览器都支持这一点,来源:http://www.quirksmode.org/css/contents.html#t10

+0

*:焦点 { 提纲:无; }只是它的一个用法。我讨厌铬概述事情,所以我将这添加到我的重置CSS样式。 – Lukasz