gpt4 book ai didi

css - 带有可变高度双模块侧边栏的固定页眉和页脚

转载 作者:行者123 更新时间:2023-11-28 18:28:05 26 4
gpt4 key购买 nike

我有一个带有固定页脚和页眉的布局,我想要的是“信息框”div 的高度可变,并让“滚动 div”填充右栏中剩余的垂直高度。从this fiddle可以看出,如果我将 scrolling-div 的高度设置为 100%,它会变成与右列一样高,而不是剩余空间。

这是页面的 HTML:

<body>
<div id="header">
</div>
<div id="main-container">
<div id="page-content">
<div id="left-column">
</div>
<div id="right-column">
<div id="info-box">
This is a variable height div</div>
<div id="scrolling-div">
Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br /> Loads and loads of scrolling content<br /><br />

</div>
</div>
</div>
</div>
<div id="footer">
</div>
</body>

这是 CSS:

body {
height:100%;
width:100%;
margin:0;
padding:0;
}

#header {
position:fixed;
height:45px;
width:100%;
background-color:#FF0000;
top:0;
}

#footer {
position:fixed;
height:45px;
width:100%;
background-color: #FF00FF;
bottom:0
}

#main-container {
background:#00FF00;
position:absolute;
top:45px;
bottom:45px;
width:100%
}

#page-content {
width:960px;
position:relative;
margin: 0 auto;
background-color:#FFF000;
height:100%;
}

#left-column {
background-color:#444444;
width:400px;
height:100%;
float:left;
}

#right-column {
background-color:#0000FF;
float:right;
width:560px;
z-index:10000;
height:100%;
}

#info-box {
width:100%;
height:200px;
background-color:#0F0F0F;
color: #FFFFFF;
}
#scrolling-div {
background-color:#FFFFFF;
height:200px;
overflow:scroll;
}

再一次,link to the fiddle看看它的实际效果。

感谢您的帮助!

最佳答案

你可能需要依靠一些 JS 技巧来做到这一点 - 我正在考虑在 CSS 中使用 calc(),但意识到 #info-box 会高度可变。您可以使用一行简单的 jQuery 将 #scrolling-div 的高度设置为其父容器的高度减去其兄弟容器的高度:

$(document).ready(function() {
$("#scrolling-div").height($("#right-column").height()-$("#info-box").height());
});

如果您希望此设置面向 future (例如,如果您在容器中有多个同级),您可以改用以下函数:

$(document).ready(function() {
// Define some variables
var $sdiv = $("#scrolling-div"),
sibHeight = 0;

// Get sum of siblings height
$sdiv.siblings().each(function() {
sibHeight += $(this).height();
});

// Set own height to parent's height - sum of siblings height
$sdiv.height($sdiv.parent().height()-sibHeight);
});

我建议不要使用 overflow: scroll,而是使用 overflow-y: auto ;)

请在此处查看编辑后的 fiddle - http://jsfiddle.net/teddyrised/2qXZG/

关于css - 带有可变高度双模块侧边栏的固定页眉和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122686/

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