我今天看了一个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;
}
Run Code Online (Sandbox Code Playgroud)
星星在*padding和*line-height中意味着什么?
谢谢.
ope*_*llo 97
这是与"下划线黑客"相同的"明星财产黑客".它包括IE忽略的属性之前的垃圾(*适用于IE 7,_适用于IE 6).
Que*_*tin 32
在CSS?没有; 这是一个错误.
由于某些版本的Internet Explorer存在错误,它们无法正确忽略无效的属性名称,因此这是提供特定于这些浏览器的CSS的一种方法.
使用条件注释更清晰,更安全.
小智 7
asteriks字符是CSS中的有效通配符.单独使用它意味着将对DOM中的所有元素节点使用以下CSS属性.例:
*{color:#000;}
Run Code Online (Sandbox Code Playgroud)
上面的属性将应用于所有DOM元素,从而破坏了CSS中的自然级联.它只能通过特定的tageting DOM元素来覆盖,其中该目标开始一个唯一的标识符引用.例:
#uniqueValue div strong{color:#f00;}
Run Code Online (Sandbox Code Playgroud)
上面的属性将覆盖通配符,并使具有id属性值为"uniqueValue"的元素内的div中出现的所有强元素的文本.
使用通用应用的通配符(例如第一个示例)可以是用于编写重置样式表的快速而脏的方法.它很快且很脏,因为通配符后的表示的精细定义可能会创建一个非常臃肿的样式表.如果您打算使用通配符,我建议更具体地使用它,例如:
* strong{color:#f00;}
Run Code Online (Sandbox Code Playgroud)
上面的示例将使所有强元素的文本显示为红色,而不管未使用唯一标识符指定的其他CSS属性.这被认为比使用"!important"声明更安全,因为已知该声明会干扰预期行为的自然功能,并且是维护的噩梦.
您的示例中的asteriks位于错误的位置,因为它们似乎发生在属性声明中,代码位于花括号内,这可能会导致错误.