Css 向下扩展侧边栏页面
我正在尝试填充右侧边栏,以扩展此站点上我的包装中的内容的完整长度: 我在它周围画了一个红色边框,试图看看我的右边在我的页面上的什么位置。我曾尝试与以下人员合作: 身高:100%在右侧和其他位置。我也在谷歌上搜索了一些清晰的修复方法,但我没有找到太多的工作,也在专家交换上找到了一些解决方案,但这些都不起作用Css 向下扩展侧边栏页面,css,xhtml,Css,Xhtml,我正在尝试填充右侧边栏,以扩展此站点上我的包装中的内容的完整长度: 我在它周围画了一个红色边框,试图看看我的右边在我的页面上的什么位置。我曾尝试与以下人员合作: 身高:100%在右侧和其他位置。我也在谷歌上搜索了一些清晰的修复方法,但我没有找到太多的工作,也在专家交换上找到了一些解决方案,但这些都不起作用 有什么办法可以让我的边栏扩展背景颜色以适应长度吗?你可以尝试这种方法:你不能得到一个div来填充它的父级的高度。它可以在一个浏览器中工作,但我遇到了这个问题,它不是简单地用高度来解决的:100
有什么办法可以让我的边栏扩展背景颜色以适应长度吗?你可以尝试这种方法:你不能得到一个div来填充它的父级的高度。它可以在一个浏览器中工作,但我遇到了这个问题,它不是简单地用高度来解决的:100% 您可以通过创建沿侧面平铺的背景来模拟背景。这不是最优雅的解决方案 我发现的唯一其他解决方案是使用javascript。加载页面后,您可以根据希望扩展的div的高度将div的高度精确设置为所需的高度
可能有一些javascript库可以帮助您定位这个麻烦的div,但我现在还不能想出一个。我还没有尝试过这个,但是…感觉它应该可以工作(这当然可能是一个致命的尝试):
左边的内容
右边的内容
它不太漂亮,但确实管用。虽然我不喜欢使用position:absolute
(或fixed
),但如果有人有更好的建议,我会选择它=)
顺便说一句,在:
(好吧,我撒谎了:我现在显然已经试过了…以下是我找到的解决这个问题的方法: 您必须使用四个div标记—一个包含侧栏、主要内容和页脚的主容器 首先,在样式表中添加元素并设置其样式:
#container {
width: 100%;
background: #FFFAF0;
}
.content {
width: 950px;
float: right;
padding: 10px;
background: #FFFAF0;
}
.sidebar {
width: 220px;
float: left;
padding: 5px;
background: #FFFAF0;
}
#footer {
clear:both;
background:#FFFAF0;
}
您可以随意编辑不同的元素,只需确保不更改页脚属性“clear:All”-这一点非常重要
然后,只需按如下方式设置您的网页:
<div id=”container”>
<div class=”sidebar”></div>
<div class=”content”></div>
<div id=”footer”></div>
</div>
我在[]上写了一篇更深入的博客文章。如果您有任何问题,请告诉我。希望这能有所帮助!我使用jQuery解决了我的管理页面的侧栏问题,只需几行代码
$('aside').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); // Extend sidebar to bottom of viewport
$(window).resize(function(){
$('aside').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); //change size of bar when viewport height changes
$('#main').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); //change size of main content when size of viewport changes
});
它似乎适用于所有浏览器,但是,当右侧的内容大于视口时,向下滚动时会出现问题。可以通过一些内容高度检查来解决,但对我来说这并不重要。希望这能帮助其他人=)您可以通过一个人造边栏来实现这一点:
<div class="sidebar_back"><.div>
<div class="sidebar">
<p>The sidebar content</p>
</div>
.sidebar\u back
将一直延伸到页面底部,因此只需指定侧边栏的颜色,实际的侧边栏div将显示为全高。您也可以使用基于百分比的宽度,而不是像素。下面是一个代码笔,显示了一个示例:
为父对象指定一个高度(不管您喜欢),并指定
位置:相对的;然后指定子对象的位置:绝对的(顶部:和底部:为0)它可以填充父母的高度。但不一定漂亮。这怎么会没有帮助?链接包含了问题的解决方案。你可以看到它在这里工作:它不会延伸到浏览器窗口的底部。感谢帮助我解决了我遇到的一个非常类似的问题的人。谢谢!
$('aside').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); // Extend sidebar to bottom of viewport
$(window).resize(function(){
$('aside').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); //change size of bar when viewport height changes
$('#main').height($(window).height()-($('#header').height()+$('#secondary_bar').height())-2); //change size of main content when size of viewport changes
});
<div class="sidebar_back"><.div>
<div class="sidebar">
<p>The sidebar content</p>
</div>
.sidebar_back {
top: 0;
left: 0;
bottom: 0;
z-index: -1;
width: 200px;
background: #444; // the color you want the sidebar to be
position: absolute;
}
.sidebar {
float: left;
width: 180px;
padding: 10px;
}