2021-08-15

css3导学

1.样式表
2.规则
3.选择器+声明块
4.声明
5.css属性+css属性值组成的键值对

*{
				margin: 0;
				padding: 0;
			}

一、选择器

1、基本选择器及其扩展

(1)基本选择器

通配符
id #

元素 元素名
后代 空格
分组 ,(结合符)
优先级是指css声明的优先级,而不是选择器的优先级

(2)子元素选择器

> 直接后代选择器

(3)相邻兄弟选择器

这被称为一个相邻兄弟选择器,它只会匹配紧跟着的兄弟元素

#wrap > #first + .inner {
				color: #f00;
			}
(4)通用兄弟选择器

在使用 ~ 连接两个元素时,它会匹配第二个元素,条件是它必须跟(不一定是紧跟)在第一个元素之后,而且他们都有一个共同的父元素

#wrap #first ~ div {
				border: 1px solid;
				/* color: pink; */
			}

2、属性选择器

(1)存在和值选择器

① [attr]: 该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何

div[name]{
				border: 1px solid;
			}

② [attr=val]: 该选择器仅选择 attr 属性被复制为 val 的所有元素

div[name="atguigu_qhf"]{
				border: 1px solid;
			}

③ [attr~=val]: 表示带有以 attr 命名的属性的元素,并且该属性是一个以空格作为分割的值列表,其中至少包含一个val

div[name~="atguigu"]{
				border: 1px solid;
			}
(2)子串值属性选择器

① [attr|=val]: 选择attr属性的值是val (包括val) 或以val-开头的元素

div[name|="atguigu"]{
				border: 1px solid;
			}

② [attr^=val]: 选择attr属性的值以val开头(包括val)的元素

div[name^="atguigu_qhf"]{
				border: 1px solid;
			}

③ [attr$=val]: 选择attr属性的值以val结尾(包括val)的元素

div[name$="atguigu"]{
				border: 1px solid;
			}

④ [attr*=val]: 选择attr属性的值中包含字符串val的元素

div[name*="atguigu"]{
				border: 1px solid;
			}

3、伪类与伪元素选择器

(1)链接伪类

link,visited,target是作用于链接元素的
① :link 表示作为超链接,并指向一个未访问的地址的所有锚
② :visited 表示作为超链接,并指向一个已访问的地址的所有锚
③ :target 代表一个特殊的元素,它的id是URI的片段标识符

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			a{
				text-decoration: none;
				color: deeppink;
			}
			div{
				width: 200px;
				height: 200px;
				background: pink;
				display: none;
				text-align: center;
				font: 50px/200px "微软雅黑";
			}
			:target{
				display: block;
			}
		</style>
	</head>
	<body>
		<a href="#div1">div1</a>
		<a href="#div2">div2</a>
		<a href="#div3">div3</a>
		<div id="div1">
			div1
		</div>
		<div id="div2">
			div2
		</div>
		<div id="div3">
			div3
		</div>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)动态伪类

由于a标签的:link和:visited可以覆盖所有a标签的状态,所以当:link,:visited,:hover,:active同时作用在a身上时,:link和:visited不能放在最后
① :hover 表示悬浮到元素上
② :active 表示匹配被用户激活的元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#test:hover{
				color: pink;
			}
			#test:active{
				color: red;
			}
		</style>
	</head>
	<body>
		<a href="javascript:alert('清除成功');">清除缓存</a>
	</body>
</html>

在这里插入图片描述
③ 隐私与:visited选择器
只有下列的属性才能被应用到已访问链接:
color
background
border-color

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			a{
				text-decoration: none;
				color: black;
				display: block;
			}
			a:hover{
				font-size: 24px;
				color: red;
			}
			a:link{
				font-size: 48px;
				color: green;
			}
			a:visited{
				font-size: 96px;
				color: pink;
			}
		</style>
	</head>
	<body>
		<a href="#">红红火火恍恍惚惚</a>
		<a href="#1">红红火火恍恍惚惚</a>
		<a href="#2">红红火火恍恍惚惚</a>
		<a href="#3">红红火火恍恍惚惚</a>
		<a href="#4">红红火火恍恍惚惚</a>
		<a href="#5">红红火火恍恍惚惚</a>
		<a href="#6">红红火火恍恍惚惚</a>
	</body>
</html>

在这里插入图片描述

(3)表单伪类

表单相关伪类 :
① :enabled 匹配可编辑的表单
② :disabled 匹配被禁用的表单
③ :checked 匹配被选中的表单
④ :focus 匹配获焦的表单

自定义单选按钮

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			label{
				position: relative;
				float: left;
				width: 100px;
				height: 100px;
				border: 2px solid;
				overflow: hidden;
				border-radius: 50%;
			}
			label > span{
				position: absolute;
				left: 0;
				top: 0;
				bottom: 0;
				right: 0;
			}
			input{
				position: absolute;
				left: -50px;
				height: -50px;
			}
			input:checked + span{
				background: pink;
			}
		</style>
	</head>
	<body>
		<label>
			<input type="radio" name="atguigu" />
			<span></span>
		</label><label>
			<input type="radio" name="atguigu" />
			<span></span>
		</label><label>
			<input type="radio" name="atguigu" />
			<span></span>
		</label>
	</body>
</html>

效果
在这里插入图片描述
在这里插入图片描述

(4)结构性伪类

nth-of-type 以元素为中心

nth-child系列nth-of-type系列
nth-child (index)nth-of-type (index)
first-childfirst-of-type
last-childlast-of-type
nth-last-child (index)nth-last-of-type (index)
only-childonly-of-type

② not 表示不选中
示例: 样式未选中最后一个a标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>not</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
				border: none;
			}
			a{
				text-decoration: none;
				color: #333;
				font-size: 14px;
				display: block;
				float: left;
				width: 100px;
				height: 30px;
			}
			div{
				width: 800px;
				margin: 0 auto;
			}
			div > a:not(:last-of-type){
				border-right: 1px solid red;
			}
		</style>
	</head>
	<body>
		<div>
			<a href="#">first</a>
			<a href="#">second</a>
			<a href="#">third</a>
			<a href="#">fourth</a>
			<a href="#">fifth</a>
		</div>
	</body>
</html>

效果
在这里插入图片描述
③ empty 表示内容为空,即什么内容都没有,连空格都不存在的元素
示例: 将内容为empty的元素背景标为粉色

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>empty</title>
		<style type="text/css">
			div{
				height: 200px;
				background: #abcdef;
			}
			div:empty{
				background: pink;
			}
		</style>
	</head>
	<body>
		<div></div>
		<div>Second</div>
		<div></div>
		<div>Third</div>
	</body>
</html>

效果
在这里插入图片描述

(5)伪元素选择器
伪元素作用
before指元素前面的伪元素
after指元素后面的伪元素
first-letter指元素内容的第一个字母
first-line指元素的第一行内容
selection指选定元素内容
root指html根元素

一个元素只有前后各一个伪元素,共两个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值