选择器的分组你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开。在下面的例子中,我们对所有的标题元素进行了分组。所有的标题元素都是绿色的。 h1,h2,h3,h4,h5,h6 {
) V) K$ j; w4 ~0 p7 f- ?' P( D color: green;) z4 k8 S5 d7 ~1 n" J8 `
}
继承及其问题根据 CSS,子元素从父元素继承属性。但是它并不总是按此方式工作。看看下面这条规则: body {
' p" [, q- X: ^9 I1 w8 m) K: z1 e font-family: Verdana, sans-serif;
1 w$ \4 W- F0 S- i0 A8 j }根据上面这条规则,站点的 body 元素将使用 Verdana 字体(假如访问者的系统中存在该字体的话)。 通过 CSS 继承,子元素将继承最高级元素(在本例中是 body)所拥有的属性(这些子元素诸如 p, td, ul, ol, ul, li, dl, dt,和 dd)。不需要另外的规则,所有 body 的子元素都应该显示 Verdana 字体,子元素的子元素也一样。并且在大部分的现代浏览器中,也确实是这样的。 但是在那个浏览器大战的血腥年代里,这种情况就未必会发生,那时候对标准的支持并不是企业的优先选择。比方说,Netscape 4 就不支持继承,它不仅忽略继承,而且也忽略应用于 body 元素的规则。IE/Windows 直到 IE6 还存在相关的问题,在表格内的字体样式会被忽略。我们又该如何是好呢? 友善地对待Netscape 4幸运地是,你可以通过使用我们称为 "Be Kind to Netscape 4" 的冗余法则来处理旧式浏览器无法理解继承的问题。 body {) K' D% i: B6 y6 N9 @; g' N( d
font-family: Verdana, sans-serif;
) U4 x, a1 M' W( s3 L V+ `% h2 A }
0 K9 J0 T, S3 ^% l, t- Z# J5 j
7 v5 X' T; q+ L- Wp, td, ul, ol, li, dl, dt, dd {" j) k3 G: [) O9 E: C) B
font-family: Verdana, sans-serif;- Z5 v: L, `8 }% d4 P* @
}4.0 浏览器无法理解继承,不过他们可以理解组选择器。这么做虽然会浪费一些用户的带宽,但是如果需要对 Netscape 4 用户进行支持,就不得不这么做。 继承是一个诅咒吗?如果你不希望 "Verdana, sans-serif" 字体被所有的子元素继承,又该怎么做呢?比方说,你希望段落的字体是 Times。没问题。创建一个针对 p 的特殊规则,这样它就会摆脱父元素的规则: body {
; E6 D; P, e# G font-family: Verdana, sans-serif;
3 j+ m( n2 [) X3 B/ x( e }4 m( v; y2 j+ ]9 ^0 i7 u
8 e9 o* l# p3 X0 u& z) ~. Htd, ul, ol, ul, li, dl, dt, dd {# k3 c4 a5 O4 J
font-family: Verdana, sans-serif;) f( `- b9 p% y s2 p8 L# {% d* y
}
! [+ o! M0 t1 q2 g" f
`+ [1 s# m+ C! ]3 W2 G1 ^ Rp {
! }/ O" n, B0 \' |$ i0 B n# i4 l font-family: Times, "Times New Roman", serif;, g0 ]. \" t6 {; d/ h$ T, z
} |
|