主体区域第1段文本
主体区域第2段文本
主体区域第3段文本
CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一、一对多或者多对一的匹配。
CSS选择器在CSS2.1选择器的基础上新增了属性选择器、伪类选择器、过滤选择器,减少了对HTML类名或ID名的依赖,避免了对HTML结构的干扰,使编写代码更加简单轻松。
根据所获取页面中元素的不同,可以把CSS3选择器分为5大类:基本选择器、组合选择器、伪类选择器、伪元素和属性选择器。其中,伪类选择器又分为6种:动态伪类选择器、目标伪类选择器、语言伪类选择器、UI元素状态伪类选择器、结构伪类选择器和否定伪类选择器。
这里讲基本的CSS选择器:标签选择器、类选择器、类选择器、ID选择器和通配选择器。
标签选择器直接引用HTML标签名称,也称为类型选择器,类型选择器规定了网页元素在页面中默认的显示样式。因此,标签选择器可以快速、方便地控制页面标签的默认显示效果。
通过标签选择器,统一定义网页中段落文本的样式为:段落内文本大小为12像素,字体颜色为红色。
类选择器能够为网页对象定义不同的样式,实现不同元素拥有相同的样式,相同元素的不同对象拥有不同的样式,类选择器以一个(.)前缀开头,然后跟随一个自定义的类名。
应用样式可以使用class属性来实现,HTML所有元素都支持该属性,只要在标签中定义class属性,然后把该属性值设置为事先定义好的类选择器的名称即可。
[示例1】以下示例完整演示如何使用类样式设计段落文本效果。利用类选择为页面中3个相邻的段落文本对象定义不同的样式,其中第1段和第3段文本的字体大小为12像素、字体红色,第2段文本的字体大小为18像素、字体为蓝色。
(1) 新建一个网页,在
标签内输入3段文本。问君能有几多愁,恰似一江春水向东流.
剪不断,理还乱,是离愁。别是一般滋味在心头
独自莫凭栏,无限江山,到时容易见识难。流水落花春去也,天上人间
(2) 在
标签内添加(4) 如果仅定义第2段文本的字体大小为18像素,这时就可以使用类选择器。假设定义一个18像素大小的字体类:
.font18px{
font-size:18px;
color:blue;
}
(5) 在第2段段落标签中引用font18px类样式。
问君能有几多愁,恰似一江春水向东流.
剪不断,理还乱,是离愁。别是一般滋味在心头
独自莫凭栏,无限江山,到时容易见识难。流水落花春去也,天上人间
(6) 在浏览器中预览,可以看到第1段和第3段文本显示样式,其中第2段文本被单独放大显示。
问君能有几多愁,恰似一江春水向东流.
剪不断,理还乱,是离愁。别是一般滋味在心头
独自莫凭栏,无限江山,到时容易见识难。流水落花春去也,天上人间
ID选择器以#号作为前缀,然后是一个自定义的ID名。应用ID选择器可以使用id属性来实现,HTML所有元素都支持该属性,只要在标签中定义id属性,然后把该属性值设置为事先定义好的ID选择器的名称即可。
一般通过ID选择器来定义HTML框架结构的布局效果,因为HTML框架元素色ID值都是唯一的。
如果HTML所有元素都需要定义相同的样式,这时不妨使用通配选择器。通配选择器是固定的,用型号(*)来表示。
[示例] 针对上面示例中清除边距样式,可以使用以下方式来定义。
*{
margin:0;
padding:0;
}
当把两个或多个基本选择器组合在一起,就形成了一个复杂的选择器,通过组合选择器可以精确匹配页面元素。CSS提供多种组合多个基本选择器的方式。
包含选择器通过空格标识符来表示,前面的一个选择器表示包含框对象的选择器,而后面的额选择器表示被包含的选择器。
【示例】
(1) 新建一个网页,在
标签内输入如下结构:主体区域第1段文本
主体区域第2段文本
主体区域第3段文本
主体区域第1段文本
主体区域第2段文本
主体区域第3段文本
(2) 在
标签内添加这时可以利用包含选择器来快速定义它们的样式,代码如下:
子选择器是指定父元素所包含的子元素。子选择器使用尖角号(>)表示。
【示例】演示如何使用子选择器为不同结构中的标签定义样式。
在
标签内添加相邻选择器,通过加号(+)分隔符进行定义。其基本结构是第一个选择器指定前面相邻元素,后面的额选择器指定相邻元素。前后选择符的关系是兄弟关系,即在HTML结构中,两个标签前为兄后为弟,否则样式无法应用。
【示例】通过4种情况对相邻选择符应用范围进行测试。
子选择器控制p标签,能控制吗
子选择器控制p标签,能控制我吗
子选择权控制p标签,能控制我吗
子选择器控制p标签,能控制我吗
【效果示意图】
1 通过浏览器预览发现:情况1、情况2、情况4均有效,情况3无效。
2 相邻选择器编写CSS样式:第1个元素为兄,第2个元素为弟,则HTML代码中兄和弟的关系不能调换,否则样式无效;再者无论有多少父层,只要它们是直接兄弟关系,则样式有效,这一点与子选择器是有区别的。
CSS增加了一种新的选择器组合形式——兄弟选择器。它通过波浪符号(~)分隔符进行定义。其基本结构是第一个选择器指定同级前置元素,后面的选择器指定其后同级所有匹配元素,前后选择符的关系是兄弟关系,即在HTML结构中两个标签前为兄后为弟,否则样式无法应用。
兄弟选择器和相邻选择器区别:
兄弟选择器能够选择前置元素后同级的所有匹配元素,而相邻选择器只能选择前置元素后相邻的一个匹配元素。
【示例】以相邻选择器示例为基础,修改其中p+h3{background-color:#0099FF;}样式为p~h3{background-color:#0099FF;},具体样式代码如下:
子选择器控制p标签,能控制吗
子选择器控制p标签,能控制我吗
子选择权控制p标签,能控制我吗
子选择器控制p标签,能控制我吗
【效果示意图】
分组选择器通过逗号(,)分隔符进行定义。其基本结构是第一个选择器指定匹配元素,后面的选择器指定另一个匹配元素,最后把前后选择器匹配的元素都取出来。
通过分组选择器可以实现集体声明,将样式表中一致的CSS样式放在一起,然后通过逗号链接这些选择器,减少代码的书写量。
【示例】通过分组选择器集中声明上面学过的符合选择器。