要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。
HTML页面中的元素就是通过CSS选择器进行控制的。
1.1 类别选择器
类选择器根据类名来选择
前面以”.”来标志,如:
.demoDiv{
color:#FF0000;
}
在HTML中,元素可以定义一个class的属性。
如:
<div>
这个区域字体颜色为红色
</div>
同时,大家可以再定义一个元素:
<p>
这个段落字体颜色为红色
</p>
最后,用浏览器浏览,大家可以发现所有class为demoDiv的元素都应用了这个样式。包括了页面中的div元素和p元素。
上例大家给两个元素都定义了class,但如果有很多个元素都会应用这个元素,那得一个个的定义元素,就会造成页面重复的代码太多,这种现象称为“多类症”。
大家可以改成这样来定义。
<div>
<div>
这个区域字体颜色为红色
</div>
同时,大家可以再定义一个元素:
<p>
这个段落字体颜色为红色
</p>
</div>
这样,大家就只是定义了一个类,同时把样式应用到了所有的元素当中。
1.2 标签选择器
一个完整的HTML页面是有很多不同的标签组成,而标签选择器,则是决定哪些标签
采用相应的CSS样式,(在大环境中你可能出于不同的位置,但是不管怎么样,你总
是穿着同一套衣服,这件衣服就是由标签选择器事先给你限定好的,不管走到哪里
都是这身衣服)比如,在style.css文件中对p标签样式的声明如下:
p{
font-size:12px;
background:#900;
color:090;
}
复制代码则页面中所有p标签的背景都是#900(红色),文字大小均是12px,颜色为#090(绿色)
,这在后期维护中,如果想改变整个网站中p标签背景的颜色,只需要修改
background属性就可以了,就这么容易!
1.3 ID选择器
根据元素ID来选择元素,具有唯一性。
前面以”#”号来标志,在样式里面可以这样定义:
#demoDiv{
color:#FF0000;
}
这里代表id为demoDiv的元素的设置它的字体颜色为红色。
大家在页面上定义一个元素把它的ID定义为demoDiv,如:
<div>
这个区域字体颜色为红色
</div>
用浏览器浏览,大家可以看到因为区域内的颜色变成了红色
再定义一个区域
<div>
这个区域没有定义颜色
</div>
用浏览器浏览,与预期的一样,区域没有应用样式,所以区域中的字体颜色还是默认的颜色黑色。
1.4 后代选择器
后代选择器也称为包含选择器,用来选择特定元素或元素组的后代,后代选择器用两个常用选择器,中间加一个空格表示。其中前面的常用选择器选择父元素,后面的常用选择器选择子元素,样式最终会应用于子元素中。
如:
<style>
.father.child{
color:#0000CC;
}
</style>
<p>
黑色
<label>蓝色
<b>也是蓝色</b>
</label>
</p>
这里大家定义了所有class属性为father的元素下面的class属性为child的颜色为蓝色。
后代选择器是一种很有用的选择器,使用后代选择器可以更加精确的定位元素。
@ 标签选择器有哪些?
1. 标签名选择器 div { color:Red;} /即页面中的各个标签名的css样式
2.类选择器 .divClass {color:Red;} /即定义的每个标签的class 中的css样式
3.ID选择器 #myDiv {color:Red;} /即页面中的标签的id
4.后代选择器(类选择器的后代选择器) .divClass span { color:Red;} /即多个选择器以逗号的格式分隔 命名找到准确的标签
5.群组选择器 div,span,img {color:Red} /即具有相同样式的标签分组显示
@ 怎样区分后代选择器和子代选择器?
1.第一从符号上来区分后代选择器:是用空格来分隔开来 例如<h1>一个<span>人</span>的战争</h1> 就是h1 span{}子代选择器:用特殊符号> 例如 h1>span{}
2.第二从用法上区分后代选择器html部分:<ul class=”study”><li>物理 <ul> <li>力学</li> <li>声学</li> <li>电磁学</li></ul></li><li>数学<ul> <li>微积分</li> <li>概率论</li> <li>博弈论</li></ul></li> </ul> css部分//使用子代选择器的效果.study >li{ border:1px solid red;/*只给物理和数学加一个红色方框*/}//使用后代选择器的效果.study li{ border:1px solid red;/*给物理 力学 声学 电磁学 和数学 微积分 概率论博弈论都加一个红色方框*/}这说明子代是他是单传只给物理和数学就断子绝孙,后代是一代传一代。
子代选择器时效果图:
后代选择器时效果图:
@ css标签选择器最多写几个?
可以写一个,也可以写多个,没有上限