【问题标题】:Vertically aligning an image to the bottom inside a bootstrap “column”?在引导程序“列”内将图像垂直对齐到底部?
【发布时间】:2014-03-31 03:38:26
【问题描述】:

我正在尝试将 img 垂直对齐到包含 Bootstrap 底部

如何做到这一点?


示例

<div class="container-fluid" style="background-color: #00ff00">
    <div class="row">
        <div class="col-sm-offset-4 col-sm-4">
             <h1>green container</h1>
        </div>
    </div>
</div>

<div class="container-fluid" style="background-color: #ff0000">
    <div class="row">
        <div class="col-sm-offset-4 col-sm-4">
            <h1>red container with lots of</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
        </div>
        <div class="col-sm-4">
            <img src="http://dummyimage.com/200x200/00a/fff.png?text=I+want+to+touch+the+blue+container"/>
        </div>
    </div>
</div>

<div class="container-fluid" style="background-color: #0000ff">
    <div class="row">
        <div class="col-sm-offset-4 col-sm-4">
             <h1>blue container</h1>
        </div>
    </div>
</div>

JSFiddle

在上面的例子中,有三个容器。每个容器都有独特的颜色。我希望蓝色图像触摸底部的蓝色容器,而不是顶部的绿色容器。


如果答案能够从硬编程的图像尺寸中抽象出来,则加分。

【问题讨论】:

    标签: css layout twitter-bootstrap-3


    【解决方案1】:

    这可能不是您正在寻找的解决方案...但我能想到的唯一方法是将列绝对定位在行中。虽然这允许左侧的列成为动态高度,但它会失去响应能力......您可能必须为不同的媒体定义设置宽度。

    margin-top 将允许宽度响应,但会假定左侧为静态高度,我假设这也不是一个好的解决方案,因为您将文本放在左侧列中意味着您想要一个动态的高度。

    我敢说 TABLE??? 我知道,我知道,“可怕的想法”,对吗?但是&lt;td&gt;s 的高度与左侧的&lt;td&gt;s 和vertical-align:bottom; 一起拉伸。在 TD 内工作。不好的做法,或实用的解决方案,由您决定。

    <div class="row" style='position:relative;'>
        <div class="col-sm-offset-4 col-sm-4">
            <h1>red container with lots of</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
             <h1>lorem ipsum</h1>
        </div>
        <div class="col-sm-4" style='position:absolute;bottom:0;right:0;'>
            <img src="http://dummyimage.com/200x200/00a/fff.png?text=I+want+to+touch+the+blue+container"/>
        </div>
    </div>
    

    【讨论】:

    • 我们非常接近一个公认的答案。 :)I made a JSFiddle with your current solution。虽然蓝色图像现在一直紧贴底部蓝色容器,但在较窄的宽度上,图像会隐藏红色容器中的内容(缩小垂直的 JSFiddle 窗口框架会引起较小的宽度):last line i> 隐藏在图像后面。也许有一种方法可以在较小的屏幕上(除了 hackish .visible-xs/.hidden-xs)来恢复通常的 Bootstrap 将各个列相互对齐的行为?
    • @Abdull,当我说你失去响应能力时,它覆盖文本的事实就是我的意思。如果您希望它在较小的屏幕上堆叠,那么制作上述 hidden-xs 并使用 .visible-xs 添加新行是您最好的选择。否则,您将需要使用 JavaScript,这更像是一种 hack。没有办法让绝对定位的元素移开其他元素。一旦一个元素被绝对定位,它本质上就在它自己的世界中。
    • 这是我使用 Bootstrap 的 .visible-xs.hidden-xs 的解决方案。 jsfiddle.net/Abdull/b8kHf
    猜你喜欢
    • 2013-03-23
    • 2017-01-12
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2019-12-15
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多