《HTML 5与CSS 3 权威指南(第4版·下册)》 —16.3.2 选择器root、not、empty和target

举报
华章计算机 发表于 2019/11/21 12:42:43 2019/11/21
【摘要】 本节书摘来自华章计算机《HTML 5与CSS 3 权威指南(第4版·下册)》一书中第16章,第16.3.2节,作者是陆凌牛。

16.3.2 选择器root、not、empty和target

在介绍完了CSS中的伪类选择器与伪元素选择器之后,让我们来看一下CSS 3中的结构性伪类选择器。结构性伪类选择器的共同特征是允许开发者根据文档树中的结构来指定元素的样式。

首先,我们来看4个最基本的结构性伪类选择器—root选择器、not选择器、empty选择器与target选择器。

1. root选择器

root选择器将样式绑定到页面的根元素中。根元素是指位于文档树中最顶层结构的元素,在HTML页面中就是指包含着整个页面的“<html>”部分。

代码清单16-8为一个HTML页面,在该页面中,有一段文章,并且有一个文章的标题。

代码清单16-8 root选择器示例的HTML界面

image.png


针对这个网页,使用如下所示的root选择器来指定整个网页的背景色为黄色,将网页中body元素的背景色设为绿色。

<style type="text/css">

:root{

    background-color: yellow;

}

body{

    background-color: limegreen;

}

</style>

使用了root选择器后的运行结果如图16-10所示。

 image.png

图16-10 root选择器使用示例

另外,在使用样式指定root元素与body元素的背景时,根据不同的指定条件背景色的显示范围会有所变化,这一点请注意。如同样是上面这个示例,如果采取如下所示的样式,不使用root选择器来指定root元素的背景色,只指定body元素的背景色,则整个页面就全部变成绿色的了。

<style type="text/css">

body{

    background-color: limegreen;

}

</style>

删除root选择器后的页面如图16-11所示。

 image.png

图16-11 删除root选择器后的显示效果

2.not选择器

如果想对某个结构元素使用样式,但是想排除这个结构元素下面的子结构元素,让它不使用这个样式时,可以使用not选择器。

譬如针对代码清单16-8所示的HTML页面,我们可以使用“body *”语句来指定body元素的背景色为黄色,但是使用“:not(h1)”语句中使用的not选择器排除h1元素,代码如下所示。

<style type="text/css">

body *:not(h1){

    background-color: yellow;

}

</style>

使用not选择器后的运行结果如图16-12所示。

3. empty选择器

使用empty选择器来指定当元素中内容为空白时使用的样式。例如,在代码清单16-9所示的HTML页面中,有一个表格。可以使用empty选择器来指定当表格中某个单元格内容为空白时,该单元格背景为黄色。

代码清单16-9 empty选择器使用示例

image.png

使用empty选择器后的运行结果如图16-13所示。

            image.png

      图16-12 使用not选择器示例 图16-13 使用empty选择器示例

4.target选择器

使用target选择器来对页面中某个target元素(该元素的id被当作页面中的超链接来使用)指定样式,该样式只在用户点击了页面中的超链接,并且跳转到target元素后起作用。

接下来我们来看一个target选择器的使用示例。页面中包含几个div元素,每个div元素都存在一个书签,当用户点击了页面中的超链接跳转到该div元素时,该div元素使用target选择器中指定的样式,在target选择器中,指定该div元素的背景色变为黄色。其中指定target选择器时的代码如下所示。

target{

    background-color: yellow;

}

该示例的详细代码如代码清单16-10所示。

代码清单16-10 target选择器使用示例

image.png

image.png

使用target选择器后的运行结果如图16-14所示。

 image.png

图16-14 使用target选择器示例


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。