【发布时间】:2013-11-20 15:04:48
【问题描述】:
有什么区别
body{
background: #4b4b4b;
}
和
*{
background: #4b4b4b;
}
哪个优先级更高?
【问题讨论】:
-
我也觉得使用 * 是邪恶的。即使它正确地完成了它的工作。 :(
标签: css
有什么区别
body{
background: #4b4b4b;
}
和
*{
background: #4b4b4b;
}
哪个优先级更高?
【问题讨论】:
标签: css
body 选择器具有更高的优先级,但* 选择器适用范围更广,因此在<body>foo<p>bar</p></body> 中,body 选择器将确定文本foo 的背景,但* 选择器将确定<p> 元素的背景。
请注意,许多浏览器还会在 <body> 周围创建一个元素,包括其边距和滚动条,因此 * 选择器也可能决定该区域的颜色。
【讨论】:
body 比* 更可取。当样式属性像<style>*{font-size: 150%}</style><body><div>a<div>b<div>c<div>d<div>e 那样成倍增加时,这很重要。还要注意:root,它是body 的一个很好的替代品。
body 选择正文元素,* 选择所有元素。
在这两个中,body 具有更高的优先级。
【讨论】:
有什么区别?
body 是一个元素选择器(选择一个元素body),而* 是一个通用选择器(选择所有元素)。
哪个具有更高的特异性(优先级的正确术语)?
在计算选择器的特异性时(将其视为二进制数):
1000。0100。0010
0001。 0000。因此body 的特异性是0001,* 的特异性是0000。 body 获胜。
【讨论】:
某些 HTML 元素具有默认背景颜色,例如 <input>、<select> 等。使用 * 也会影响它们,而不仅仅是 <body> 和所有具有透明背景的子元素。
【讨论】:
*{ background: #4b4b4b; } 不仅会影响具有默认背景的元素,它还会影响所有可以具有背景颜色的元素
【讨论】:
body.