css - 使用 bootstrap 的网格时,如何使列使用其父级高度的 100%?

标签 css twitter-bootstrap

我想在 bootstrap 中创建一个带有侧边栏和主要内容的布局。我现在正在使用以下 html(也在 this jsFiddle 中):

<!DOCTYPE html>
<html>
<head>
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
<style type="text/css">
    #sidebar {
        background-color: lightgreen;
    }
    #footer {
        background-color: lightblue;
    }
</style>
</head>

<body>
<div class="container">
    <div class="row">
        <div class="span4">
            <div id="sidebar">
                <ul>
                    <li><a href="http://www....">Home</a></li>
                    <li><a href="http://www..../faq">Questions</a></li>
                    <li><a href="http://www..../news">News</a></li>
                    <li><a href="http://www..../contact">Contact</a></li>
                </ul>
            </div>

        </div>
        <div class="span8" id="content">
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                Aenean in purus purus.
                Ut risus lorem, pharetra nec iaculis sit amet, blandit nec turpis.
                Aliquam dapibus orci ac sem viverra semper cursus ante varius.
                Vestibulum iaculis eleifend magna, sit amet blandit nibh dignissim pellentesque.
                Etiam suscipit accumsan tincidunt.
                Sed auctor, orci at pretium commodo, enim dui fermentum nulla, id blandit enim lacus non mi.
                Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
            </p>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                Aenean in purus purus.
                Ut risus lorem, pharetra nec iaculis sit amet, blandit nec turpis.
                Aliquam dapibus orci ac sem viverra semper cursus ante varius.
                Vestibulum iaculis eleifend magna, sit amet blandit nibh dignissim pellentesque.
                Etiam suscipit accumsan tincidunt.
                Sed auctor, orci at pretium commodo, enim dui fermentum nulla, id blandit enim lacus non mi.
                Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
            </p>

        </div>
    </div>
    <div class="row">
        <div class="span12" id="footer">
            Footer
        </div>
    </div>
</div>
</body>
</html>​

我想要的是:

Desired Result

然而我得到的是这样的:

Actual result

我该怎么做才能让侧边栏 div 一直向下?理想情况下不更改 html(仅更改 css),但如果不可能,我将采取任何措施。

最佳答案

您可以通过使用“填充”元素来实现这一点。

创建两个 CSS 类,一个名为 .filler(父类),另一个类带有一个名为 .fill::before 的伪元素:

.filler{
    position: relative;   
}

.fill::before{
    content: "";
    position: absolute;
    top:0;
    left: 0;
    width: inherit;
    margin: inherit;
    bottom: 0;
    background-color: lightgreen;
    z-index: -1;
}

然后您可以将 filler 类添加到 row 元素,将 fill 类添加到 span4 元素:

<div class="container">
    <div class="row filler">
        <div class="span4 fill">
            <div id="sidebar">
                <ul>
                    <li><a href="http://www....">Home</a></li>
                    <li><a href="http://www..../faq">Questions</a></li>
                    <li><a href="http://www..../news">News</a></li>
                    <li><a href="http://www..../contact">Contact</a></li>
                </ul>
            </div>
        </div>
    ....
</div>

关于css - 使用 bootstrap 的网格时,如何使列使用其父级高度的 100%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910208/

相关文章:

java - 在Java中,获取元素的样式属性使用值或计算值

HTML 表格单元格不响应百分比宽度,但响应像素宽度

html - 为什么我的导航栏以垂直方式添加菜单项?

html - 调整占位符文本大小以适应输入文本字段 Bootstrap

css - 具有静态宽度的 Bootstrap 表单内联 DropDownLists

css - 光滑箭头中的背景图像不会出现

css - 固定网格列,而其他更改

html - 如何在 css 中给 2 个不同的超链接不同的颜色

html - 如何使用纯 HTML/CSS 制作标签

javascript - 绝对定位div,防止背景滚动