javascript - 当绝对定位元素在浏览器窗口之外时扩展 "body"

标签 javascript html css

想象一个如下所示的 HTML 页面:

<body>
    <div class="main">
        <div class="free">aaa</div>
    </div>
</body>

free div是绝对定位的,它的位置在浏览器可见区域之外。因此,它会产生溢出,并显示滚动条。这没关系。

main div 应该与浏览器内的完整 区域一样大。它不应局限于可见区域。

html, body {
    height: 100%
}
.main {
    background-color: gray;
    width: 100%;
    height: 100%;
}
.free {
    position: absolute;
    width: 100px;
    height: 100px;
    left: 3000px;
    top: 3000px;
}

如您所见,http://jsfiddle.net/y79NS/12/ ,灰色 div 不会在“溢出区”中延伸。如果我向 html 和 body 元素添加静态宽度/高度,它会起作用,但我事先不知道它应该多大。

是否有纯 CSS 解决方案?如果不是,请记住用户可以随时调整浏览器大小,使用 Javascript 执行此操作的最佳方法是什么?

最佳答案

你只是在你的 CSS 中少了一个分号,如果你想隐藏 .free 也可以使用负边距:

html, body {
    height: 100%;
}
body {
 position: relative;
}
.main {
    background-color: gray;
    height: 100%;
    width: 100%;
}
.free {
    position: absolute;
    width: 100px;
    height: 100px;
    left: -3000px;
    top: -3000px;
}

http://jsfiddle.net/btipling/y79NS/17/

关于javascript - 当绝对定位元素在浏览器窗口之外时扩展 "body",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836234/

相关文章:

javascript - Nodejs/ExpressJs 和 Angular(单页应用程序)中基于 token 的授权

javascript - Firebase AppCheck 网络应用程序无法在生产模式下运行

javascript - 如何在 Javascript 中选择合适的后置摄像头?

html - slider 上方的导航栏

jquery - ajax 实时更新 div 元素中的文本

javascript - 使用 `content` 属性作为 HTML 模板

javascript - 未捕获的类型错误 : Cannot read property 'push' of null

javascript - 这个滚动功能可以吗?

jquery - 当 img 高度小于窗口高度时,CSS 或 jQuery 可缩放背景图像下方没有空白

css - 从右到右的背景位置百分比