请在手机上查看以下页面:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width">
</head>
<body>
<div id="wide">WIDE</div>
<div id="fixed">FIXED</div>
</body>
</html>
CSS:
#wide {
background-color: blue;
width: 120px;
}
#fixed {
background-color: green;
position:fixed;
left: 0px;
bottom: 0px;
}
固定元素位于右下方,符合预期。但是,当您增加宽div 的宽度超过设备视口宽度(以css像素为单位)时,固定的div会消失。
为什么会这样?有没有办法防止这种行为?
进一步详情:
meta viewport
的情况相同,但阈值将是默认视口宽度980px。height: 100%
和min-height:100%
上尝试html
和body
的组合,但没有成功。答案 0 :(得分:0)
不确定这是否会对您有所帮助,但我已将document.addEventListener("keyup", () => {
// code to update the progressbar styles here
}, false);
添加到#wide。
这样你的div就不会超过最大宽度。
答案 1 :(得分:0)
在这里回答我自己的问题。
我不确定为什么没有渲染固定div。它与某种事实有关,即“宽”div溢出了body元素,导致视图缩小,并且身体最终比视口更高。我仍然认为移动浏览器应该像桌面浏览器一样显示固定元素。
我的修复:使用overflow-x: scroll
将宽内容包装在容器元素中。这在移动设备上运行良好,固定div再次显示,宽屏内容可以刷过。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width">
</head>
<body>
<div id="ctnr">
<div id="wide">WIDE</div>
</div>
<div id="fixed">FIXED</div>
</body>
</html>
CSS:
#ctnr {
overflow-x: scroll;
}
#wide {
background-color: blue;
width: 120px;
}
#fixed {
background-color: green;
position:fixed;
left: 0px;
bottom: 0px;
}