一,链接伪类::link :visited :target
lv【LV】
注意点:必须按照顺序编写位置,否则失效
二,动态伪类::hover :active
【lvha】
三,表单伪类: :enable :disable :checked[被选中时渲染/自定义单选按钮] :focus[获取焦点时渲染]
注意点:enable/disable必须配合disable属性判定是否为可编辑输入框或则不可编辑输入框
四,结构性伪类
1,child系列
01,:nth-child(index)从上到下第几个子节点
02,:nth-last-child(index)从下到上第几个子节点
03,:first-child第一个子节点
04,:last-child最后一个子节点
05,:only-child只允许有一个【只允许有一个子节点】
注意点:假设div li:nth-child(1)
,渲染顺序为浏览器先找到div
所有子节点中的的第1个
子节点,且此节点类型为li;所以如若div的第一个子节点
类型不是li
,则上诉css声明失效。
2,type系列
01,:nth-of-type(index)从上到下子节点中的某类型标签的第几个
02,:nth-last-of-type(index)从下到上子节点中的某类型标签的第几个
03,:first-of-type子节点中的某类型标签的第一个
04,:last-of-type 子节点中的某类型标签的最后一个
05,:only-of-type子节点中的某类型标签只允许存在一个
注意点:
<style>
body .type:nth-of-type(1) {
background-color: pink;
}
</style>
</head>
<body>
<div class="type">111</div>
<p class="type">222</p>
<h4 class="type">333</h4>
</body>
它会全部渲染,而不是只渲染第一个<div>
,所以type
在乎的是标签的类型。
五,伪元素
01,before
02,after
用法:一般用于清除浮动
六,文本伪类
:first-letter—选择文本中的第一个字符
:first-line—选择文本中的第一行
:selection—改变鼠标选中区域样式包括文本
七,target伪类
定义:URL 带有后面跟有锚名称 #id,指向文档内某个具体的元素。【一般用于tab切换】
案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/experiment.css" />
<title>target--选项卡</title>
<style>
* {
margin: 0px;
padding: 0px;
}
.content {
margin: 20px auto;
width: 350px;
border: 1px solid black;
border-radius: 10px;
overflow: hidden;
}
div {
width: 350px;
height: 300px;
text-align: center;
font: 50px "微软雅黑";
line-height: 200px;
display: none;
}
:target {
display: block;
}
ul {
width: 350px;
display: block;
border: 1px solid black;
overflow: hidden;
text-align: center;
}
li {
display: inline-block;
list-style: none;
text-align: center;
width: 100px;
height: 40px;
clear: both;
padding-top: 15px;
}
li:nth-child(2) {
border: 1px solid black;
border-bottom: none;
border-top: none;
}
a {
text-decoration: none;
color: black;
margin-top: 20px;
}
</style>
</head>
<body>
<center class="content">
<ul>
<li> <a href="#HTML">HTML</a> </li>
<li> <a href="#CSS">CSS</a> </li>
<li> <a href="#JAVASCRIPT">JAVASCRIPT</a> </li>
</ul>
<div id="HTML">HTML</div>
<div id="CSS">CSS</div>
<div id="JAVASCRIPT">JAVASCRIPT</div>
</center>
</body>
</html>
八,label元素特性
label具有一个包装捆绑的属性,还有个for
属性,在它里面的的子代是共生的,一起被选,一起不被选;如果需要绑定外部的元素,则可以用for属性
绑定所需元素的name属性
值
案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/experiment.css" />
<title>label--自定义单选框</title>
<style>
* {
margin: 0px;
padding: 0px;
}
.content {
margin: 20px auto;
width: 350px;
border: 1px solid black;
border-radius: 10px;
overflow: hidden;
}
input {
visibility: hidden;
}
span {
width: 10px;
height: 10px;
border: 1px solid pink;
border-radius: 100%;
padding: 15px;
padding-right: 18px;
font-size: 30px;
text-align: center;
line-height: 10px;
color: black;
display: inline-block;
}
input:checked + span {
background-color: pink;
color: #FF0000;
}
</style>
</head>
<body>
<center class="content">
<label>
<input type="radio" name="lala" />
<span>✓</span>
</label>
<label>
<input type="radio" name="lala" />
<span>✓</span>
</label for="lala">
<label>
<input type="radio" name="lala" />
<span>✓</span>
</label>
</center>
</body>
</html>