包含块、初始包含块

浮动元素的包含块为其最近的块级祖先元素。

定位:

根元素的包含块(也称为初始包含块)由用户代理建立,在HTML中,根元素就是html元素,不过有些浏览器会使用body作为根元素。在大多数浏览器中,初始包含块是一个视窗大小的矩形,不等于视窗。

对于一个非根元素,如果其position值是relative或static,包含块则由最近的块级框构成。

对于一个非根元素,如果其position值是absolute,包含块设置为最近的position值不是static的祖先元素(可以是任何类型)。这个过程如下:

        如果这个祖先是块级元素,包含块则设置为该元素的内边距边界,也就是内容区域。

        如果没有祖先,元素的包含块定义为初始包含块。

 

应用:

(1)使用绝对定位来模拟固定定位

ie6下,fixed失效

解决思路:

系统的滚动条是在文档上,而不是在html,body上。

body下的元素当position为absolute时,包含块为初始包含块,当拉动系统滚动条时,包含块随之移动。

把系统滚动条禁止掉,给body加上滚动条,body成为元素的初始包含块。拉动滚动条,达到fixed的效果。

效果图:

拖动滚动条,元素位置没变:

html代码:

<body>
		<div id="test"></div>
		<div style="height: 1000px;"></div>
	</body>

css代码:

html{
				overflow: hidden;
				height: 100%;
			}
			
			body{
				overflow: auto;
				height: 100%;
			}
			
			#test{
				position: absolute;
				left: 50px;
				top: 50px;
				width: 100px;
				height: 100px;
				background: pink;
			}

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值