【问题标题】:Bootstrap row within nested column, responsive height嵌套列中的引导行,响应高度
【发布时间】:2016-10-01 07:46:10
【问题描述】:

我试图让灰色文本填充此列中剩余的可用空间,同时随着窗口大小(剩余的 100 像素左右)增大/缩小。灰色文本区域的底部应与左侧的大图像平齐。

我在想有一个 flexbox 解决方案,但似乎没有什么能很好地工作。

也许解决方案是从整个右列中删除 BS 类?并用更多的 css 来写这个部分?

img {width:100%}
.content-text {background:gray; margin-top:15px;}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
   <div class="container-fluid">

    <div class="row">

        <div class="col-md-6">

            <div class="content-box">
                <div class="item">
                    <a href="#">
                        <img class="content-img" src="http://c7.staticflickr.com/9/8192/8086114606_c8b71f3277_b.jpg" alt="" />
                    </a>
                </div>
            </div>

        </div><!-- col -->

        <div class="col-md-6">

            <div class="row">

                <div class="col-sm-6">
                    <div class="content-box">
                        <div class="item">
                            <a href="#">
                                <img class="content-img" src="http://c5.staticflickr.com/8/7350/14012783868_630bff261c_b.jpg" alt="" />
                            </a>
                        </div>
                    </div>

                </div><!-- col -->

                <div class="col-sm-6">

                    <div class="content-box">
                        <div class="item">
                            <a href="#">
                                <img class="content-img" src="http://c5.staticflickr.com/8/7350/14012783868_630bff261c_b.jpg" alt="" />
                            </a>
                        </div>
                    </div>

                </div><!-- col -->

            </div>

            <div class="row">

                <div class="col-md-6">
                    <div class="content-box">
                        <div class="item">
                            <div class="content-text">
                                <p>hello world</p>
                            </div><!-- content-text -->
                        </div><!-- item -->
                    </div><!-- content-box -->
                </div><!-- col -->

                <div class="col-md-6">

                    <div class="content-box">
                        <div class="item">
                            <div class="content-text">
                                <p>hello world</p>
                            </div><!-- content-text -->
                        </div><!-- item -->
                    </div><!-- content-box -->

                </div><!-- col -->

            </div><!-- row -->

        </div><!-- col -->

    </div><!-- row -->

    <div class="row">

        <div class="col-md-6">

            <div class="placeholder-box"></div>

        </div><!-- col -->

        <div class="col-md-6">

            <div class="row">

                <div class="col-md-6">

                    <div class="placeholder-box"></div>

                </div><!-- col -->

                <div class="col-md-6">

                    <div class="placeholder-box"></div>

                </div><!-- col -->

            </div><!-- row -->

        </div><!-- col -->

    </div><!-- row -->

</div><!-- container -->

【问题讨论】:

  • 什么是原始代码不起作用?您添加的上述自定义 css 可以根据需要填充整行。
  • 填满整个列 * 现在在描述中更正
  • 你能提供一个粗略的草图或图像来显示你想要的东西而不是上面的吗?
  • 添加了设计模型

标签: css twitter-bootstrap grid flexbox


【解决方案1】:

试试这个,不是我确定的最好的代码,而是我现在能想到的。

解决方法很简单:

  • 使用 flexbox 使前两个列高度相等
  • 然后将容器放入右列(其中包含 2 个小列 - 我在这里修改了您的 html 结构,希望它不会与您的意图出错)右列的全高
  • 在其中一个容器中添加背景
  • 使 content-text 区域具有边框顶部,使其看起来与 img 分开。

所有这些,您可以在下面的代码中更好地看到它。希望对您有所帮助!

img {width:100%}
.content-box {background-color: gray}
.content-text {border-top:15px solid white;}
.row-eq-height {display: flex; flex-wrap: wrap}
.fullHeight {display: flex}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
   <div class="container-fluid">
    <div class="row row-eq-height">
        <div class="col-md-6">
            <div class="content-box">
                <div class="item">
                    <a href="#">
                        <img class="content-img" src="http://c7.staticflickr.com/9/8192/8086114606_c8b71f3277_b.jpg" alt="" />
                    </a>
                </div>
            </div>
        </div><!-- col -->

        <div class="col-md-6 fullHeight">
            <div class="row fullHeight">
                <div class="col-sm-6 fullHeight">
                    <div class="content-box fullHeight">
                        <div class="item">
                            <a href="#">
                                <img class="content-img" src="http://c5.staticflickr.com/8/7350/14012783868_630bff261c_b.jpg" alt="" />
                            </a>
                          	<div class="content-text">
                                <p>hello world</p>
                            </div><!-- content-text -->
                        </div>
                    </div>
                </div><!-- col -->

                <div class="col-sm-6 fullHeight">
                    <div class="content-box fullHeight">
                        <div class="item">
                            <a href="#">
                                <img class="content-img" src="http://c5.staticflickr.com/8/7350/14012783868_630bff261c_b.jpg" alt="" />
                            </a>
                          	<div class="content-text">
                                <p>hello world</p>
                            </div><!-- content-text -->
                        </div>
                    </div>
                </div><!-- col -->
            </div>
        </div><!-- col -->
    </div><!-- row -->
    <div class="row">
        <div class="col-md-6">
            <div class="placeholder-box"></div>
        </div><!-- col -->
        <div class="col-md-6">
            <div class="row">
                <div class="col-md-6">
                    <div class="placeholder-box"></div>
                </div><!-- col -->
                <div class="col-md-6">
                    <div class="placeholder-box"></div>
                </div><!-- col -->
            </div><!-- row -->
        </div><!-- col -->
    </div><!-- row -->
</div><!-- container -->

【讨论】:

  • 文本区域的行为似乎与我的 sn-p 中的行为相同。
  • @mattbtay 抱歉,不在 chrome 中测试;再次查看我编辑的答案
猜你喜欢
  • 2014-09-04
  • 2015-01-06
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
相关资源
最近更新 更多