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
 
