CSS3选择器是在CSS2.1选择器的基础上新增部分属性选择器和伪类选择器,减少对HTML类和ID的依赖,使编写网页代码更加简单轻松。
根据所获取页面中元素的不同,可以把CSS3选择器分为5大类:元素选择器、关系选择器、伪类选择器、伪对象选择器和属性选择器。
标签选择器:根据HTML标签名匹配同类型的所有标签。
小结:
CSS3定义了一个特殊类型的选择器:通配选择器,它使用星号(*)表示,用来匹配所有的标签。一般用通配选择器统一所有标签的样式;如:
*{margin:0;padding:0;}
类选择器以点号(.)为前缀,后面为类名。应用方法:在标签中定义class属性,然后设置属性值为类选择器的名称。
小结:
当应用多个类样式时,类名之间通过空格进行分隔,效果不受前后顺序的影响。如:
定义三个类样式:
/*颜色类*/
.red{ color:#f00;}
/*下划线类*/
.underline{ text-decoration:underline;}
/*斜体类*/
.italic{ font-style:italic;}
下面在HTML文件中应用这些样式:
<article>
<h1>游子吟h1>
<p class="underline">慈母手中线,游子身上衣。p>
<p class="red italic underline">临行密密缝,意恐迟迟归。p>
<p class="italic">谁言寸草心,报得三春晖。p>
article>
ID选择器以井号(#)为前缀,后面为ID名称。应用方法:在标签中定义id属性,然后设置属性值为ID名称。
小结:
简单的选择器包括标签选择器、类选择器、ID选择器 和 通配选择器。如果把两个选择器组合在一起,就形成了一个复杂的关系选择器。在HTML5文档结构中,通过关系选择器可以精确匹配结构中特定关系元素。
包含选择器通过 空格 连接 两个选择器,前面的选择器表示包含的祖先元素,后面选择器表示被包含的后代元素。
例如:
首先设计一个简单的网页模板结构。
<header>
<h1>网页标题\<h1>
header>
<footer>
<h1>页脚标题h1>
footer>
接着在< head>标签内添加< style type=“text/css”>标签,定义一个内部样式表,然后定义样式。
最后输入如下样式代码,利用包含选择器限定h1选择器的应用范围。
<style type="text/css">
header h1{font-size:18px;}
footer h1{font-size:12px;}
style>
子选择器使用尖角号(>)连接两个选择器,前面选择器表示要匹配的父元素,后面选择器表示被包含的匹配子对象。
article p {font-size:14px;color:#666;}/*article标签下的所有p标签,包括子标签下面的p标签*/
article> p {font-size:20px;color:#000;}/*属于article标签下子标签中的p标签的格式*/
相邻选择器使用加号(+)连接两个选择器,前面选择器匹配特定元素,后面选择器根据结构关系,指定同级、相邻的匹配元素。
有如下文档:
<article>
<h1>游子吟h1>
<p>慈母手中线,游子身上衣。p>
<p>临行密密缝,意恐迟迟归。p>
<p>谁言寸草心,报得三春晖。p>
article>
在内部样式表中,通过相邻选择器准确匹配出标题后面相邻的p元素,并设计文本突出显示。
<style type="text/css">
article p {font-size:14px;color:#666;}
h1 + p {font-size:20px;color:#000;} /*把挨着h1标签中的p标签设置为该样式*/
style>
兄弟选择器使用波浪符号(~)连接两个选择器,前面选择器匹配特定元素,后面选择器根据结构关系,指定其后同级所有匹配的元素。
<style type="text/css">
article { font-size:14px; color:#666;}
h1 ~ p { font-size:20px; color:#000;}
style>
小结:
示例:
h1,h2,h3,h4,h5,h6 {
margin:0;
margin-bottom:10px;
}
属性选择器是根据标签的属性来匹配元素,使用中括号进行标识。语法形式如下:
[属性表达式]
CSS3包括以下7种属性选择器形式。
E表示匹配元素的选择符,可以省略;中括号为属性选择器标识符,不可或缺;attr表示HTML属性名,value表示HTML属性值,或者HTML属性值包含的子字符串。
结构伪类可以根据文档结构的关系来匹配特定的元素。结构伪类主要包括以下几种。
:not() 表示否定选择器,它能够过滤掉not()函数匹配的元素。
CSS3包含以下3个UI状态伪类选择器。
UI表示用户交互界面,一般指表单对象,如文本框、复选框、按钮等。
目标伪类选择器(E:target)表示选择匹配E的所有元素,且匹配元素被相关URL指向。该选择器是动态选择器,只有当存在URL指向该匹配元素时,样式效果才有效。
动态伪类是一类行为类样式,只有用户与页面进行交互时有效,包括两种以下形式。
伪对象选择器主要用于匹配内容变化的对象,如第一行文本、第一个字符、前面内容、后面内容。这些对象是存在的,但其内容又无法具体确定,需要使用特定类型的选择器来匹配它们。
伪对象选择器以冒号(:)作为语法标识符。冒号前可以添加选择符,限定伪对象应用的范围,冒号后为伪对象名称,冒号前后没有空格。语法格式如下:
:伪对象名称
CSS3新语法格式如下:
::伪对象名称
伪对象前面包含两个冒号,主要是为了与伪类选择器进行语法区分。