CSS学习——02

CSS复合选择器

后代选择器

后代选择器:又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在
后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		/* 
			元素1 元素2 { 
				属性:属性值
			}
		 */
		ul li {
			color: red;
		}
		
		</style>
	</head>
	<body>
		<ul>
			<li>后代选择器1</li>
			<li>后代选择器2</li>
			<li>后代选择器3</li>
		</ul>
	</body>
</html>

子类选择器

子类选择器: 子类选择器只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		/* 
			元素1 > 元素2 {
				属性:属性值
			}
		 */
		ul > a {
			color: red;
		}
		
		</style>
	</head>
	<body>
		<!-- 只有第一个<a>标签会发生改变 -->
		<ul>
			<a href="#">子类选择器</a>
			<li><a href="#">子类选择器</a></li>
		</ul>
	</body>
</html>

并集选择器

并集选择器: 可以选择多组标签,同事定义他们的样式 。标签中间用 “,” 隔开

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		/* 
			元素1 , 元素2 {
				属性:属性值
			}
		 */
		h1, h2 {
			color: red;
		}
		
		</style>
	</head>
	<body>
		<!-- <h1> <h2> 都会发生改变 -->
		<h1>并集选择器1</h1>
		<h2>并集选择器2</h2>
		<h3>并集选择器3</h3>
	</body>
</html>

链接伪类选择器

链接伪类选择器: 主要用于修改<a>标签的一些行为

a:link 选择所有未被访问的链接
a:visited 选择所有已被访问的链接
a:hover 选择鼠标指针位于其上的链接
a:active 选择活动链接(鼠按下未弹起的链接)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			a:link {
				color: black;
			}
			a:visited {
				color: red;
			}
			a:hover {
				color: blue;
			}
			a:active {
				color: yellow;
			}
		</style>
	</head>
	<body>
		<a href="#">链接伪类选择器</a>
	</body>
</html>

focus伪类选择器

伪类选择器: 用于获得焦点的表达元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			/* 
			 表单元素:focus {
				 属性:属性值
			 }
			 */
			input:focus {
				background-color: red;
			}
		</style>
	</head>
	<body>
		<!-- 当标签获取焦点时,背景变为红色 -->
		<input type="text"/>
	</body>
</html>

CSS元素分类

  根据元素的显示方式对元素进行分类,例如:<div>标签独占一行,被分为块元素<span>一行可以放多个,被分为行元素

块元素

特点:
 独占一行,下一个元素会另起一行
 可以设置高度、宽度、外边距和内边距
 宽度默认是容器(父级宽度)得100%

行内元素

特点:
 相邻行内元素在一行上,一行可以显示多个
 高度、宽度设置无效
 默认宽度是他本事内容的宽度
 行内元素只能容纳文本或其他行内元素

行内块元素

行内块元素: 在行内元素中有几个特殊的标签:<img/> <input/> <td>,它们同时具有块元素和行内元素的特点。

特点
 和相邻行内元素(行内块元素)在一行上,但是他们之间会有空白间隙。一行可以显示多个(行内块压损)
 默认宽度就是它本身的宽度
 高度、宽度、行高、外边距和内边距都是可以控制的

元素显示模式转换

元素显示模式转换: 在开发过程中可能会遇到将行内元素转缓存块元素,这时就需要进行类型转换。例如:在使用<a/>标签时,<a/>标签默认的高度并不是我们理想的高度(行内元素不能修改宽高),这时就可以将<a/>转行为快元素为其设置高度。

属性:display 可以修改元素类型
 block: 块元素
 inline: 行内元素
 inline-block: 行内块元素

<!DOCTYPE html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.balld {
				width: 200px;
				height: 100px;
				border: 1px solid red;
				/* 将行内元素转行为快元素   block:块元素*/
				display: block;
			}
			div {
				width: 200px;
				height: 100px;
				border: 1px solid red;
				/* 将块元素转换为行内元素    inline:行内元素*/
				display: inline;
			}
			span {
				width: 200px;
				height: 100px;
				border: 1px solid red;
				/* 将行内元素转行为行内块元素  inline-block:行内块元素*/
				display: inline-block;
			}
		</style>
	</head>
	<body>
		<a class="balld">元素类型转换1 设置宽高后生效</a>
		<div>元素类型转换2  设置的宽高未生效</div>
		<span>行内块元素  设置的宽高生效 并且一行可以放多个1</span>
		<span>行内块元素  设置的宽高生效 并且一行可以放多个2</span>
	</body>
</html>

CSS背景

CSS背景常用属性: 背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。

属性作用常用属性值备注
background-color定义标签背景色red
#FF0000
rgb(255,0,0)
预定义的颜色值:red
十六进制:#FF0000
RGB代码:rgb(255,0,0)
默认值:transparent 背景颜色为透明
background-image为标签添加背景图片url地址地址可以为项目指定目录下的图片
地址也可以为网络地址
background-repeat背景平铺repeat(平铺)
no-repeat(不平铺)
repeat-x(沿X轴平铺)
repeat-y(沿Y轴平铺)
background-image和ackground-repeat
一起使用
background-position背景图片位置background-position: x y
x和y代表 x坐标和y坐标
可以使用方位名词或者精确单位
精确单位:百分数 或 px值
方位名称:top、center、bottom、left、right
background-attachment背景图片固定scroll(背景图片是随对象内容滚动)
fixed(背景图片固定)
background背景属性符合写法顺序:背景颜色 背景图片地址 背景平铺
背景图片固定或滚动 背景图片位置

背景透明色:background : rgba(0,0,0,0.3) 第四位代表透明度

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.balld1 {
				width: 200px;
				height: 100px;
				/* 背景颜色 */
				background-color: red;
			}
			.balld2 {
				width: 200px;
				height: 100px;
				/* 背景图片 */
				background-image: url("https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw");
			}
			.balld3 {
				width: 200px;
				height: 100px;
				background-image: url("https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw");
				/* 不平铺
				background-repeat: no-repeat; */
				/* 平铺
				background-repeat: repeat; */
				/* 沿X轴平铺
				background-repeat: repeat-x; */
				background-repeat: repeat-y;
			}
			.balld4 {
				width: 300px;
				height: 300px;
				border: 1px solid red;
				background-image: url("https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw");
				background-repeat: no-repeat;/* 不平铺 */
				/* background-position: right top; 右上方 right top和top right 是等价的 和顺序无关*/
				/* background-position: right;     此时水平靠右,第二个参数省略Y轴 默认是垂直居住*/
				/* background-position: top;  此时一个参数top一定是Y轴 顶部对齐,第二个参数省略x 轴是 水平居中显示的 */
				/* background-position: 50% 50%; 图片在标签正中间 */
				/* background-position: 10px 30px; 根据px值精确定位 */
				/* background-position: right 20px; 混合定位   */
			}
			.balld5 {
				width: 100%;
				height: 300px;
				border: 1px solid red;
				background-image: url("https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw");
				background-repeat: no-repeat;
				background-position: 50% 50%;
				/* 背景图片固定 */
				background-attachment: scroll; /* scroll(背景图片是随对象内容滚动) fixed(背景图片固定)*/
			}
			body {
				background: transparent url("https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw") no-repeat fixed top;
			}
			.balld6 {
				width: 100%;
				height: 300px;
				background: rgba(0,0,0,0.3);
			}
			
		</style>
	</head>
	<body>
		<div class="balld1">背景颜色</div>
		<br />
		<div class="balld2">背景图片</div>
		<br />
		<div class="balld3">背景平铺</div>
		<br />
		<div class="balld4">背景图片位置</div>
		<br />
		<div class="balld5">背景图片固定</div>
		<br />
		<div class="balld6">背景透明度</div>
	</body>
</html>

CSS三大特性

层叠性
  相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题
层叠性原则:

  • 样式冲突,遵循原则就是就近原则,哪个样式离结构近,就执行哪个样式
  • 样式不冲突,不会层叠
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			
			div {
				background-color: red;
			}
			/* 该样式生效 */
			div {
				background-color: pink;
			}
		</style>
	</head>
	<body>
		<div>层叠性</div>
	</body>
</html>

继承性
   子标签会继承父标签的某些样式,如文本颜色和字号

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			
			div {
				color: red;
				font-size: 30px;
				height: 100px;
				border: 1px solid black;
			}
			p {
				border: 1px solid black;
			}
		</style>
	</head>
	<body>
		<div>
			<!-- p 标签会继承父标签div的样式,字体会为红色,字号50px 
			但并不是继承所有样式,父标签的高度就没继承
			通常继承的是字体的样式 以及color-->
			<p>继承性</p>
		</div>
	</body>
</html>

优先级
   当同一个元素指定多个选择器,就会有优先级产生。

  • 选择器相同,则执行层叠性
  • 选择器不同,则根据选择器权重执行

继承或者 * < 元素选择器 < 类选择器,伪类寻找器 < ID选择器 < 行内样式 < !important重要的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值