基于 % 的列的 Div 高度修复

发布于 2024-10-07 08:37:53 字数 512 浏览 3 评论 0原文

我有一个从以下地址开始的网页:http://digitalgenesis.com。 au/my%20sites/Digital%20Genesis/

基本上,我在使用 2 个流体容器的 2 列布局之后,将背景颜色均匀地显示到页脚。

然而,目前左栏仅在大量文本周围显示背景。下面列出了 2 列及其包含的 div 的代码,

#container{
 overflow: hidden;
 width: 100%;
}

#col1{
 float: left;
 width: 60%;
 background:red;
}

#col2{
 float: left;
 width:40%;
 background:blue;
}

我很困惑如何让左列显示红色背景全长的页面,

我应该求助于固定宽度的侧边栏以使其更容易吗?

I have a webpage i've started at following address: http://digitalgenesis.com.au/my%20sites/Digital%20Genesis/

Basically im after a 2 column layout with 2 fluid containers that display background colour down to footer evenly.

At the moment however the left column will only display a background around the ammount of text. The code for the 2 columns and its containing div are listed below

#container{
 overflow: hidden;
 width: 100%;
}

#col1{
 float: left;
 width: 60%;
 background:red;
}

#col2{
 float: left;
 width:40%;
 background:blue;
}

I'm stumped as to how i can get the left column displaying a red background full length of page

Should i just resort to a fixed width sidebar to make it easier?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑叹一世浮沉 2024-10-14 08:37:53

在 jsFiddle 上查看此示例。这种方法的工作原理是将背景与内容分开处理。它为每列引入了一个绝对定位的背景 div。背景使用百分比定位在浮动内容后面,并调整大小以填充父容器的高度。

注意:尽管我的示例托管在 jsFiddle,但此方法不涉及任何 javascript。它仅使用CSS

see this example on jsFiddle. That approach works by treating the backgrounds separately from the content. It introduces an absolute-positioned background div for each column. The backgrounds are positioned behind the floated content using percentages, and sized to fill the height of the parent container.

note: even though my example is hosted at jsFiddle, this method does not involve any javascript. It uses CSS only.

ぽ尐不点ル 2024-10-14 08:37:53

假列是一项值得研究的技术。

但我个人选择使用 javascript,因为它太简单了。

$.fn.equalHeights = function(px) {
    $(this).each(function(){ 
            var currentTallest = 0;
            $(this).children().each(function(i){
                    if ($(this).height() > currentTallest) { currentTallest = $(this).height(); }
            });
            if (!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm(); //use ems unless px is specified
            // for ie6, set height since min-height isn't supported
            if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'height': currentTallest}); }
            $(this).children().css({'min-height': currentTallest}); 
    });
    return this;
};

$('.equal-height').equalHeights();

大多数时候,同等高度 95% 的兼容性对我来说已经足够了。如果没有,我使用假列。尽管我相信当浏览器迎头赶上时,这个问题应该会在 HTML5/CSS3 中完全消失。

Faux Columns is a technique worth looking at.

But personally I chose to use javascript because it's just SO easy.

$.fn.equalHeights = function(px) {
    $(this).each(function(){ 
            var currentTallest = 0;
            $(this).children().each(function(i){
                    if ($(this).height() > currentTallest) { currentTallest = $(this).height(); }
            });
            if (!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm(); //use ems unless px is specified
            // for ie6, set height since min-height isn't supported
            if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'height': currentTallest}); }
            $(this).children().css({'min-height': currentTallest}); 
    });
    return this;
};

$('.equal-height').equalHeights();

95% compatibility for equal heights is good enough for me MOST of the time. If not, i use faux columns. Although I believe this problem should go away entirely with HTML5/CSS3 when the browsers catch up.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文