关于CSS 星号的含义和用法

35 views
Skip to first unread message

Pittzh

unread,
Aug 19, 2008, 5:01:29 AM8/19/08
to 南瓜社区
经典论坛的一篇帖子:CSS里面的这个(有星号的)代码是做什么用的
相关内容有一定的参考价值。
内容如下:
---------------------------------------zyfpb--------------------------
我知道CSS里一般的星号就是代表通配符的意思,比如*{font-size:12px},就是设定各个元素区块内的字体都为12像素,但是这个代码我
却看不懂,请知道的朋友帮忙说下
/*\*/ * html .content, * html .contentL, * html .contentR { height:
1%; } /**/ *>.content, *>.contentL, *>.contentR { overflow: hidden; }

各个*号是代码什么意思,有的*号用了注释符号,而有的*号后面还跟一个html代码或 > 符号?
-------------------------------------------------------------------
你可以去查查 hack
这些都是用来做各个浏览器兼容的
----------------------------------
loveface---------------------------------
*号就是说是指定为IE6和更低版本来使用。非IE的浏览器就不认得。

原理是:HTML元素被认为是网页上的第一个元素,即根元素,但是IE7以下的所有版本有一个匿名的根元素,它包围着HTML元素,可以使用通用选择器
指定包围在另一个元素中的HTML元素。因为这种情况只在IE6和更低版本中出现,所以可以将特定的规则应用于这些浏览器。比方说
* html{font-size:small;}

例子:IE6以下将1象素的点划线错误的显示成虚线,为了避免这个虚线,可以将链接上的鼠标停留边框样式设置成点线,但在IE中复盖这个规则,让它们显
示成实线。可以写成:

a:hover{
border:1px dotted black;
}

* html a:hover{
border-style:solid;
}

结论:在任何常规的CSS规则开头添加一个通用选择器和一个HTML类型选择器。这样就会对除IE之外的所有浏览器隐藏这个规则。
---------------------------------------zyfpb--------------------------
非常感谢loveface详细的讲解
再补充问两个问题
1、CSS规则中还有一个大于符号">" 代表什么意思?
2、* html{font-size:small;} 和 *{font-size:small;}的功能是不是完全一样的?
----------------------------------
loveface---------------------------------
1. >是子选择符,用于匹配直接后辈,孙辈就不匹配了。IE6 不支持,兴例:
li:hover>a 子对象选择符,只对儿子起作用,对孙子不起作用。
li:hover a 后代选择符,对儿子,对孙子,对后代都起作用。

2.*html{font-size:small;}, IE以外的浏览器不认得。
*{font-size:small;} 是指*是通用符,把所有字体都默认置小。
---------------------------------------zyfpb--------------------------
我想问的几个问题完全明白了,
loveface,你太强了,非常感谢!!!


这个ID为loveface的网友,CSS绝对很强。搜索了一下他的帖子,果然有不少有见地的文章。对此用法我还是比较迷茫,应该加以探索。
Reply all
Reply to author
Forward
0 new messages