gpt4 book ai didi

html - 如何在没有两组滚动条的 HTML 页面顶部创建非滚动 div

转载 作者:技术小花猫 更新时间:2023-10-29 12:04:41 25 4
gpt4 key购买 nike

如何在没有两组滚动条的网页上创建看起来像 MS Office 2007 功能区的非滚动 div。一个用于窗口,一个用于 div。

最佳答案

试试这个:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fixed Header/Full Page Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body,
div {
margin: 0;
padding: 0;
}

body {
/* Disable scrollbars and ensure that the body fills the window */
overflow: hidden;
width: 100%;
height: 100%;
}

#header {
/* Provide scrollbars if needed and fix the header dimensions */
overflow: auto;
position: absolute;
width: 100%;
height: 200px;
}

#main {
/* Provide scrollbars if needed, position below header, and derive height from top/bottom */
overflow: auto;
position: absolute;
width: 100%;
top: 200px;
bottom: 0;
}
</style>
</head>
<body>
<div id="header">HEADER</div>
<div id="main">
<p>FIRST</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>MAIN</p>
<p>LAST</p>
</div>
<!--[if lt IE 7]>
<script type="text/javascript">
var elMain = document.getElementById('main');

setMainDims();
document.body.onresize = setMainDims;

function setMainDims() {
elMain.style.height = (document.body.clientHeight - 200) + 'px';
elMain.style.width = '99%'
setTimeout("elMain.style.width = '100%'", 0);
}
</script>
<![endif]-->
</body>
</html>

基本上,您所做的是从正文中删除滚动条并将滚动条应用于文档内的元素。那很简单。诀窍是让 #main div 调整大小以填充标题下方的空间。在大多数浏览器中,这是通过设置 topbottom 位置并保留 height 未设置来实现的。结果是 div 的顶部固定在标题下方,而 div 的底部将始终延伸到屏幕底部。

当然,总是有 IE6 来确保我们赚取薪水。在版本 7 之前,IE 不会从冲突的绝对位置派生维度。 Some people使用 IE 的 css 表达式来解决 IE6 的这个问题,但是这些表达式实际上是在每次鼠标移动时求值,所以我只是在调整大小事件上调整 #main div 的大小,并从其他浏览器中隐藏该 javascript block 使用条件注释。

将宽度设置为 99% 的行和将其设置回 100% 的 setTimeout 修复了 IE6 中的一点渲染异常,当您调整窗口大小时,水平滚动条偶尔会出现。

注意:您必须使用文档类型并让 IE 退出怪癖模式。

关于html - 如何在没有两组滚动条的 HTML 页面顶部创建非滚动 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com