CSS选择器

一.选择器

为了在css和HTML文件的关联过程中,实现一对一,一对多或者多对一的控制,这就需要使用选择器

1.基本选择器

1-1.类型选择器(标签选择器)

以文本对象HTML中的标签为选择符.

1-2.Class选择器(类选择器)权重为10

给某个标签命名,使其能与其他同类标签区分
或者给某些标签统一命名赋予相同修饰
用法:在HTML中<标签 class=“命名”>
在css中 .命名{修饰内容}

1-3.ID选择器权重为100

用法:在HTML中<标签 id=“命名”>
在css中 #命名{修饰内容}

1-4.通配符权重为0

在想让所有标签都改变样式的时候
用法:在css中 *{修饰内容}

1-5.群组选择器无权重之说,

内部元素权重只看其对应选择器自己的权重.
想让几个元素同时改变样式时使用.
选择器之间用逗号隔开
用法:选择器1,选择器2,选择器3{修饰内容}

2.层次选择器 权重为{}前所包含所有元素选择器权重的和

其权重为{}前所包含所有元素选择器权重的和;

2-1.后代选择器(包含选择器)

改变父元素下所有子元素的样式
用法父元素 子元素{}

2-2.子选择器

改变父元素下所有子元素样式
用法:父元素>子元素{}

2-3.相邻兄弟选择器

改变某个元素后面紧挨着的某类元素(实际上是只选择紧邻的那一个,然后将第二个同类看做某某1,一直继续下去)
用法:某某1+某某2{}

2-4.通用兄弟选择器

改变某个元素后面所有的某类元素
用法:某某1~某某2{}

3.伪类选择器(权重是10)

3-1.动态伪类选择器

a:link {color: red;} /* 未访问的链接状态,必须给a /
a:visited {color: green;} /
已访问的链接状态,必须给a /
a:hover {color: blue;} /
鼠标滑过链接状态,可以随便给 /
a:active {color: yellow;} /
鼠标按下去时的状态,必须给a */

说明:
1)当这4个超链接伪类选择符联合使用时,应注意他们的顺序,正常顺序为:
a,a:link,a:visited,a:hover,a:active,错误的顺序有时会使超链接的样式失效;
2)为了简化代码,可以把伪类选择符中相同 的声明提出来放在a选择符中;
例如:a{color:red;} a:hover{color:green;}
表示超链接的三种状态都相同,只有鼠标划过变化颜色

3-2.结构伪类选择器

child类
3-2-1.E:fisrt-child

作为父元素的第一个子元素的元素E。与E:nth-child(1)等同

3-2-2.E:last-child

作为父元素的最后一个子元素的元素E。与E:nth-last-child(1)等同

3-2-3.E F:nth-child(n)

选择父元素E的第n个子元素F。
如果E里第n个不是F元素则不变.
:nth-child(length)、:nth-child(n)、:nth-child(nlength)、:nth-child(n+length)、:nth-child(-n+length)、:nth-child(nlength+1)

3-2-4.:nth-last-child()

选择某个元素的倒数的一个或多个特定的子元素.用法同:nth-child(n)

3-2-5.:only-child

可以在选择的元素是它的父元素的唯一 一个子元素时使用.

of-type类
3-2-6.E::first-of-type

选择一个上级元素下的所有第一个同类子元素

3-2-7.E:last-of-type

选择一个上级元素的所有最后一个同类子元素

3-2-8.E F:nth-of-type()

选择指定的元素,类似于:nth-child,不同的是他只计算选择器中指定的那个元素。

3-2-9.:nth-last-of-type()

选择指定的元素,从元素的最后一个开始计算

3-2-10.:only-of-type

选择一个元素是它的上级元素的唯一 一个相同类型的子元素

3-2-11.:empty

选择的元素里面没有任何内容

3-2-12.:root

选择文档的根元素

3-3.UI状态伪类选择器

input:enabled{ 可用状态下的样式}
input:disabled{ 禁用状态下的样式}
input:checked{ 选中状态下的样式}

3-4.否定伪类选择器

:not() 除了什么什么 可以让你定位不匹配该选择器的元素

3-4.目标伪类选择器

:target 选择器可用于选取当前活动的目标元素。
使用该选择器来对页面中的某个target元素(该元素的id当做页面中的超链接来使用)指定样式,该样式只在用户点击了页面中的超链接,并且跳转到target元素后起作用。

4.属性选择器(对于置换元素很好用)权重为10

4-1.元素名:[属性]

选择所有具有方括号内属性的某组元素,不论属性值是多少

img[scr]{width:100%}

4-2.元素名[属性=“属性值”]

选择有方括号内属性且属性值一模一样的某组元素,属性值必须一模一样,多个空格都不行

4-3.元素名[属性$=“属性值”]

选择有方括号内属性且属性值是以等号后属性值为结尾的元素

5.伪对象选择器(伪元素选择器)权重为1.

5-1.after定义在盒子内容后的内容

用法:

c1语法:
div:after{content:"文字内容";
}
div:after{content:url(图片地址);
}
c3语法:
div::after{content:"文字内容";
}
div::after{content:url(图片地址);
}

5-2.before定义在盒子内容前面的内容

c1语法:
div:before{content:"文字内容";
}
div:before{content:url(图片地址);
}
c3语法:
div::before{content:"文字内容";
}
div::before{content:url(图片地址);
}

5-3.first-line对盒子第一行内容进行修饰

注意:该选择器只能对块元素使用

c3语法:
div::first-line{}
c1语法:
div:first-line{}

5-4.first-letter对盒子第一个字进行修饰

注意 :该选择器只能对块元素使用

c3语法:
div::first-letter{}
c1语法:
div:first-letter{}

5-5.selection对盒子内容被选中时的背景和字体颜色进行修饰

注意该选择器只有c3用法.

c3语法:
div::selection{}

5-6.案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    div{
        width: 100px;
        height: 100px;
    }
    .wai::after{
        content: "我";
        color: aqua;
    }
    .wai,.wai2,.wai3{
        width: 300px;
        height: 300px;
        background: lightblue;
        margin-top: 100px;
        margin-left: 100px;
        
    }
    .wai::before{
        content: "我";
        color: rgb(40, 22, 207);
    }
    .wai2::first-line
    {
font-size: 25px;
color: blueviolet;
    }
 .wai2::first-letter{
font-size: 50px;
color: coral;
 }
    
.wai3::selection{
color: darkgray;
background-color: forestgreen;
}
</style>
<body>
<div class="wai">四大四</div>
<div class="wai2">
    互换互动方双丧服当复苏扥扥独当复苏扥上冻扶桑扥尚东申东富USD付东方
</div>
<div class="wai3">
    互换动方双丧服当复苏扥扥独当复苏扥上冻扶桑扥尚
</div>
</body>
</html>

效果:
前后加内容
在这里插入图片描述
首行和首字变色
在这里插入图片描述
选中背景色和字体颜色改变
在这里插入图片描述

二.css层叠性

当一个元素遇到多个选择器配置同一属性时,会优先选择配置选择器权重高的;
当选择器权重一样时,会选择后定义的选择器对应的属性值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值