Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CSS匹配规则参考

CSS匹配规则参考

作者头像
jack.yang
发布于 2025-04-05 07:28:33
发布于 2025-04-05 07:28:33
470
举报

11.2 CSS匹配规则参考

本节简单地介绍CSS Level 1和CSS Level 2匹配XML的规则。关于CSS的属性、属性取值等内容不在本书的讨论范围中,在万维网联合会的网站上,可以读到关于CSS的规范说明:http://www.w3.org/Style/CSS/。

注意:微软的Internet Explorer 6.0仅支持CSS Level 1,尚未实现CSS Level 2的匹配规则;Internet Explorer 7.0部分支持CSS Level 2。目前对CSS支持较好的浏览器是Opera 9和Mozilla FireFox 2。

11.2.1 选择子匹配元素

CSS匹配规则的格式如下:

ElementName {

    Property1: value1;

    Property2: value21 value22;

}

其各部分分述如下。

(1)代码中“{”和“}”花括号中间的内容表示一条CSS规则(rule)。

(2)花括号前的内容称为“选择子”(Selector),用于指定规则的作用范围。如上述代码的“ElementName”表示这条规则将用于匹配“ElementName”元素。

(3)在规则中,“Property1:”为样式属性(Property)名称,后面的“value1”表示样式属性的值。

(4)一条规则中可以包含多个属性,每个属性以分号“;”结束。规则中的最后一个属性可以省略其分号标记。

(5)某些CSS属性可包含多个值,每个值之间用空格分隔(如“value21 value22”)。

(6)属性的名称和值一般不区分大小写。

说明:由于XML是区分大小写的,所以CSS中的元素名也区分大小写。但CSS的属性和属性值不区分大小写。CSS属性中的URL文件路径则根据URL所指向的文件所在的操作系统而异。

如以下CSS代码表示匹配XML文档中所有“abbr”元素,其字体样式(font-style)属性为斜体(italic)。

abbr {

  font-style: italic;

}

以下CSS代码表示匹配XML文档中所有“book”元素,其边框(Border)属性包含3个值,分别指定边框的宽度、样式和颜色。

book {

  border: 3pt double black;

}

11.2.2 继承

先代元素被某个CSS规则匹配后,后代元素将继承(Inheritance)先代元素的某些呈现属性。对于以下XML文档片段:

<book>

  <chapter>Chapter1</chapter>

  <paragraph>Paragraph1</paragraph>

</book>

使用以下CSS代码匹配“book”元素:

book {

  text-decoration: underline;

}

“book”元素的下划线(underline)属性将被其后代元素“chapter”和“paragraph”继承,因此“chapter”元素和“paragraph”元素都以下划线文本的方式呈现。

说明:不同的CSS属性有不同的继承特性,请参阅CSS建议规范。

11.2.3 后代选择子匹配后代元素

在选择子中,可以同时书写多个元素,各元素之间以空格分开,表示按层次匹配后代元素。CSS样式将作用于该层次列表的最后一级元素,如以下的“ElementName3”元素(该元素为“ElementName2”的后代元素,而“ElementName2”元素又为“ElementName1”的后代元素)。

ElementName1 ElementName2 ElementName3 {

    Property1: value1;

    Property2: value21 value22;

}

注意:层次匹配具有比元素匹配更高的优先级。如在层次匹配和元素匹配中定义了冲突的规则属性,则以层次匹配中定义的优先。

如以下CSS代码中有两条规则,第1条规则匹配“title”元素,第2条规则匹配“chapter”元素的“title”后代元素。这样,“chapter”的“title”后代元素会同时被这两条规则匹配。在这两条规则中,都指定了“text-align”属性。由于“chapter title”比“title”更具体,具有更高的优先级,因此,“text-align”属性的实际取值为“chapter title”中的取值“left”,即所有“chapter”元素内的“title”元素都以左对齐方式显示。

title {

  text-align: center;  /* 居中显示文本 */

  font-size: 24pt;

  font-weight: bold;

  color: brown;

}

chapter title {

  font-size: 14pt;

  text-align: left;   /* 左对齐显示文本 */

}

层次匹配的元素列表中,后面的元素只要是前面元素的后代元素,即被规则匹配。如上述“chapter title”规则同时匹配下面XML代码的两个“title”元素。

<chapter>

   <title>Title1</title>

   <sub-chapter>

      <title>Title2</title>

   </sub-chapter>

</chapter>

11.2.4 使用组合同时匹配多个元素

如果将相同的规则应用于多个匹配条件,可以用逗号将各个匹配条件分开。其形式如下:

ConditionElement1,

ConditionElement21 ConditionElement22 {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码同时匹配“book”、“title”、“author”元素,以及“body”元素内的“paragraph”元素。

book, title, author, body paragraph {

  display: block;

}

11.2.5 通用选择子通配所有元素

通配符是CSS Level 2中的特性,匹配所有元素。形式如下:

* {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配“Element1”元素内的所有后代元素 */

Element1 * {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码匹配“body”元素下的所有后代元素。

body * {

  font-size: 14pt;

  text-align: left;

}

11.2.6 子代选择子匹配子元素

子元素匹配是CSS Level 2中的特性,格式是在父元素和子元素之间添加一个“>”号。形式如下:

ParentElement1 > ParentElement2 {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码匹配“chapter”元素的“title”子元素。

chapter > title {

  font-size: 14pt;

  text-align: left;

}

上述CSS代码匹配下面XML代码的第1个“title”元素。

<chapter>

   <title>Title1</title>

   <sub-chapter>

      <title>Title2</title>

   </sub-chapter>

</chapter>

11.2.7 兄弟选择子匹配兄弟元素

兄弟元素匹配是CSS Level 2中的特性,格式是在前导兄弟元素和后继兄弟元素之间添加一个“+”号。形式如下:

PrecedingElement1 + Element2 {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码匹配紧随“title”元素之后的“paragraph”子元素。

title + paragraph {

  font-size: 14pt;

}

上述CSS代码匹配下面XML代码中“title”元素后的第1个“paragraph”元素。

<body>

   <chapter>

      <title>Title2</title>

      <paragraph>Paragraph 1</paragraph>

      <paragraph>Paragraph 2</paragraph>

   </chapter>

</body>

11.2.8 第一子元素伪类匹配第一子元素

第一子元素匹配是CSS Level 2中的特性,格式是在子元素后添加“:first-child”伪类(Pseudo-class)。形式如下:

ChildElement:first-child {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码匹配位于第一子元素位置的“title”元素。

title:first-child {

  font-size: 24pt;

}

上述CSS代码匹配下面XML代码中“chapter”元素下的第1个“title”元素。

<body>

   <chapter>

      <title>Title 1</title>

      <paragraph>Paragraph 1</paragraph>

      <paragraph>Paragraph 2</paragraph>

      <title>Title 2</title>

   </chapter>

</body>

11.2.9 属性选择子匹配指定属性的元素

元素属性匹配是CSS Level 2中的特性,格式是在元素后添加一对“[]”号,中间写上所匹配的属性列表。形式如下:

/* 匹配具有“attribute”属性的“Element1”元素 */

Element1[attribute] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配具有“attribute”属性,且该属性值等于“attrValue1”的“Element1”元素 */

Element1[attribute="attrValue1"] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配具有“attribute”属性,且该属性值是空格分隔的列表形式(如:“attribute="attrValue1 attrValue2 attrValue3"”),同时其中某一个等于“attrValue1”的“Element1”元素 */

Element1[attribute~="attrValue1"] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配具有“lang”属性,且该属性值是减号“-”分隔的形式(如:“lang="zh-cn"”)和

   “zh”开始的“Element1”元素 */

Element1[lang|="zh"] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配同时具有“attribute1”和“attribute2”属性,且名称为“Element1”的元素 */

Element1[attribute1][attribute2] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配具有“attribute1”属性,其值为“attrValue1”,

   另还具有“attribute2”属性,其值为“attrValue2”,

   名称为“Element1”的元素 */

Element1[attribute1="attrValue1"][attribute2="attrValue2"] {

    Property1: value1;

    Property2: value21 value22;

}

/* 匹配所有具有“attribute”属性的元素(“[”前的“*”可省略) */

*[attribute] {

    Property1: value1;

    Property2: value21 value22;

}

以下CSS代码匹配具有“class="important"”属性的“paragraph”元素。

paragraph[class="important"] {

  font-size: 24pt;

  color: red;

}

上述CSS代码匹配下面XML代码中具有“class="important"”属性的“paragraph”元素。

<body>

   <chapter>

      <title>Title 1</title>

      <paragraph>Paragraph 1</paragraph>

      <paragraph class="important">Paragraph 2</paragraph>

   </chapter>

</body>

11.2.10 类选择子与ID选择子

类选择子和ID选择子是比较特殊的属性选择子,常用于HTML和XHTML的CSS,在XML的CSS中比较少用。

1.类选择子(Class selector)

在HTML或XHTML中,“class”属性有特别的含义,可以用CSS的类选择子匹配。类选择子的语法是一个“.”号。如下示例匹配具有“class="important"”属性的“table”元素。

table.important {

   font-size: 24pt;

   color: red;

}

2.ID选择子(ID selector)

在HTML或XHTML中,元素的“id”属性是ID属性,可以用CSS的ID选择子匹配。ID选择子的语法是一个“#”号。如下示例匹配具有“id="k456"”属性的元素。

#k456 {

   font-size: 24pt;

   color: red;

}

在XML中,元素的ID属性在DTD中指定。如已用DTD指定“chapter”元素的“name”属性为ID属性,则可以用如下CSS代码匹配具有“name="c12"”属性的“chapter”元素。

chapter#c12 {

   font-size: 24pt;

   color: red;

}

如果XML DTD被浏览器忽略,或XML文档没有DTD,则上述匹配形式将无效。为稳妥起见,应采用属性选择子匹配元素。

chapter[name="c12"] {

   font-size: 24pt;

   color: red;

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
css 总结1 原
1、@import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。
tianyawhl
2019/04/04
6850
CSS入门指南-1:css工作原理
每个html元素都有一组样式属性,可以通过css来设定。当html元素的同一个样式属性有多种样式值的时候,css就要靠层叠机智来决定最终应用哪种样式。
goodspeed
2020/12/22
8850
CSS入门指南-1:css工作原理
02.爬虫基础知识与简易爬虫实现
CSS 基础语法 CSS规则:选择器,以及一条或多条声明。 selector {declaration1; ...; desclarationN} 每条声明是由一个属性和一个值组成 property: value 例子 h1 {color: red; font-size: 14px} ---- 元素选择器 直接选择文档元素 比如 head,p <html> <head> <style type="text/css"> h1 {text-decoration: overline} h2
qubianzhong
2018/08/08
4560
02.爬虫基础知识与简易爬虫实现
全栈之前端 | 2.CSS3基础知识之选择器学习
在上一章节,作者针对CSS选择器做了一个简单介绍有那些选择器, 本章将表中的选择器进行一一实践展示。
全栈工程师修炼指南
2023/10/31
2540
全栈之前端 | 2.CSS3基础知识之选择器学习
【Web前端】“CSS”选择器是什么?
​在CSS中,选择器用于指定我们希望为其设置样式的HTML元素。CSS选择器提供了多种方法,使得我们可以非常精确地选择要样式化的元素。
一条晒干的咸鱼
2024/11/19
1000
【Web前端】“CSS”选择器是什么?
zepto 基础知识(2)
20.append   append(content) 类型:self   在每个匹配的元素末尾插入内容(内部插入)。内容可以为html 字符串。dom节点,或者节点组成的数组。     $('ul').append('<li>new list item</li>') 21.appendTo   appendTo(target) 类型:self   将匹配的元素插入到目标元素的末尾(内部插入)     $('<li>new list item</li>').appendTo
用户1197315
2018/01/19
9170
Selenium系列(十二) - 自动化必备知识之CSS选择器的详细使用
https://www.cnblogs.com/poloyy/category/1680176.html
小菠萝测试笔记
2020/06/09
1.4K0
2篇搞定CSS基础知识----第一篇
CSS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或者XML等文件样式的计算机语言。其扩展名为.css。CSS不仅可以静态的修饰网页,还可以配合各种脚本语言动态的对各网页元素进行格式化。
Lemon黄
2019/10/22
4960
2篇搞定CSS基础知识----第一篇
一篇文章带你了解CSS 选择器
CSS选择器是一种用于匹配HTML文档中元素的模式。关联的样式规则将应用于与选择器模式匹配的元素。
前端进阶者
2021/01/22
1.1K0
jQuery介绍,一篇就够了!
老猫-Leo
2023/12/11
2320
xpath路径表达式笔记
xpath可以用来选择这7种节点。不过,下面的笔记只涉及最常用的第一种element(元素节点),因此可以将下文中的节点和元素视为同义词。
ruanyf
2018/09/21
9940
【Hello CSS】序章-起源
在1982年的时候,万维网的发明者Tim Berners-Lee爵士为了让全世界的物理学家能够方便的进行合作与信息共享,造了HTML(HyperText Markup Language) 超文本置标语言。
陈大鱼头
2020/04/16
4790
【Hello CSS】序章-起源
XML快速入门学习笔记
问:什么是 XML? 答:XML 指可扩展标记语言(EXtensible Markup Language);且是一种很像HTML的标记语言;设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义,您需要自行定义标签,它设计为具有自我描述性。 目前,XML 在 Web 中起到的作用不会亚于一直作为 Web 基石的 HTML;XML 是各种应用程序之间进行数据传输的最常用的工具。
全栈工程师修炼指南
2020/10/23
9K0
XML快速入门学习笔记
前端课程——CSS选择器
CSS 选择器的作用是按照 CSS 规则定位 HTML 页面的一个或多个元素。浏览器在解析 HTML 页面时,会根据 CSS 规则中的选择器定位 HTML 页面的元素,并为对应的元素设定样式。
Dreamy.TZK
2020/04/09
5170
理解CSS伪元素 :before 和 :after
层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的。事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是“伪元素”。
疯狂的技术宅
2019/03/28
1.3K0
理解CSS伪元素 :before 和 :after
MyBatis配置文件mybatis-config配置详解-MyBatis从入门到进阶系列
MyBatis的配置文件是一个XML文件,其默认名称为mybatis-config.xml,用于配置和定制化MyBatis的运行时行为。比如可以用于配置数据库连接、属性、类型别名、类型处理器、插件、环境配置、映射器(mapper.xml)等信息。
jack.yang
2025/04/05
1720
CSS(CSS3)选择器(1)
这篇文章主要用于存储CSS以及CSS3的选择器部分知识,以便日后查阅及记忆. 该内容分为两部分,第一部分为css选择器的一些基本知识。第二部分为CSS3新增加的选择器。 在开始之前,先简单介绍一下选择器,选择器的作用就是定位我们想要样式化的网页HTML元素。选择器可以分为以下几种类型。 1、简单选择器,通过元素类型,class或id匹配一个或多个元素。 2、属性选择器,通过属性/属性值 匹配一个或多个元素。 3、伪类,匹配处于确定状态的一个或多个元素。(比如鼠标指针悬停的元素、当前被选中或未被选中的复选
zaking
2018/05/02
6890
Unity 数据读取|(五)XML文件解析(XmlDocument,XmlTextReader)
游戏开发小Y
2024/01/18
6110
CSS入门笔记 - 初识CSS
引言 上次给大家带来了html部分的笔记,大家的反馈让我非常开心?。 这次给大家带来css部分的第一篇笔记,由于本人比较蠢,学的很慢,而且css部分内容非常的细、广,需要不断code,才能体会其中细节
用户1667431
2018/04/18
2K0
CSS入门笔记 - 初识CSS
CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位
web前端开发者最最注的内容是三个:HTML、CSS与JavaScript,他们分别在不同方面发挥自己的作用,HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能
张果
2018/01/04
1.7K0
CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位
相关推荐
css 总结1 原
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档