目录
一、CSS介绍与基本使用
1、CSS样式
层叠样式表(Cascading Style Sheets)是一种用来表现HTML或XML等文件样式的计算机语言,CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
2、CSS作用
CSS就是网页的化妆师,可以让网页变得更加美观。
3、使用方法
1)行间样式
行间样式是直接写在标签内的样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS</title>
</head>
<body>
<!--行间样式-->
<p style="background:red">段落标签p</p>
</body>
</html>
2)内部样式
内部样式是写在style标签内的样式,而style标签则写在head标签内。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS</title>
<!-- 内部样式-->
<style>
/*内部样式表*/
p{color:red;height:100px;width:100px}
</style>
</head>
<body>
<!-- 内部样式 style标签写在head标签内 -->
<p>段落标签p</p>
</body>
</html>
3)外部样式
外部样式是使用外部的CSS文件,并且进行引用,从而进行设置样式的样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS</title>
<!-- 自闭合标签,用来加载引用外部的CSS文件-->
<link rel="stylesheet" href="./style.css"> <!--style.css与当前文件放在同级目录下-->
</head>
<body>
<p>段落标签p</p>
</body>
</html>
CSS样式文件:
/*外部样式表*/
p{color:orange;height:100px;width:100px}
二、CSS选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<!-- 无法精准地为每个p标签设置各自的样式,此时需要用到CSS选择器-->
<style>
p{color: red}
p{color: blue}
p{color: orange}
</style>
</head>
<body>
<p>段落标签1,样式1</p>
<p>段落标签2,样式2</p>
<p>段落标签3,样式3</p>
</body>
</html>
运行结果:
通过以上运行结果可以发现,各个段落标签都为相同颜色,无法实现精准地令每个标签具有各自的颜色样式,此时应使用CSS选择器。
1、选择器作用
给指定的元素设置样式,能够更加精准。
2、选择器权重
选择器也有权重差别,当出现冲突样式的时候,选择权重大的样式。
行间样式 > (内部样式 = 外部样式)【看标签的先后顺序】 > id选择器 > class选择器 > 标签选择器 |
3、选择器种类
1)标签选择器
标签选择器:通过指定标签来设置每个标签的样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
p{color: red}
p{color: blue}
p{color: orange}
span{color: pink}
</style>
</head>
<body>
<p>段落标签1,样式1</p>
<p>段落标签2,样式2</p>
<p>段落标签3,样式3</p>
<span>文本标签span</span>
</body>
</html>
运行结果:p标签颜色均为“orange”,而span标签颜色为“pink”
2)id选择器
id选择器:通过标签唯一的id,定位标签设置样式,在样式中用#id来标识。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
#p1{color: red}
#p2{color: blue}
#p3{color: orange}
</style>
</head>
<body>
<!-- id必须唯一,且不重复-->
<p id="p1">段落标签1,样式1</p>
<p id="p2">段落标签2,样式2</p>
<p id="p3">段落标签3,样式3</p>
</body>
</html>
运行结果:
3)class选择器
class选择器:通过标签的class,对标签设置样式,其中class可以不唯一,也可以重复,在样式中用.class来标识。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
p{color: red}
#p2{color: blue} /* #代表id */
.p3{color: orange} /* .代表类class */
.p4{color: yellow}
</style>
</head>
<body>
<p>段落标签1,样式1</p>
<p id="p2">段落标签2,样式2</p> <!-- id必须唯一,且不重复-->
<p class="p3">段落标签3,样式3</p> <!-- class可以不唯一,可以重复-->
<p class="p3">段落标签4,样式4</p>
<p class="p3 p4">段落标签5,样式5</p>
</body>
</html>
运行结果:
4)群组选择器
群组选择器:以逗号(,)间隔给多个标签添加相同样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
p,#span0,div{color:red} /* 群组选择器:以逗号间隔给多个标签添加相同样式 */
</style>
</head>
<body>
<p>段落标签</p>
<span id="span0">文本标签</span>
<div>块级标签div</div>
</body>
</html>
运行结果:
5)全选择器
全选择器:用星号*(代表全部)给所有标签设置相同样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
*{color:blue}
</style>
</head>
<body>
<p>段落标签</p>
<span id="span0">文本标签</span>
<div>块级标签div</div>
</body>
</html>
运行结果:
6)层次选择器
层次选择器:分为子代、后代、相邻和兄弟等四种选择器。
① 后代选择器
后代选择器之间的层次关系由空格来决定。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
/*后代选择器之间的层次关系由空格来决定*/
div span{color:blue}
</style>
</head>
<body>
<!--后代选择器-->
<div>
<p>段落标签1</p>
<p>段落标签2</p>
<p>段落标签3
<span>段落标签3下的文本标签
<!-- b标签:加粗标签-->
<b>我真的是一个b标签!</b>
</span>
</p>
</div>
</body>
</html>
运行结果:
② 子代选择器
子代选择器具有严格的层次关系,子代选择器之间的层次关系由>来决定。子代选择器须一层一层指定,而后代选择器可跨层指定。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
/*子代选择器之间的层次关系由>来决定*/
div > span{color:blue}
</style>
</head>
<body>
<!--后代选择器-->
<div>
<p>段落标签1</p>
<p>段落标签2</p>
<p>段落标签3
<span>段落标签3下的文本标签
<!-- b标签:加粗标签-->
<b>我真的是一个b标签!</b>
</span>
</p>
<span>
文本标签2
<span>
文本标签2下的文本标签3
</span>
<b>文本标签下的b标签2</b>
</span>
</div>
</body>
</html>
运行结果:
③ 兄弟选择器
同一个父亲、同一层次之下都称之为兄弟。兄弟选择器的层次关系由~决定,~指定下的兄弟标签,除其本身外的下位标签都将设置样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
.p2 ~ p{color:blue} /* 除p2外的下位兄弟标签(同级标签)被设置样式,p3和p4有样式 */
</style>
</head>
<body>
<div>
<p>段落标签1</p>
<p class="p2">段落标签2</p>
<p id="p3">段落标签3
<span>段落标签3下的文本标签
<b>b标签</b>
</span>
</p>
<p id="p4">段落标签4</p>
<span>
<p>p标签5</p>
</span>
</div>
</body>
</html>
运行结果:
④ 相邻(兄弟)选择器
同一个父亲、同一层次之下都称之为兄弟。相邻(兄弟)选择器的层次关系由+决定,除此之外,还要保证是相邻关系。+指定下的兄弟标签,除其本身外的相邻下位标签被设置样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
.p2 + p{color:blue} /* 除p2外的相邻下位兄弟标签(同级标签)被设置样式,p3具有样式 */
</style>
</head>
<body>
<div>
<p>段落标签1</p>
<p class="p2">段落标签2</p>
<p id="p3">段落标签3
<span>段落标签3下的文本标签
<b>b标签</b>
</span>
</p>
<p id="p4">段落标签4</p>
<span>
<p>p标签5</p>
</span>
</div>
</body>
</html>
运行结果:
7)属性选择器
属性选择器:通过属性(如name)设置样式,通过[]决定。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
/*通过属性添加样式,同时还可以指定属性值*/
p[name]{color: wheat}
span[name]{color: purple}
p[id]{color: green}
p[name="p2"]{color: yellow}
</style>
</head>
<body>
<div>
<p name="p1">段落标签1</p>
<p name="p2">段落标签2</p>
<p id="p3">段落标签3</p>
<span name="sp1">文本标签</span>
</div>
</body>
</html>
运行结果:
8)伪类选择器
-
伪类选择器常常用于a标签。
伪类选择器下的4个状态
(1)未访问 link
(2)鼠标悬停 hover
(3)鼠标点击,链接激活 active
(4)访问之后 visited
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS选择器</title>
<style>
/*状态1:未访问【link】,字体颜色为黑色,且无下划线*/
a:link{color: black;text-decoration: none}
/*状态4:访问过后,链接变为灰色,下划线消失*/
a:visited{color: gray;text-decoration: none}
/*状态2:鼠标悬停【hover】,字体颜色为蓝色,且出现下划线*/
a:hover{color:blue;text-decoration: underline}
/*状态3:鼠标点击【active】,链接激活,点击时字体变为黄色*/
a:active{color: yellow}
div{height:100px;background: blue}
div:hover{height: 200px;background: yellow}
</style>
</head>
<body>
<a href="https://www.baidu.com/">点击跳转百度</a>
<div></div>
</body>
</html>
三、CSS字体/文本
字体:font-family
字体大小:font-size
字体样式:font-style
字体粗细:font-weight
大小写:font-variant
复合样式:font
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体样式</title>
<style>
#box{
width:400px;
height:200px;
background: pink;
/* 文字大小:浏览器的文字大小最小为12px,谷歌默认大小是16px */
font-size: 20px;
/* 字体:谷歌默认字体是微软雅黑,火狐默认字体是宋体 */
font-family: 仿宋;
/* 文字艳色 */
color: blue;
/* 行高 行间距=(行高-字体大小)/2 只有一段文字时,可实现上下居中的效果,将line-height设置等于height即可 */
line-height: 200px;
/* 文本对齐 center:居中对齐;left:左对齐;right:右对齐 */
text-align: center;
/* 首行缩进 em代表一个字符宽度 */
text-indent: 2em;
/* 文字着重 bold:加粗;normal:原粗细 */
font-weight: bold;
/* 文字倾斜 italic:倾斜;normal:原样式 */
font-style: italic;
/* 文字修饰 underline:下划线;overline:上边线;删除线(中间线):line-through;无装饰:none */
text-decoration: underline;
/* 字母间距:每个字符文字之间的距离 */
letter-spacing: 10px;
/* 单词间距:解析空格,转换为设置的长度 */
word-spacing: 30px;
/* 英文字母单词大小写 */
font-variant: small-caps; /* 大小写的转化 */
}
</style>
</head>
<body>
<div id="box">块级标签 label</div>
</body>
</html>
运行结果:
四、CSS背景
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>背景样式</title>
<style>
#box{
width: 400px;
height: 400px;
/* 背景颜色 */
background-color: yellow;
/* 背景图片 */
background-image: url("pq.jpeg"); /* 准备一张图片,或者复制网页图片地址链接 */
/* 背景大小、尺寸【宽高】 让图片全部显示 */
/* 当只有一个参数时,它会按宽的比例去计算高度 */
background-size: 200px; /* 4张图片 */
/* 背景平铺、重复 no-repeat:不重复 repeat-x:x轴重复 repeat-y:y轴重复 */
background-repeat: no-repeat;
/* 背景定位 x轴、y轴移动,也可以是负像素 */
/* 当只有一个参数时,另一个未设置的参数默认居中 */
/*background-position: 40px 40px;*/
/* 上(top)下(bottom)左(left)右(right)居中(center) */
background-position: center;
/* background-position: 0 0 ; 0后可以不加px */
/* 百分号实现居中 */
/*background-position: 50% 50%;*/
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>
-
运行结果:
-
复合样式
将样式全部写在一起,从而起到简化的作用。复合样式的书写需要按照一定的规则,背景样式复合样式的填写顺序如下:颜色、图片、平铺、定位/大小。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>背景样式</title>
<style>
#box{
width: 400px;
height: 400px;
background: yellow url("pq.jpeg") no-repeat 0 0/400px;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
</html>
运行结果: