我今天查看了一个css文件,发现了以下规则集:
div.with-some-class {
display:block;
margin:0;
padding:2px 0 0 0;
*padding:1px 0 0 0;
font-size:11px;
font-weight:normal;
*line-height:13px;
color:#3D9AD0;
}
星号在*填充和*行高中是什么意思?
谢谢。
发布于 2009-11-03 22:13:53
这是与“下划线黑客”相同的"star property hack“。它在IE忽略的属性前包含垃圾(*适用于IE 7,_适用于IE 6)。
发布于 2009-11-03 22:12:22
在CSS中?什么都没有;这是一个错误。
由于Internet Explorer的某些版本中的错误,它们不会正确地忽略无效的属性名称,因此这是提供特定于这些浏览器的CSS的一种方式。
不过,使用条件注释更清晰、更安全。
发布于 2009-11-03 22:29:57
在CSS中,星号字符是有效的通配符。单独使用它意味着将对DOM中的所有元素节点使用以下CSS属性。示例:
*{color:#000;}
上述属性将应用于所有DOM元素,从而破坏了CSS中的自然级联。它只能通过专门标记DOM元素来覆盖,其中目标以唯一标识符引用开始。示例:
#uniqueValue div strong{color:#f00;}
上面的属性将覆盖通配符,并将出现在div中的所有强元素的文本放在一个id属性值为"uniqueValue“的元素中。
使用通用的通配符,比如第一个示例,可能是编写重置样式表的一种既快又脏的方法。它又快又脏,因为在通配符之后对表示进行细粒度的定义可能会创建一个极其臃肿的样式表。如果您要使用通配符,我建议您使用更具体的通配符,例如:
* strong{color:#f00;}
上面的示例将使所有强元素的文本显示为红色,而不考虑未使用唯一标识符指定的其他CSS属性。这被认为比使用"!important“声明要安全得多,因为众所周知,该声明会对预期行为的自然功能造成干扰,并且是维护的噩梦。
您的示例中的星号出现在错误的位置,因为它们似乎出现在属性声明中,即花括号内的代码中,这可能会导致错误。
https://stackoverflow.com/questions/1667531
复制相似问题