css2.1--笔记6(margin叠加、清除浮动)

解决margin叠加

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			#up,#down{
				width:200px;
				height: 200px;
				background: #FFC0CB;
				margin: 50px;
			}
			#wrop{
				width:100px;
				 height: 100px;
				 background: #6495ED;
				 margin:50px;  
				 overflow: hidden;
				 /*<!--border: 1px solid;-->*/
			}
			#inner{
				width:50px;
				 height: 50px;
				  background: paleturquoise;
				   margin:50px;
			}
		</style>
	</head>
	<body>
		<div id="up">up</div>
		<!--<div style="height: 1px"></div>
		<span></span>
		<br />-->
		<!--当然也可用加边框border或者overflow:hidden用来去除margin叠加-->
		<!--border: 1px solid;-->
		
		<div id="wrop" >
			<div id="inner"></div>
		</div>
		<div id="down">down</div>
	</body>
</html>

清除浮动

扩展小知识:

如何将一个文件夹下的html文件,转移到另一个文件夹下。

方法一:ctrl+c复制,ctrl+v粘贴

方法二:

扩展:

haslayout:

layout是Windows IE的一个私有概念,他决定了元素如何对其内容定位和尺寸计算,以及与其他元素的关系和相互作用。当一个元素“拥有布局”时,它会负责本身及其元素的尺寸和定位。而如果一个元素,“没有拥有布局”,那么他的尺寸和位置由最近的拥有布局的祖先元素控制。

必须说明的是,IE8及以上浏览器使用了全新的显示引擎,已经不在使用haslayout属性

因此haslayout属性只针对IE6\IE7

haslayout为什么会出现?

理论上,每个元素都应该控制自己的尺寸和定位,即每个元素都应该“拥有布局”,当然这只是理想状态。而对于早期的IE显示引擎来说,如果所有元素都“拥有布局”的话,会导致很大的性能问题。因此IE开发团队决定使用布局概念来减少浏览器的性能开销,即只将布局应用于实际需要的那些元素,所以出现了“拥有布局”,和“没有拥有布局”俩种情况

默认拥有布局元素

html、body、table、tr、td、img、hr、input、select、textarea、button、iframe、embed、object、applet、marquee

怎么触发haslayout

float:left或right

display:inline-block

position:absolute

width:除auto外任何值

height:除auto外任何值

zoom:除normal外任何值

writing-mode:tb-rl

在IE7中,以下属性也可以触发元素的haslayout

min-height:任意值

min-width:任意值

max-height:除none外任意值

max-width:除none外任意值

overflow:除visible外任意值,仅用于块级元素

overflow-x:除visible外任意值,仅用于块级元素

overflow-y:除visible外任意值,仅用于块级元素

position:fixed

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--清除浮动
			让浮动的子元素库撑开父级的高度
			01.直接给父元素加高度---缺点:扩展性不好
			02.通过开启BFC-----缺点:IE6、7及以下,没有BFC的,他只有haslayout这里的解决办法,使他拥有布局
			                        也就是说:overflow:hidden。之外,还要写zoom:1,缩放1
				浮动盒子的特点,定位盒子的特点:宽高都是由内容撑开的
			03.br标签清浮动----缺点:兼容性不高,ie6不支持,违反了结构,行为,样式相分离的原则
			04.空标签清除浮动----缺点:违反了结构,行为,样式相分离的原则,在IE6下有最小高度问题19px,解决:height:0,font-size:0,但是还是会有2px空隙
			05伪元素清除浮动---缺点:ie 6、7不支持伪元素,解决办法:开启haslayout:zoom=1
		-->
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			#wrap{
				border: 1px solid;
				/*想要撑开父级元素的高度,清除浮动,可以直接给父元素添加高度*/
				/*overflow: hidden;*/
				/*height: 300px;*/
				/*position: absolute;*/
				/*float: left;*/
			}
			#inner{
				float: left;
				width: 200px;
				height: 200px;
				background: pink;
			}
			.ss{
				*zoom: 1;
			}
			.ss:after{
				content: "";
				display: block;
				clear: both;
			}
		</style>
	</head>
	<body>
		<div id="wrap" class="ss">
			<div id="inner"></div>
		<!--<br clear="all" />-->
		<!--<div style="clear: both;"></div>-->
		</div>
		
	</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值