实训笔记day04

实习第四天笔记


综合选择器

后代选择器

后代选择的使用方法:d1 span {}(父代与子代之间用“空格”隔开)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	/*后代选择器*/
		.d1 span {
			color: blue;
		}
	/*选取class值为d1的标签的后代标签中,类型为span的标签*/
	</style>
</head>
<body>
	<div class="d1">
		<span>我是子级span</span>

		<div class="son">
		
			<span>我是孙级span</span>

			<div class="d2">
				<span>我是重孙子span</span>
			</div>
		</div>
	</div>
</body>
</html>

交集选择器

交集选择器的使用方法:

div.di {}:选中class值为di的div标签

em#i1 {}:选中id值为i1的em标签

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		/*选中div,并且这个div的class叫d1*/
		div.d1 {
			color: red;
		}
		/*选中em,并且这个em的id叫i1*/
		em#d1 {
			color:blue;
		}
	</style>
</head>
<body>

	<div class="d1">我的名字叫d1,我是一个div</div>

	<h1 class="d1">我的名字也是d1 ,但是我是一个h1</h1>


	<em id="i1">我是em,我的名字也是d1</em>

	<div>我是一个没有名字的div</div>
</body>
</html>

并集选择器

并集选择器的使用方法:

d1,#s1,p,em {}:标签名或class名或id名用“,”隔开。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		.d1,#s1,p,em {
			color: red;
		}
	</style>
	/*选中所有class名为d1 和 id名为s1 和 标签名为p,em的标签*/
</head>
<body>
	<div class="d1">小和尚下山去化斋</div>

	<p>
		连言有交代
	</p>

	<em>
		山下的沈钰是老虎 
	</em>

	<span id="s1">
		2232323
	</span>

</body>
</html>

子元素选择器

子元素选择器的使用方法:

#fa>em {}:选中id为fa的标签的直系子em标签

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		#fa>em {
			color: red;
		}
	</style>
	/*选中二级em标签*/
</head>
<body>
	<div id="fa">
		<em>我是二级em</em>

		<div class="son">
			<em>我是三级em</em>

			<div>
				<em>我是四级em</em>
			</div>
		</div>
	</div>

</body>
</html>

序列选择器

ul li {}:选择无序列表

ol li {}:选择有序列表

ul li:first-child{}:选择无序列表的第一个

ul li:last-child{}:选择无序列表的最后一个

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		ul li:first-child {
			color: red;
		}
		ul li:last-child {
			color: blue;
		}
		ol li {
			color:green;
		}
	</style>
</head>
<body>

	<ul>
		<li>li1</li>
		<li>li2</li>
		<li>li3</li>
		<li>li4</li>
		<li>li5</li>
	</ul>
	<ol>
		<li>li11</li>
		<li>li22</li>
		<li>li33</li>
	</ol>

</body>
</html>

兄弟选择器

相邻兄弟选择器:div+p {} 选择同一级且在div之后紧挨div标签的p标签。(两个兄弟标签中间不能有其他标签插入)

普通兄弟选择器:div~p {} 选择同一级且在div之后的p标签。(兄弟标签之间不必紧挨)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	/*相邻兄弟选择器*/
		/*div + p {
			color: red;
		}*/
	/*普通兄弟选择器*/
		div ~ p {
			color: red;
		}
		/*p + p {
			color: blue;
		}*/
	</style>
</head>
<body>
	<div>
		我是div
	</div>

	<p>我是p标签</p>
	<p>我是第二个p标签</p>
</body>
</html>

css的继承性

父元素的某些css属性会被子元素无条件的继承过去。

关于文字的css属性都可被继承:color,text-,line-,font-。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		.d1 {
			color: red;
		}
	</style>
</head>
<body>
	<div class="d1">
		<span>hello,world</span>
	</div>
</body>
</html>
<!-- 子标签span会继承父标签div的color属性,所以span标签内的文字颜色为红色 -->

css的层叠性

层叠能够解决css冲突的问题,通过比较权重的方式。

选择器权重大小:id > class > html (数量相同比较下一个)

示例1:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
						  					/*id  class html */
		#box1 .hezi2 p {					/* 1   1   1*/
			color: red;
		}

		div div #box3 p {  					/*1  0  3*/ 
			color: green;
		}

		div.hezi1 div.hezi2 div.hezi3 p { 	/*0 3 4 */ 
			color: blue;
		}
	</style>
</head>
<body>
	
	<div class="hezi1" id="box1">
		<div class="hezi2" id="box2">
			<div class="hezi3" id="box3">
				<p>文字颜色</p>
			</div>
		</div>
	</div>
</body>
</html>
<!-- 全部选中p,比较权重,第一个权重最大,故遵从第一个css,文字为红色 -->

示例2:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		#box1 .hezi2 p {
			color: red;
		}
		#box2 .hezi3 p {
			color: blue;
		}
	</style>
</head>
<body>
	<div class="hezi1" id="box1">
		<div class="hezi2" id="box2">
			<div class="hezi3" id="box3">
				<p>文字颜色</p>
			</div>
		</div>
	</div>
</body>
</html>
<!-- 全部选中,权重相同,遵从最后一个,故文字颜色为蓝色 -->

示例3:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		#hezi1 #hezi2 #hezi3 {
			color: purple;
		}

		div.box div.box div.box {
			color: green;
		}

		#hezi1 #hezi2 {
			color: red;
		}

		#hezi3 {
			color: blue;
		}
	</style>
</head>
<body>
	<div class="box" id="hezi1">
		<div class="box" id="hezi2">
			<div class="box" id="hezi3">
				<p>猜猜我是什么颜色?</p>
			</div>
		</div>
	</div>
</body>
</html>
<!-- 都未选中,比较远近,遵从最接近的,相同远近,再比较权重,故文字颜色为紫色 -->

示例4:

!important 的作用

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		.d1 {
			color: red;
			font-size: 20px;
		}
		#test {
			color: blue;
			font-size: 10px;

		}
		div {
			color: green !important;
			font-size: 100px;
		}
	</style>
</head>
<body>
	<div class="d1" id="test">
		hello,world
	</div>
</body>
</html>
<1-- !important能够把“单独属性”的权重变为无限大,尽量少用 -->

块级元素和行内元素

块级元素和行内元素的区别

  1. 行内元素不能够设置宽度和高度,行内元素的宽度和高度是标签内容的宽度和高度;块级元素可以设置宽度和高度。
  2. 块级元素会独占一行,而行内元素却不能独占一行,只能和其他的行内元素共用一行。
  3. 如果块级元素不设置宽度,那么块级元素会自动占满父元素的全部宽度。

目前所知道的行内元素和块级元素有:

块级元素和行内元素之间的转换

通过display属性,inline把块级元素变成行内元素,block把行内元素变成块级元素。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		.d0 {
			width: 300px;
			height: 300px;
			background-color: red; 
			display: inline; /*把块级元素变成了行内元素*/ 
		}

		.s1 {
			width: 300px;
			height: 300px;
			background-color: blue;
			display: block;/*将行内元素变成块级元素*/
		}
	</style>
</head>

<body>
	<div class="d0">Hello,Div</div>

	<span class="s1">hello,Span</span>	
</body>
</html>

而display的inline-block值可以变成行内块元素。

两个行内块元素之间会有一条约3px的缝,可以使用float属性去掉。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		em {
			width: 300px;
			height: 300px;
			background-color: green;
			display: inline-block; /*行内块元素*/
		}
		/*行内块元素之间会有一条约3px的缝,两个并排的图片之间也存在,可以用float去掉*/
		.d1 {
			width: 300px;
			height: 300px;
			background-color: red;
			display: inline-block;
			/*float: left;浮动*/
		}
		.d2 {
			width: 300px;
			height: 300px;
			background-color: blue;
			display: inline-block;
			/*float: left;*/
		}
		body {
			background-color: #000;
		}
	</style>
</head>
<body>
	<em>hello,Em</em> <a href="##">百度</a>
	<hr>
	
	<div class="d1"></div> 
	<div class="d2"></div> 
</body>
</html>
posted @ 2017-06-25 17:03  疯帽  阅读(134)  评论(0)    收藏  举报