选择器
选择器可以选定多个同时修饰,只要你书写的路径和选择器能够找到几个那就修饰几个。并且多个选择器也可同时修饰一个标签。
基础选择器
单个选择器,基础选择器的使用
通配符选择器
用*表述,它是可以选择所有的存在,这里设定的样式,整个HTML都会执行,但是优先级较低,而且我们也不常用通配选择器。
标签
标签选择器是最简单基础的选择器,一个标签就是一个选择器,然后在样式中写,这里的样式不包含行内样式,因为那个只能锁定修饰一行。
类
类选择器,需要在标签里面添加属性.class,并取一个相对应 的类名,然后用 点加类名(.类名) 作为选择器;在选择时,只要类名和style相同,并且路径符合的,都可以被你写的选择器里面的修饰语言修饰。
注意:一个类可以写多个类名,而写类选择器的时候只需要一个类名,多个交叉使用,提高了灵活性。
id
id选择器和类选择器类似,都需要在标签内添加相应的属性,这里是id属性,但是书写选择器时要用#加id名(#id名),并且id表示唯一性,每个标签里面的id属性都只有一个并且不能重复。
属性
属性选择器,我们通常用在input标签上面,但是其他也可以用但是没什么必要,
格式为:
/*选择器[属性1="值"][ 属性 2 = "值"]...*/
input[id="botton"]{
color: green;
font-weight: 700;
}
input[type="text"]{
color: red;
font-size: 12px;
}
复合选择器
在基础选择的基础上多个选择器连用,可以令多个选择器用同一个css样式代码,也可以多个选择器组合使用指向一个或者一类标签,增加其的 权重性(就是优先级,同样设置一个标签我该听谁的意思)。
并集
并集选择器就是多个选择器共用同一个css样式修饰的东西,相当于实现了代码复用,提高了书写效率。多个选择器之间用逗号隔开。
这里注意多个选择器时,逗号两边是两个完整的个体,选择器区分也是直接以逗号隔开的两个选择器,不能在前面使用一个共同的父代,然后后面直接以写两个子代用逗号隔开,要在两个子代前面都写上父代,然后用逗号隔开两部分。
div p,b {
color: yellow;
}
.p1,.div1,b{
color: red;
font-size: 30px;
}
/* 这个证明了并集不可以只写并集后面一部分,而是两个整体都要并集 ,不然识别的时候会是,逗号前面的是一个整体,逗号后面的是一个整体*/
div p,b {
color: green;
}
交集
交集选择器,就是用两个选择器连用,这两个选择器之间不能有空格,并且这两个选择器只能是标签选择器和类名选择器,标签在前,类名在后。
如
p.one选择的是类名为.one的段落标签
后代和子代
后代和子代是两个选择器。
我们明白标签和标签之间可以有嵌套关系,而后代和子代选择器就是用在这里。
后代选择器可以写多个来更精确的选择一个,前面是外层的选择器(可以是标签,点类名,#id等等),后面的是你选择的 ,在外层选择器里面 ,你所需要选择的标签的选择器名称(可以是#id,点类名,标签名…)。中间以选择器之间以空格隔开。
子代选择器和后代选择器类似,但是选择器之间不是以空格隔开而是以小于号隔开(<),
同时两者之间最重要的区别就是在于,子代选择器只能选择的是外层选择器的直接嵌套关系的标签,如果隔着一层甚至多层嵌套关系就不能选择到,而后代选择器却是可以识别只要在外层标签下就行
伪类选择器
伪类选择器用于向某些选择器添加特殊的效果。比如给链接添加特殊效果,比如可以选择第1个,第n个元素。
格式和类 类似不过是将那一个点换为了冒号
链接标签选择器
:link /* 未访问的链接 /
:visited / 已访问的链接 /
:hover / 鼠标移动到链接上 /
:active / 选定的链接 */
注意写的时候,他们的顺序 尽量 不要颠倒,按照lvha 的顺序。
a {/* a是标签选择器 所有的链接 */
font-weight: 700;
font-size: 16px;
color: gray;
}
a:hover {/* :hover 是链接伪类选择器 鼠标经过 */
color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
}
权重判断
权重就是优先级,就是在多个选择器指向一个标签,并且里面有重复的样式设置时,比如背景(都修饰了背景,但是设置的颜色不同),此时 就要看权重,
如果权重一样那么就是,按照执行顺序,就近原则,执行后面选择的内容(注意:这里是相当于覆盖,意思就是这几个选择器都执行了,但是权重一样时,重复的部分执行最后的那个,相当于后面的覆盖了前面)
权重计算
在权重方面可以给基础的选择器等设置一个指定的数值,符合选择器就可以按照基础选择器进行相加操作就行,但是要记住,这是不能进位的,位数大的永远优先于位数小的,不管数值时多少。
注意:
- 权重计算一定不能进位,并且位数高的一定大于位数低的。
- 权重一样的就近原则,此时就相当于覆盖。