明星先前属性在CSS中意味着什么?

Maj*_*our 84 css

我今天看了一个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).

  • 谢谢!我抬头看了"明星房产黑客",发现Ed Eliot发布的这篇清晰而全面的帖子:"CSS提示:分别针对IE 5.x,6和7"http://www.ejeliot.com/blog/63 (7认同)

Que*_*tin 32

在CSS?没有; 这是一个错误.

由于某些版本的Internet Explorer存在错误,它们无法正确忽略无效的属性名称,因此这是提供特定于这些浏览器的CSS的一种方法.

使用条件注释更清晰,更安全.

  • 确实.应避免使用CSS无效的CSS; 你永远不知道未来的浏览器会对他们做些什么. (2认同)

小智 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位于错误的位置,因为它们似乎发生在属性声明中,代码位于花括号内,这可能会导致错误.

  • 信息,是的,但与这个问题无关. (32认同)
  • 回答我用Google搜索的内容,即使它不是正确的答案 (3认同)
  • 提供最具信息性,无黑客的答案 (2认同)