1. 属性选择器:
通过元素的属性进行选择;
选择带name属性的li标签;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>属性选择器</title>
<style type="text/css">
li[name]{
color: aqua;
}
</style>
</head>
<body>
<ul class="title">
<li name="name01" id="id01">111</li>
<li id="id02">2222</li>
<li>3333</li>
<li>4444</li>
<li>55555</li>
</ul>
</body>
</html>
2. 层级选择器:
主要应用于选择父元素下的子元素,或者子元素下的子元素,可与标签元素结合,减少命名,同时通过层级,防止命名冲突;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>属性选择器</title>
<style type="text/css">
.class01 span{
color: aqua;
}
#id01 p{
color: #FF0000;
}
</style>
</head>
<body>
<div class="class01">
<span>python01</span>
<p>java01</p>
</div>
<div id="id01">
<span>python02</span>
<p>java02</p>
</div>
</body>
</html>
3.组选择器
多个选择器,每个选择器之间使用逗号隔开如果有同样的样式设置,可以使用组选择器;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>属性选择器</title>
<style type="text/css">
.class01 span, #id01 p{
color: aqua;
}
</style>
</head>
<body>
<div class="class01">
<span>python01</span>
<p>java01</p>
</div>
<div id="id01">
<span>python02</span>
<p>java02</p>
</div>
</body>
</html>
4.伪类选择器
伪类:
同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。在支持CSS的浏览器中,链接不同状态都可以不同的方式显示,这些状态包括,活动状态,已被访问,鼠标悬停,未被访问状态等;
比如div是属于box类,这一点很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户点击前是什么状态,点击后是什么状态。所以,就叫做“伪类”。
静态伪类和动态伪类:
伪类选择器分为两种。
(1)静态伪类:只能用于超链接的样式。如下:
:link 超链接点击之前
:visited 链接被访问过之后
PS:以上两种样式,只能用于超链接。
(2)动态伪类:针对所有标签都适用的样式。如下:
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
:focus :是某个标签获得焦点时的样式(比如某个输入框获得焦点)
超链接a标签
超链接的四种状态
a标签有4种伪类(即对应四种状态),要求背诵。如下:
:link “链接”:超链接点击之前
:visited “访问过的”:链接被访问过之后
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
对应代码如下:
/*让超链接点击之前是红色*/
a:link{
color:red;
}
/*让超链接点击之后是绿色*/
a:visited{
color:orange;
}
/*鼠标悬停,放到标签上的时候*/
a:hover{
color:green;
}
/*鼠标点击链接,但是不松手的时候*/
a:active{
color:black;
记住,在css中,这四种状态必须按照固定的顺序写:
a:link 、a:visited 、a:hover 、a:active
代码实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>属性选择器</title>
<style type="text/css">
/*让超链接点击之前是红色*/
.box a:link{
color:red;
}
/*让超链接点击之后是绿色*/
.box a:visited{
color:orange;
}
/*鼠标悬停,放到标签上的时候*/
.box a:hover{
color:green;
}
/*鼠标点击链接,但是不松手的时候*/
.box a:active{
color:black;
</style>
</head>
<body>
<div class="box">
<a href="http://www.baidu.com">访问百度</a>
</div>
</body>
</html>
如果不按照顺序,那么将失效
超链接的美化
问:既然a{}定义了超链的属性,和a:link{}定义了超链点击之前的属性,那这两个有啥区别呢?
答:
a{}和a:link{}的区别:
- a{}定义的样式针对所有的超链接(包括锚点)
- a:link{}定义的样式针对所有写了href属性的超链接(不包括锚点)
- 超链接a标签在使用的时候,比较难。因为不仅仅要控制a这个盒子,也要控制它的伪类。
我们一定要将a标签写在前面,将:link、:visited、:hover、:active这些伪类写在后面。
动态伪类举例
我们在第一段中描述过,下面这三种动态伪类,针对所有标签都适用。
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
:focus 是某个标签获得焦点时的样式(比如某个输入框获得焦点)
代码实现如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css</title>
<style type="text/css">
/*
伪类选择器:动态伪类
*/
/*
让文本框获取焦点时:
边框:#FF6F3D这种橙色
文字:绿色
背景色:#6a6a6a这种灰色
*/
input:focus{
border:3px solid #FF6F3D;
color:white;
background-color:#6a6a6a;
}
/*
鼠标放在标签上时显示蓝色
*/
label:hover{
color:blue;
}
/*
点击标签鼠标没有松开时显示红色
*/
label:active{
color:red;
}
</style>
</head>
<body>
<label for="id01">姓名:</label>
<input type="text" id="id01" name="username">
</body>
</html>
版权声明:本文为qq_34400745原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。