CSS基础介绍(三)

display属性

  1. 通过display样式可以修改元素的类型
可选值作用
inline可以将一个元素作为内联元素显示
block可以将一个元素设置为块元素显示
inline-block将一个元素转换为行内块元素 1
none隐藏元素,并且元素不会再页面中继续占有位置
  1. 两种隐藏元素的方法
  • display:none; 使用该方式隐藏元素,元素不会再页面显示,并且不再占据页面位置
  • visibility可以用来设置元素隐藏和显示的状态
    可选值:
    * visible 默认值,元素默认会在页面显示
    * hidden 元素会不显示
  • 使用visibility: hidden;隐藏的元素虽然不会在页面中显示,但是它的位置依然会保持在页面中

overflow属性

  1. 子元素默认是存在父元素的内容区中,理论上讲子元素最大可以等于父元素内容区大小。
  2. 溢出的内容:如果子元素超过父元素的内容区,则超过的大小会在父元素以外的位置显示,超出父元素的内容,我们称为溢出的内容
  3. 父元素默认是将溢出内容,在父元素外面显示
  4. 通过overflow可以设置父元素如何处理溢出问题:
    可选值:
  • visible,默认值,不会对溢出内容做处理,元素会在父元素以外的位置显示
  • hidden,一处的内容会被修剪,不会显示
  • scroll,会为父元素添加滚动条,通过拖动滚动条来查看完整内容;该属性不管内容是否溢出,都会添加水平和垂直双方向滚动条
  • auto,会根据需求自动添加滚动条
    * 需要水平就添加水平
    * 需要垂直就添加垂直
    * 不需要就不添加

文档流

  1. 文档流处在网页的最底层,它表示的是一个页面中的位置,我们所创建的元素默认都处在文档流中
  2. 元素在文档流中的特点
    块元素
  • 块元素在文档流中会独占一行,块元素会自上向下排列
  • 块元素在文档流中默认是父元素的100%
  • 块元素在文档流中的高度,默认被内容(或子元素)撑开。
    内联元素
  • 内联元素在文档流中只占自身的大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则换到下一行,继续自左向右。
  • 在文档流中,内联元素的宽度默认都被内容(子元素)撑开
  1. 当元素的宽度为auto时,此时指定内边距不会影响可见框的大小,而会自动的修改宽度,以适应内边距

浮动

  1. 如果希望块元素在页面中水平排列,可以使块元素脱离文档流,使用float来使元素浮动,从而脱离文档
可选值作用
none默认值元素默认在文档流中排列
left元素会立即脱离文档流,向页面左侧浮动
right元素会立即脱离文档流,向页面右侧浮动
  1. 当一个元素设置为浮动以后(float是一个非none值),元素会立即脱离文档流,元素脱离文档流后,它下面的元素会立即向上移动。
  2. 元素浮动以后会尽量向页面的左上或右上漂浮,直到遇到父元素的边框或其他的浮动元素,停止
  3. 如果浮动元素上面是一个没有浮动的块元素,则浮动元素不会超过块元素
  4. 浮动的元素不会超过上面兄弟元素,最多一样齐
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.box1{
				float:right;                                                                                      
				width: 200px;
				height: 200px;
				background-color: red;
			}
			.box2{
				width: 200px;
				height: 200px;
				background-color: yellow;
			}
			.box3{
				width: 200px;
				height: 200px;
				background-color: green;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
	</body>
</html>

  1. 浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围,所以我们可以通过浮动设置文字环绕的效果
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.box1{
				width: 100px;
				height: 100px;
				background-color: #bfa;
				float: left;
			}
			.p1{
				height: 200px;
				background-color: yellow;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<p class="p1">最妙的是下点小雪呀。看吧,山上的矮松越发的青黑,树尖上顶着一髻儿白花,好像日本看护妇。山尖全白了,给蓝天镶上一道银边。山坡上,有的地方雪厚点,有的地方草色还露着,这样,一道儿白,一道儿暗黄,给山们穿上一件带水纹的花衣;看着看着,这件花衣好像被风儿吹动,叫你希望看见一点更美的山的肌肤。等到快日落的时候,微黄的阳光斜射在山腰上,那点薄雪好像忽然害了羞,微微露出点粉色。就是下小雪吧,济南是受不住大雪的,那些小山太秀气! 古老的济南,城里那么狭窄,城外又那么宽敞,山坡上卧着些小村庄,小村庄的房顶上卧着点雪,对,这是张小水墨画,也许是唐代的名手画的吧。 那水呢,不但不结冰,倒反在绿萍上冒着点热气,水藻真绿,把终年贮蓄的绿色全拿出来了。天儿越晴,水藻越绿,就凭这些绿的精神,水也不忍得冻上,况且那些长枝的垂柳还要在水里照个影儿呢!看吧,由澄清的河水慢慢往上看吧,空中,半空中,天上,自上而下全是那么清亮,那么蓝汪汪的,整个的是块空灵的蓝水晶。这块水晶里,包着红屋顶,黄草山,像地毯上的小团花的灰色树影。这就是冬天的济南。</p>
	</body>
</html>

  1. 在文档流中,子元素的宽度默认占父元素的全部,当元素设置浮动以后,会完全脱离文档流,块元素脱离文档流以后,宽度和高度都被内容撑开
  2. 内联元素设置浮动,脱离文档流以后会变成块元素

简单布局

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/*
			 * 清除默认样式
			 */
			*{
				margin: 0;
				padding: 0;
			}
			.header{
				width: 1000px;
				height: 120px;
				background-color: yellowgreen;
				/*
				 * 设置居中   
				 */
				margin: 0 auto;
				 
			}
			.content{
				width: 1000px;
				height: 400px;
				background-color: orange;
				margin: 10px auto;
			}
			.news{
				width: 200px;
				height: 100%;
				background-color: skyblue;
				float: left;
			}
			.inform{
				width: 580px;
				height: 100%;
				background-color: yellow;
				float: left;
				margin: 0 10px;
			}
			.detail{
				width: 200px;
				height: 100%;
				background-color: pink;
				float: left;
			}
			.footer{
				width: 1000px;
				height: 120px;
				background-color: silver;
				margin: 0 auto;
			}
			
		</style>
	</head>
	<body>
		<!--头部div-->
		<div class="header"></div>
		<!--主体内容div-->
      	<div class="content">
      		<div class="news"></div>
      		<div class="inform"></div>
      		<div class="detail"></div>
      	</div>
      	<!--底部信息div-->
		<div class="footer"></div>
	</body>
</html>

高度塌陷问题

链接: link.

清除浮动

  1. 有时我们希望清除掉其他元素浮动对当前元素产生的影响,这时可以使用clear来完成功能
  2. clear可以用来清楚其他元素浮动对当前元素的影响
可选值作用
none默认值,不清除浮动对其他元素的影响
left清楚左侧浮动元素对当前元素的影响
right清除右侧浮动元素对当前元素的影响
both清除两侧浮动元素中对当前元素的影响最大的

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.box1{
				width: 100px;
				height:100px;
				background-color: yellow;
				/*设置box1向左浮动*/
				float: left;
			}
			.box2{
				width: 200px;
				height:200px;
				background-color: yellowgreen;
				clear: left;
			}
			.box3{
				width: 300px;
				height:300px;
				background-color: skyblue;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
	</body>
</html>

未清除浮动前:
在这里插入图片描述
清除浮动后:
在这里插入图片描述

定位

  1. 定位:指的就是将指定的元素摆放到页面的任意位置。 通过定位可以任意的摆放元素。
  2. 通过position属性来设置元素的定位
可选值作用
static默认值,元素没有开启定位
relative开启元素的相对定位
absolute开启元素的绝对定位
fixed开启元素的固定定位(也是绝对定位的一种)
  1. 当开启了元素定位时(position的属性值是一个非static的值),可以通过left right top bottom 四个属性来设置元素的偏移量
属性作用
left元素相对于其定位位置的左侧偏移量
right元素相对于其定位位置的右侧偏移量
top元素相对于其定位位置的上侧偏移量
bottom元素相对于其定位位置的下侧偏移量

通常偏移量只需要使用两个,就可以对一个元素进行定位

相对定位

  • 相对定位:是相对于元素在文档流中原来位置进行定位
  • 当元素的position属性设置为relative时,开启元素的相对定位
  • 开启相对定位后的特点
  1. 开启相对定位以后,而不设置偏移量时,元素不会发生任何变化
  2. 相对定位的元素不会脱离文档流
  3. 相对定位会使元素提升一个层级
  4. 相对定位不会改变元素的性质,块元素还是块元素,内联元素还是内联元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.box1{
				width: 200px;
				height: 200px;
				background-color: red;
			}
			.box2{
				width: 200px;
				height: 200px;
				background-color: yellow;
				position: relative;
				left: 200px;
				top:200px;
			}
			.box3{
				width: 200px;
				height: 200px;
				background-color: yellowgreen;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
	</body>
</html>

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

绝对定位

  • 当position属性值设置为absolute时,则开启了元素的绝对定位
  • 绝对定位的特点:
  1. 开启绝对定位,会使元素脱离文档流。
  2. 开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化。
  3. 绝对定位是相对于离它最近的开启了定位的祖先元素进行定位的(一般情况,开启了子元素的相对定位都会同时开启父元素的相对定位);如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口进行定位。
  4. 绝对定位会使元素提升一个层级。
  5. 绝对定位会改变元素的性质:内联元素变成块元素,块元素的高度和宽度默认都被内容撑开。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.box1{
				width: 200px;
				height: 200px;
				background-color: red;
			}
			.box2{
				width: 200px;
				height: 200px;
				background-color: yellow;
				position: absolute;
				left: 200px;	
			}
			.box3{
				width: 300px;
				height: 300px;
				background-color: yellowgreen;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
	</body>
</html>

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

固定定位

  1. 当元素的positions属性设置为fixed时,则开启了元素的固定定位
  2. 固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
  3. 不同的是:
  • 固定定位永远都会相对于浏览器窗口进行定位
  • 固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动
  • IE6不支持固定定位
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			
			.box1{
					width: 200px;
					height: 200px;
					background-color: red;
				}
				.box2{
					width: 200px;
					height: 200px;
					background-color: yellow;
				position: fixed;
				}
				.box3{
					width: 300px;
					height: 300px;
					background-color: yellowgreen;
				}
		</style>
	</head>
	<body style="height: 5000px;">
		<div class="box1"></div>
		<div class="box4" style="width: 300px; height: 300px; background-color: orange;position: relative;">
			
			<div class="box2"></div>
		</div>
		<div class="box3"></div>
	</body>
</html>

元素层级

  1. 如果定位元素的层级是一样的,则下面的元素会盖住上面的元素(结构上的上下)
  2. 通过z-index可以设置元素的层级
  3. 对于没有开启定位的元素不能使用z-index
  4. 可以为z-index指定一个值,该值将会作为当前元素的层级;层级越高,越优先显示
  5. 父元素层级再高也不会盖过子元素
    示例
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/*
			 * 如果定位元素的层级是一样的,则下面的元素会盖住上面的元素(结构上的上下)
			 * 通过z-index可以设置元素的层级
			 * 对于没有开启定位的元素不能使用z-index
			 * 可以为z-index指定一个值,该值将会作为当前元素的层级
			 * 层级越高,越优先显示
			 */
			.box1{
				width: 200px;
				height: 200px;
				background-color: red;
				position: relative;
				z-index: 2;
			}
			.box2{
				width: 200px;
				height: 200px;
				background-color: yellow;
				/*开启绝对定位*/
				position: absolute;
				/*设置偏移量*/
				top: 100px;
				left: 100px;
				z-index: 25;
			}
			.box3{
				width: 200px;
				height: 200px;
				background-color: yellowgreen;
				/*position: relative;
				z-index: 3;*/
				position: absolute;
				top: 200px;
				left: 200px;
				z-index: 30;
			}
			.box4{
				width: 200px;
				height: 200px;
				background-color: orange;
				/*开启相对定位*/
				position: relative;
				/**
				 * 父元素层级再高也不会盖过子元素
				 */
				z-index: 20;
			}
			.box5{
				width: 100px;
				height: 100px;
				background-color: skyblue;
				/*开启绝对定位*/
				position: absolute;
				z-index: 10;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
		<div class="box4">
			<div class="box5"></div>
		</div>
	</body>
</html>

设置元素的透明背景(opacity)

  1. opacity可以用来设置元素背景的透明,
  2. 它需要一个0-1之间的值
  • 0表示完全透明
  • 1表示完全不透明
  • 0.5表示半透明
  1. opacity属性在IE8及以下的浏览器中不支持
  2. IE8及其以下的浏览器需要受用如下属性代替:
    alpha(opacity=透明度) 透明度需要0-100之间的值
  • 0表示完全透明
  • 100表示完全不透明
  • 50表示半透明
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.box3{
				width: 200px;
				height: 200px;
				background-color: yellowgreen;
				/*position: relative;
				z-index: 3;*/
				position: absolute;
				top: 200px;
				left: 200px;
				z-index: 30;
				opacity: 0.5;
				filter: alpha(opacity=50);
			}
		</style>
	</head>
	<body>
		<div class="box3"></div>
	</body>
</html>


  1. 可以使一个元素既有行内元素的特点又有块元素的特点,既可以设置宽高又不会独占一行。 <img />就是一个行内块元素。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值