在 h1 中找到的每个 em 元素上放一个 class 属性
导读:h1 中找到的每个 em 元素上放一个 class 属性,但是显然,后代选择器的效率更高。 语法解释 在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。每个空格...
h1 中找到的每个 em 元素上放一个 class 属性,但是显然,后代选择器的效率更高。
语法解释
在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。每个空格结合符可以解释为"... 在 ... 找到"、"... 作为 ... 的一部分"、"... 作为 ... 的后代",但是要求必须从右向左读选择器。
因此,h1 em 选择器可以解释为 "作为 h1 元素后代的任何 em 元素"。如果要从左向右读选择器,可以换成以下说法:"包含 em 的所有 h1 会把以下样式应用到该 em"。
具体应用
后代选择器的功能极其强大。有了它,可以使 HTML 中不可能实现的任务成为可能。
假设有一个文档,其中有一个边栏,还有一个主区。边栏的背景为蓝色,主区的背景为白色,这两个区都包含链接列表。不能把所有链接都设置为蓝色,因为这样一来边栏中的蓝色链接都无法看到。
解决方法是使用后代选择器。在这种情况下,可以为包含边栏的 div 指定值为 sidebar 的 class 属性,并把主区的 class 属性值设置为 maincontent。然后编写以下样式:
div.sidebar { background:blue; } div.maincontent { background:white; } div.sidebar a:link { color:white; } div.maincontent a:link { color:blue; }
有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
例如,如果写作 ul em,这个语法就会选择从 ul 元素继承的所有 em 元素,而不论 em 的嵌套层次多深。
因此,ul em 将会选择以下标记中的所有 em 元素:
- List item 1
- List item 1-1
- List item 1-2
- List item 1-3
- List item 1-3-1
- List item 1-3-2
- List item 1-3-3
- List item 1-4
- List item 2
- List item 3
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 在 h1 中找到的每个 em 元素上放一个 class 属性
本文地址: https://pptw.com/jishu/666200.html