选择器
元素选择器
根据标签名来选中指定的元素 语法:标签名{} 例子:P{} h1{}
<style>
p{
color :red;
}
</style>
id选择器
根据元素ID来选中指定的元素 (ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。) 语法: #id属性值{} 例子:#box{} #red{}
<head>
<style>
#red{
color:red;
}
</style>>
</head>
<body>
<p id="red">这是一段文字</p>
</body>
class选择器(类选择器)
根据class属性来选中指定的元素组 class是一个html的标签属性,和ID相似,但是它可以重复。可以同时为一个元素指定多个class元素。 可以解决拿ID选择器不好给多个元素指定样式的弊端, 可以通过class给元素分组 语法: .class属性值
<style>
.red{
color:red;
}
</style>>
</head>
<body>
<p class="red">这是一段文字</p>
<p class="red">这是一段文字</p>
</body>
统配选择器
选中页面里所有元素 语法:*
*{
color:red;
}
复合选择器
交集选择器: 作用:选中复合多个条件的元素 语法:选择器1选择器2选择器3选择器N{} 注意点:如果有元素选择器,必须使用元素选择器开头
<head>
<style>
div.red{
color:red;
}
</style>
</head>
<body>
<div class="red">这里是div</div>
<P class="red">这里是P标签</P>
</body>
并集选择器
同时选中多个选择器对应的元素 语法:选择器1,选择器2,选择器3,选择器N{} 例子:#bi,h1,p,div{}
<head>
<style>
div,p{
color:red;
}
</style>
</head>
<body>
<div class="red">这里是div</div>
<P class="red">这里是P标签</P>
</body>
关系选择器
关系描述
父元素: -直接包含子元素的元素叫父元素 子元素: —直接被父元素包含的元素叫子元素 祖先元素: -直接或间接包含后代元素的元素叫祖先元素 -一个元素的父元素也是它的祖先元素 后代元素 -直接或间接被祖先元素包含的元素叫后代元素 -一个元素的子元素也是它的后代元素 兄弟元素 -拥有相同父元素的元素是兄弟元素
子元素选择器:
选中指定父元素的子元素 语法:父元素>子元素
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
/*
为div的子元素设置一个字体颜色红色
子元素选择器:选中指定父元素的子元素
语法:父元素>子元素
*/
div.box>span{
color: crimson;
}
</style>
</head>
<body>
<div class="box">
这里是div
<P >
这里是div里的P标签
<span>这里是p里的span标签</span>
</P>
<span>这里是div里的span标签</span>
</div>
<div>
这里是div
<span>这里是第一个div外的span标签</span>
</div>
</body>
</html>
后代元素选择器:
选中指定元素的指定后代元素
语法:祖先 (空格)后代
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
/*
后代元素选择器:
选中指定元素的指定后代元素
语法:祖先 (空格)后代
*/
div span{
color: crimson;
}
</style>
</head>
<body>
<div class="box">
这里是div
<P >
这里是div里的P标签
<span>这里是p里的span标签</span>
</P>
<span>这里是div里的span标签</span>
</div>
<div>
这里是div
<span>这里是第一个div外的span标签</span>
</div>
</body>
</html>
并列标签选择器
选择下一个兄弟
语法:前一个+下一个
选择下方所有的兄弟
语法:兄~弟 例子:
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
/*
选择下一个兄弟
语法:前一个+下一个
*/
p+span{
color: crimson;
}
/*
选择下方所有的兄弟
语法:兄~弟
*/
P~span{color: crimson;}
</style>
</head>
<body>
<div class="box">
这里是div
<P >
这里是div里的P标签
<span>这里是p里的span标签</span>
</P>
<span>这里是div里的span标签</span>
</div>
<div>
这里是div
<span>这里是第一个div外的span标签</span>
</div>
</body>
</html>
属性选择器
[属性名]选择含有指定属性的元素 [属性名=属性值]选择含有指定属性值的元素 [属性名^=属性值]选择属性值以指定属性值开头的元素 [属性名$=属性值]选择属性值以指定属性值结尾的元素 [属性名*=属性值]选择属性值含有指定属性值的元素 例子:
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
/*
[属性名]选择含有指定属性的元素
[属性名=属性值]选择含有指定属性值的元素
[属性名^=属性值]选择属性值以指定属性值开头的元素
[属性名$=属性值]选择属性值以指定属性值结尾的元素
[属性名*=属性值]选择属性值含有指定属性值的元素
*/
p[title]{
color: crimson;
}
p[title=abc]{
color: crimson;
}
p[title^=abc]{
color: crimson;
}
</style>
</head>
<body>
<h1 title="abc">将进酒</h1>
<p title="abcde">君不见黄河之水天上来,奔流到海不复回 </p>
<p title="deabc">君不见高堂明镜悲白发,朝如青丝暮成雪。</p>
<p>人生得意须尽欢,莫使金樽空对月。</p>
<p>天生我材必有用,千金散尽还复来。</p>
</body>
</html>
伪类选择器
伪类:不存在的类,特殊的类。用来描述元素的特殊状态。比如:第一个子元素,被点击的元素,鼠标处在上面的元素。 伪类一般以:开头
常用的伪类选择器
第一个子元素 :first-child 最后一个子元素:last-child 第n个子元素:nth-child(n) n=n是选中除第零个元素之外的所有元素 n=2n或n=even表示偶数元素 n=2n+1或n=odd表示奇数元素
以上几个伪类都是根据所有元素的顺序排列的 :first-of-type :last-of-type :nth-of-type() 这几个和上面三个功能相似,但是是根据同类一元素的顺序进行排列的
否定伪类选择器
:not()去除满足条件的元素 示例:
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
/* 将ul里第一个li设为红色 */
/* 第一个子元素 :first-child*/
ul>li:first-child{
color: brown;
}
/* 最后一个子元素:last-child */
ul>li:last-child{
color: red;
}
/*
第n个子元素:nth-child(n)
n=n是选中除第零个元素之外的所有元素
n=2n或n=even表示偶数元素
n=2n+1或n=odd表示奇数元素 */
ul>li:nth-child(1){
color: red;
}
/* 以上几个伪类都是根据所有元素的顺序排列的 */
:first-of-type
:last-of-type
:nth-of-type()
/* 这几个和上面三个功能相似,但是是根据同类一元素的顺序进行排列的 */
/* 否定伪类选择器 */
ul>li:not(:nth-child(3)){
color: seagreen;
}
</style>
</head>
<body>
<ul>
<span>第一个span</span>
<li>第一个</li>
<li>第二个</li>
<li>第三个</li>
<li>第四个</li>
<li>第五个</li>
</ul>
</body>
</html>
a元素的伪类(超链接)
超链接可以分为特殊状态: 1.访问过的超链接 2.没有访问过的超链接 :link 表示没有访问过的链接(正常的链接) (a独有) :visited表示是访问过的链接 (a独有) 由于隐私原因,这个伪类只能修改链接的颜色,不能修改其他字体大小等属性 :hover表示鼠标移入的状态 :active表示鼠标点击
<!DOCTYPE html>
<html lang="zh">
<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>
<style>
a:link{
color: seagreen;
}
/* :link表示没访问过的链接 */
a:visited{
color: sienna;
}
/* :visited表示是访问过的链接
由于隐私原因,这个伪类只能修改链接的颜色,不能修改其他字体大小等属性*/
/* :hover表示鼠标移入的状态 */
a:hover{
color: skyblue;
font-size: 50px;
}
/* :active表示鼠标点击 */
a:active{
color: springgreen;
}
</style>
</head>
<body>
<a href="http://www.baibu.com">baidu(访问过)</a>
<br>
<a href="http://www.baidu123.com">baidu123(没访问过)</a>
</body>
</html>
伪元素
伪元素:不真实存在的元素,特殊的位置的元素。 伪元素使用::开头 ::first-letter表示第一个字母(字符) ::first-line表示第一行 ::selection表示选中的文本
::before表示元素开始的位置 ::after表示元素结束的位置 -->必须配合属性content来使用 这两个应用很多,是重点内容 例子:
<!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>
<style>
P{
font-size: 20px;
}
/* ::first-letter表示第一个字母(字符) */
p::first-letter{
font-size: 50px;
}
/* ::first-line表示第一行 */
p::first-line{
font-size: 50px;
}
/* p::selection表示选中的文本 */
p::selection{
background-color: springgreen;
}
div::before{
content: "123";
color: tan;
}
div::after{
content: "hh";
color: blue;
}
</style>
</head>
<body>
<div>hello ,how are you.</div>
<p>这是一个段落</p>
</body>
</html>