CSS
一、CSS简介
1.什么是CSS?
CSS,Cascading Style Sheet层叠样式表
是一组样式设置规则,用于控制页面的外观样式
2.为什么使用CSS?
- 实现内容与样式的分离,便于团队开发
- 样式复用,便于网站的后期维护
- 页面的精确控制,让页面更精美
3.CSS作用
- 页面外观美化
- 布局和定位
二、基本用法
1.CSS语法
<head>
<style>
选择器{
属性名:属性值;
属性名:属性值;
}
</style>
</head>
- 选择器:要修饰的对象(东西)
- 属性名:修饰对象的哪个属性(样式)
- 属性值:样式的取值
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
p{
color:red;
}
h2{
color:blue;
}
</style>
</head>
<body>
<p>CSS从入门到精通</p>
<h2>主讲</h2>
</body>
</html>
2.CSS应用方式
也成为CSS引用方式,有三种方式:内部样式、行内样式、外部样式
2.1内部样式
也称为内嵌样式,在页面头部通过style标签定义
对当前页面当中所有符合样式选择器的标签都起作用
2.2行内样式
也称为嵌入样式,使用HTML标签的style属性定义
只对设置style属性的标签起作用
2.3外部样式
使用单独的CSS文件定义,然后在页面中使用<link标签>或者<@import指令>引入
-
使用<link标签>链接外部样式文件(推荐使用)
type属性可以省略
-
<@import指令>导入外部样式文件
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!-- 1.内部样式 -->
<style>
p{
color:red;
}
</style>
<!-- 外部样式 link标签链接样式文件 -->
<link rel="stylesheet" href="style/hello.css">
<!-- 外部样式 导入样式文件 -->
<style>
/* @import "style/hello.css"; */
/* @import url(style/hello.css); */
</style>
</head>
<body>
<p>welcome to CSS!</p>
<p>欢迎来到CSS课堂!</p>
<!-- 2.行内样式 -->
<h2 style="color: blue">WEB前端工程师</h2>
<h2>java发工程师</h2>
<div>哈哈</div>
<div>嘿嘿</div>
</body>
</html>
三、选择器
1.基础选择器
1.1标签选择器
也称为元素选择器,使用HTML标签作为选择器名称
以标签名作为样式应用的依据
1.2类选择器
使用自定义名称,以<.点号>作为前缀,然后通过HTML标签的class属性调用类选择器
以标签的class属性作为样式应用的依据
注意事项:
- 调用时不能添加<.点号>
- 同时调用多个类选择器时以<空格>分隔
- 类选择器定义时,名称不能以数字开头
1.3ID选择器
使用自定义名称,以<#>号作为前缀,然后通过HTML标签的id属性进行名称匹配
以标签的id属性作为样式应用的依据,一对一的关系
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
p{
color:red;
font-size:20px;
}
h2{
color:yellow;
}
/* 2.类选择器 */
.hello{
background:#cccccc;
}
.world{
font-weight:bold;
}
#heihei{
color:blue;
}
</style>
</head>
<body>
<!-- 给p标签中的内容设置样式 -->
<p>welcome to CSS!</p>
<p>hello world!</p>
<h2>WEB前端开发</h2>
<h3>java开发</h3>
<hr>
<!-- 我只想修改第一个p标签 -->
<p class="hello">welcome to CSS!</p>
<p>hello world!</p>
<h2>WEB前端开发</h2>
<h3>java开发</h3>
<!-- 只要应用了hello这个类选择器就生效,与标签无关 -->
<div class="hello">主讲</div>
<!-- div中既要有背景颜色,也要加粗文字 -->
<div class="hello world">主讲</div>
<span class="world">CSS从入门到精通</span>
<hr>
<h1 id="heihei">嘿嘿</h1>
</body>
</html>
2.复杂选择器
2.1复合选择器
标签选择器和类选择器、标签选择器和ID选择器,一起使用
必须同时满足两个条件才能应用样式
2.2组合选择器
也称为集体声明
将多个具有相同样式的选择器放在一起声明,使用逗号隔开
2.3嵌套选择器
在某个选择器内部设置选择器,通过空格隔开
只有满足层次关系最里面的选择器所对应的标签才会应用样式
注意:使用<空格>时不区分父子还是后代,使用CSS3中新增的”>”必须是父子关系才行
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
/*标签选择器和类选择器结合起来---复合选择器*/
h1.aaa{
color:red;
}
/* 标签选择器和ID选择器结合起来---复合选择器 */
p#bbb{
color:blue;
}
/*2.组合选择器 */
/*分开书写*/
/*合起来书写*/
h1,p,div,span,.ccc{
font-size:30px;
}
div{
background:#cccccc;
}
.ccc{
font-weight:bold;
}
/*3.嵌套选择器*/
div>p{
color:green;
text-decoration:underline;
}
/*对div内部的类选择器进行修饰*/
div h3.ddd{
color:pink;
}
</style>
</head>
<body>
<!-- 需求:修改class为aaa的h1 -->
<h1 class="aaa">welcome</h1>
<h4 class="aaa">CSS</h4>
<h1>hello</h1>
<hr>
<!-- 需求:修改ID属性为bbb的p标签 -->
<p id="bbb">world</p>
<p>html</p>
<h2 id="bbb">WEB开发</h2>
<hr>
<!-- 需求:将h1,p,div,span中内容的字号设置为30像素 -->
<h1>hello</h1>
<p>html</p>
<div>web开发</div>
<span class="ccc">java开发</span>
<hr>
<!-- 需求::设置div内部的p标签的样式 -->
<div>
<p>div内部的p标签</p>
<h3>div内部的h3标签</h3>
</div>
<hr>
<div>
<h2>
<p>div内部的h2标签内部的p标签</p>
</h2>
</div>
<hr>
<!-- 需求:修饰div内部的h3 -->
<div>
<p>div内部的p标签</p>
<h3 class="ddd">div内部的h3</h3>
<p class="ddd">pppp</p>
</div>
</body>
</html>
2.4伪类选择器
根据不同的状态显示不同的样式,一般用于标签
四种状态:
- :link 未访问的
- :visited 以访问的
- :hover 鼠标移动到链接上,即悬浮在链接
- :active 选定的链接,被激活
注意:默认超链接为:蓝色,下划线
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
/* a:link{
font-size:12px;
color:black;
text-decoration:none;
}
a:visited{
font-size:15px;
color:red;
}
a:hover{
font-size:20px;
color:blue;
}
a:active{
font-size:40px;
color:green;
} */
a:link,a:visited{
font-size:13px;
color:#666666;
text-decoration:none;
}
a:hover,a:active{
color:#ff7300;
text-decoration:underline;
}
/*普通标签,也可以使用伪类标签*/
p:hover{
color:red;
}
p:active{
color:blue;
}
</style>
</head>
<body>
<a href="02.css应用样式.html">IT教育,高教培训</a>
<p>css从入门到精通</p>
</body>
</html>
2.5伪元素选择器
:first-letter为第一个字符的样式
:first-line为第一行添加样式
:before 在元素内容的最前面添加的内容,需要配合content属性使用
:after 在元素内容的最后面添加的内容,需要配合content属性使用
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
p:first-letter{
color:red;
font-size:30px;
}
p:first-line{
background:yellow;
}
p:before{
content:"嘿嘿";
}
p:after{
content:"哈哈";
}
</style>
</head>
<body>
<p>hello world</p>
<hr>
<p>
hello world <br>
welcome to css
</p>
</body>
</html>
3.选择器优先级
3.1优先级
ID选择器>类选择器>标签选择器
原因:首先加载标签选择器,在加载类选择器。然后加载ID选择器,最后加载行内样式
后加载会覆盖先加载的同名样式
3.2内部样式加载顺序
就近原则
原因:按照书写顺序以此加载,在同优先级的前提下,后加载的会覆盖先加载的同名样式,所以离得越近越优先
3.3!important
可以使用!important使某个样式有最高的优先级
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div{
font-size:20px;
color:red;
}
.hello{
font-weight:bold;
color:blue!important;
}
#world{
text-decoration:underline;
color:green;
}
p{
color:red!important;
}
</style>
<link rel="stylesheet" href="style/world.css">
</head>
<body>
<div class="hello" id="world" style="color:pink">css从入门到精通</div>
<p>主讲</p>
</body>
</html>
四、常用CSS属性
1.字体属性
定义字体相关的样式
属性 含义 说明
font-size 大小、尺寸 可以使用多种单位
font-weight 粗细
font- family 字体名称
font-style 字体样式
font 简写
1.1font-size
取值:
- inherited:继承,默认从父标签继承字体大小(默认值),所有CSS属性默认值都是inter