深入浅析CSS 选择器分组
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
选择器分组
假设希望 h2 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:
h2, p {color:gray;}
将 h2 和 p 选择器放在规则左边,然后用逗号分隔,就定义了一个规则。其右边的样式(color:gray;)将应用到这两个选择器所引用的元素。逗号告诉浏览器,规则中包含两个不同的选择器。如果没有这个逗号,那么规则的含义将完全不同。参见后代选择器。
可以将任意多个选择器分组在一起,对此没有任何限制。
例如,如果您想把很多元素显示为灰色,可以使用类似如下的规则:
body, h2, p, table, th, td, pre, strong, em {color:gray;}
提示:通过分组,创作者可以将某些类型的样式“压缩”在一起,这样就可以得到更简洁的样式表。
以下的两组规则能得到同样的结果,不过可以很清楚地看出哪一个写起来更容易:
1 2 3 4 5 6 7 8 9 | /* no grouping */ h 1 { color : blue ;} h 2 { color : blue ;} h 3 { color : blue ;} h 4 { color : blue ;} h 5 { color : blue ;} h 6 { color : blue ;} /* grouping */ h 1 , h 2 , h 3 , h 4 , h 5 , h 6 { color : blue ;} |
分组提供了一些有意思的选择。例如,下例中的所有规则分组都是等价的,每个组只是展示了对选择器和声明分组的不同方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* group 1 */ h 1 { color : silver ; background : white ;} h 2 { color : silver ; background : gray ;} h 3 { color : white ; background : gray ;} h 4 { color : silver ; background : white ;} b { color : gray ; background : white ;} /* group 2 */ h 1 , h 2 , h 4 { color : silver ;} h 2 , h 3 { background : gray ;} h 1 , h 4 , b { background : white ;} h 3 { color : white ;} b { color : gray ;} /* group 3 */ h 1 , h 4 { color : silver ; background : white ;} h 2 { color : silver ;} h 3 { color : white ;} h 2 , h 3 { background : gray ;} b { color : gray ; background : white ;} |
通配符选择器
CSS2 引入了一种新的简单选择器 - 通配选择器(universal selector),显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。
例如,下面的规则可以使文档中的每个元素都为红色:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | * { color : red ;} <html> <head> <style type= "text/css" > * { color : red ;} </style> </head> <body> <h 1 >这是 heading 1 </h 1 > <h 2 >这是 heading 2 </h 2 > <h 3 >这是 heading 3 </h 3 > <h 4 >这是 heading 4 </h 4 > <p>这是一段<b>普通</b>的段落文本。</p> </body> </html> |
这个声明等价于列出了文档中所有元素的一个分组选择器。利用通配选择器,只需敲一次键(仅一个星号)就能使文档中所有元素的 color 属性值指定为 red。
声明分组
我们既可以对选择器进行分组,也可以对声明分组。
假设您希望所有 h1 元素都有红色背景,并使用 28 像素高的 Verdana 字体显示为蓝色文本,可以写以下样式:
但是上面这种做法的效率并不高。尤其是当我们为一个有多个样式的元素创建这样一个列表时会很麻烦。相反,我们可以将声明分组在一起:
h1 {font: 28px Verdana; color: white; background: black;}
这与前面的 3 行样式表的效果完全相同。
注意,对声明分组,一定要在各个声明的最后使用分号,这很重要。浏览器会忽略样式表中的空白符。只要加了分号,就可以毫无顾忌地采用以下格式建立样式:
怎么样,上面这种写法的可读性是不是更强。
不过,如果忽略了第二个分号,用户代理就会把这个样式表解释如下:
因为 background 对 color 来说不是一个合法值,而且由于只能为 color 指定一个关键字,所以用户代理会完全忽略这个 color 声明(包括 background: black 部分)。这样 h1 标题只会显示为蓝色,而没有红色背景,不过更有可能根本得不到蓝色的 h1。相反,这些标题只会显示为默认颜色(通常是黑色),而且根本没有背景色。font: 28px Verdana 声明仍能正常发挥作用,因为它确实正确地以一个分号结尾。
与选择器分组一样,声明分组也是一种便利的方法,可以缩短样式表,使之更清晰,也更易维护。
提示:在规则的最后一个声明后也加上分号是一个好习惯。在向规则增加另一个声明时,就不必担心忘记再插入一个分号。
结合选择器和声明的分组
我们可以在一个规则中结合选择器分组和声明分组,就可以使用很少的语句定义相对复杂的样式。
下面的规则为所有标题指定了一种复杂的样式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | h 1 , h 2 , h 3 , h 4 , h 5 , h 6 { color : gray ; background : white ; padding : 10px ; border : 1px solid black ; font-family : Verdana ; } <html> <head> <style type= "text/css" > h 1 , h 2 , h 3 , h 4 , h 5 , h 6 { color : gray ; background : white ; padding : 10px ; border : 1px solid black ; font-family : Verdana ; } </style> </head> <body> <h 1 >This is heading 1 </h 1 > <h 2 >This is heading 2 </h 2 > <h 3 >This is heading 3 </h 3 > <h 4 >This is heading 4 </h 4 > <h 5 >This is heading 5 </h 5 > <h 6 >This is heading 6 </h 6 > </body> </html> |
结合选择器和声明的分组
我们可以在一个规则中结合选择器分组和声明分组,就可以使用很少的语句定义相对复杂的样式。
下面的规则为所有标题指定了一种复杂的样式:
1 2 3 4 5 6 7 | h 1 , h 2 , h 3 , h 4 , h 5 , h 6 { color : gray ; background : white ; padding : 10px ; border : 1px solid black ; font-family : Verdana ; } |
上面这条规则将所有标题的样式定义为带有白色背景的灰色文本,其内边距是 10 像素,并带有 1 像素的实心边框,文本字体是 Verdana。
结合选择器和声明的分组
我们可以在一个规则中结合选择器分组和声明分组,就可以使用很少的语句定义相对复杂的样式。
下面的规则为所有标题指定了一种复杂的样式:
1 2 3 4 5 6 7 | h 1 , h 2 , h 3 , h 4 , h 5 , h 6 { color : gray ; background : white ; padding : 10px ; border : 1px solid black ; font-family : Verdana ; } |
总结
以上所述是小编给大家介绍的CSS 选择器分组,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
- 这篇文章主要介绍了css选择器中有小数点的标签获取方法,需要的朋友可以参考下2018-03-26
- CSS3 :default 伪类选择器只能作用在表单元素上,表示默认状态的表单元素。接下来通过本文给大家介绍CSS3 :default伪类选择器使用简介,感兴趣的朋友跟随脚本之家小编一起2018-03-15
- 本文将详细介绍CSS选择器的新用法,感兴趣的朋友一起学习吧2018-02-02
- 这篇文章主要介绍了CSS选择器实现字段解析的相关资料,需要的朋友可以参考下2018-01-31
- 这篇文章主要介绍了CSS中选择器的权重值的计算的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-23
详解CSS3选择器:nth-child和:nth-of-type之间的差异
本篇文章主要介绍了CSS3选择器:nth-child和:nth-of-type之间的差异,非常具有实用价值,需要的朋友可以参考下2017-09-18- 这篇文章主要介绍了css3之UI元素状态伪类选择器 ,其中包括hover、active和focus,enabled,disabledread-only与read-write 等等,需要的朋友可以参考下2017-08-11
- 对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。下文给大家介绍了css属性选择器的相关知识,感兴趣的朋友一2017-06-22
- 这篇文章主要介绍了css3类选择器之结合元素选择器和多类选择器用法,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-03-09
- 本文主要对CSS选择器进行详细介绍,对初学CSS样式的朋友具有很好的参考价值。下面跟着小编一起来看下吧2016-12-23
最新评论