Подтвердить что ты не робот

Загрузочный текст 3 Выровняйте текст до нижней части Div

Я пытаюсь получить настройку в Bootstrap, которая будет выглядеть примерно так, где у меня есть текст, выровненный по нижней части изображения:

================================================
|                                              |
|    ####################                      |
|    ##THIS IS AN IMAGE##                      |
|    ####################   ...And some text!  |
|                                              |
================================================

Итак, я пробовал это:

<div class="row">
    <div class="col-sm-6">
        <img src="~/Images/MyLogo.png" alt="Logo" />
    </div>
    <div class="col-sm-6">
        <h3>Some Text</h3>
    </div>
</div>

Но я получаю нечто похожее на это, где текст выровнен по верхнему краю:

================================================
|                                              |
|    ####################  ...And some text!   |
|    ##THIS IS AN IMAGE##                      |
|    ####################                      |
|                                              |
================================================

Я пробовал несколько трюков с позиционированием, чтобы заставить его работать, но когда я это делаю, он ломает мобильность в первую очередь Bootstrap. Когда он рухнул до размера телефона, мне нужно, чтобы он привязался к этому:

==========================
|                        |
|  ####################  |
|  ##THIS IS AN IMAGE##  |
|  ####################  |
|                        |
|   ...And some text!    |
|                        |
==========================

Так что делать это как таблицу действительно не вариант.

EDIT: Здесь сценарий, любезно предоставленный Джозефом Марикле в комментариях: D http://jsfiddle.net/6WvUY/1/

4b9b3361

Ответ 1

Я думаю, что лучше всего использовать комбинацию абсолютного и относительного позиционирования.

Здесь сценарий: http://jsfiddle.net/PKVza/2/

учитывая ваш html:

<div class="row">
    <div class="col-sm-6">
        <img src="~/Images/MyLogo.png" alt="Logo" />
    </div>
    <div class="bottom-align-text col-sm-6">
        <h3>Some Text</h3>
    </div>
</div>

используйте следующий CSS:

@media (min-width: 768px ) {
  .row {
      position: relative;
  }

  .bottom-align-text {
    position: absolute;
    bottom: 0;
    right: 0;
  }
}

EDIT. Исправлены CSS и JSFiddle для мобильности и изменения идентификатора для класса.

Ответ 2

Я собрал некоторые идеи из другого вопроса SO (в основном из здесь и эта страница css)

Fiddle

Идея состоит в том, чтобы использовать относительное и абсолютное позиционирование, чтобы переместить линию вниз:

@media (min-width: 768px ) {
.row {
    position: relative;
}

#bottom-align-text {
    position: absolute;
    bottom: 0;
    right: 0;
  }}

Опция display:flex на данный момент является решением для того, чтобы div получил тот же размер, что и его родитель. С другой стороны, это ломает возможности бутстрапа для автоматической линии на небольших устройствах, добавляя класс col-sx-12. (Вот почему необходим медиа-запрос)

Ответ 3

Вы можете сделать это:

CSS

#container {
    height:175px;
}

#container h3{
    position:absolute;
    bottom:0;
    left:0;
}

Затем в HTML:

div class="row">
    <div class="col-sm-6">
        <img src="//placehold.it/600x300" alt="Logo" />
    </div>
    <div id="container" class="col-sm-6">
        <h3>Some Text</h3>
    </div>
</div>

Ответ 4

Здесь другое решение: http://jsfiddle.net/6WvUY/7/.

HTML:

<div class="container">
    <div class="row">
        <div class="col-sm-6">
            <img src="//placehold.it/600x300" alt="Logo" class="img-responsive"/>
        </div>
        <div class="col-sm-6">
            <h3>Some Text</h3>
        </div>
    </div>
</div>

CSS

.row {
    display: table;
}

.row > div {
    float: none;
    display: table-cell;
}

Ответ 5

Самый простой способ, который я тестировал, просто добавить <br>, как в следующем:

<div class="col-sm-6">
    <br><h3><p class="text-center">Some Text</p></h3>
</div>

Единственная проблема заключается в том, что дополнительный разрыв строки (сгенерированный этим <br>) генерируется, когда экран становится меньше, и он складывается. Но это быстро и просто.