飞舞妙画 2017-03-30 10:13 采纳率: 0%
浏览 1807
已结题

absolute定位元素的包含块问题

当absolute定位元素的祖辈元素都不是relative/absolute/fixed定位时,一直以为absolute元素是相对于视口定位的,跟fixed定位一样。但是实际情况是,absolute元素会随着文档的滚动而滚动,并不是在视口中固定不动的。那这种情况下absolute定位元素是相对于谁来定位的呢?
下面代码的效果怎么解释?(先向下滚动页面,然后点击页面使absolute元素定位。如果是相对于文档,那absolute元素应该是在文档的右下角。但实际上却不是)

 <html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>无标题文档</title>  
<style>  
html  
{  
    border-right:2px solid #f00;  
    width:200px;  
}  
body  
{  
    border-right:2px dotted #0f0;  
    width:100px;  
}  
div{  
    height:600px;  
}  
p.abPos{  
    position:absolute;  
    right:0px;  
    bottom:0px;  
    margin:0;  
    width:100px;  
    height:100px;  
    border:1px solid #00f;  
}  
</style>  
</head>  
<body>  
html宽度设为200px,右边框为红色;body宽度为100px,右边框为绿色;目标元素p(蓝色边框),绝对定位,包含块为视口,精确说包含块为窗口未滚动时的视口。  

<div>  
<p  width="300px" height="300px" id='target'></p>  
</div>  
<script>  
window.addEventListener('scroll',function(){  
    if(document.body.scrollTop>20){  
    document.getElementById('target').className='abPos';  
}  
});  
</script>  
</body>  
</html>
  • 写回答

5条回答 默认 最新

  • MiguelShang 2017-03-30 10:24
    关注

    相对于页面的。。图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急