У меня есть гибкий макет с использованием начальной загрузки Twitter, в котором у меня есть строка с двумя столбцами. В первом столбце много содержимого, которое я хочу заполнить обычным образом. Во втором столбце есть только кнопка и текст, который я хочу выровнять по нижнему краю относительно ячейки в первом столбце.
Вот что у меня есть:
-row-fluid-------------------------------------
+-span6----------+ +-span6----------+
| | |short content |
| content | +----------------+
| that |
| is tall |
| |
+----------------+
-----------------------------------------------
Вот чего я хочу:
-row-fluid-------------------------------------
+-span6----------+
| |
| content |
| that |
| is tall | +-span6----------+
| | |short content |
+----------------+ +----------------+
-----------------------------------------------
Я видел решения, которые делают первый диапазон абсолютной высотой и позиционируют второй диапазон относительно него, но решение, в котором мне не нужно указывать абсолютную высоту моих div, было бы предпочтительнее. Я также готов полностью переосмыслить, как добиться того же эффекта. Я не замужем за использованием строительных лесов, мне это казалось наиболее разумным.
Этот макет как скрипка:
источник
Ответы:
Обратите внимание: для пользователей Bootstrap 4+ обратите внимание на решение Christophe (Bootstrap 4 представил flexbox, который обеспечивает более элегантное решение только для CSS). Следующее будет работать для более ранних версий Bootstrap ...
См. Http://jsfiddle.net/jhfrench/bAHfj/ для рабочего решения.
С положительной стороны:
pull-down
.А теперь плохие новости:
источник
.pull-left
и.pull-right
), не затрагивая братьев и сестер. Можно ли это сделать с помощью решения только для CSS?Это обновленное решение для Bootstrap 3 (хотя должно работать и для более старых версий), которое использует только CSS / LESS:
http://jsfiddle.net/silb3r/0srp42pb/11/
Вы устанавливаете font-size равным 0 в строке (в противном случае вы получите неприятное пространство между столбцами), затем удаляете плавающие столбцы, устанавливаете отображение
inline-block
, повторно устанавливаете их размер шрифта, а затемvertical-align
можете установить Что вам нужно.Не требуется jQuery.
источник
div
s значениеvertical-align: middle;
..myrow
) ... не означает ли это, что вы не можете иметь один столбец с выравниванием по верхнему краю, один столбец с выравниванием по нижнему краю и третий столбец с выравниванием по верхнему краю?Вы можете использовать flex:
источник
Вам нужно добавить стиль для
span6
чего-то вроде этого:и это ваша скрипка: http://jsfiddle.net/sgB3T/
источник
padding-left: 0
и поставьтеpadding-right: 0
все столбцы в этом ряду.Вот также директива angularjs для реализации этой функции
источник
Просто установите для родителя значение,
display:flex;
а для ребенка -margin-top:auto
. Это поместит дочерний контент в нижнюю часть родительского элемента, если родительский элемент имеет высоту больше, чем дочерний элемент.Нет необходимости пытаться вычислить значение,
margin-top
когда у вас есть высота родительского элемента или другого элемента, превышающего ваш интересующий дочерний элемент в родительском элементе.источник
Основываясь на других ответах, это еще более отзывчивая версия. Я внес изменения в версию Ивана для поддержки видовых экранов шириной <768 пикселей и для лучшей поддержки медленного изменения размеров окон.
источник
margin-top
значение 0, а затем снова устанавливать новое значение? Кроме того, почему эти вещи делаются двумяeach()
«петлями»?Это основано на решении cfx, но вместо того, чтобы устанавливать нулевой размер шрифта в родительском контейнере для удаления межстолбцовых пространств, добавленных из-за display: inline-block и необходимости их сброса, я просто добавил
в столбцы div для компенсации.
источник
Ну, я не так, как любой из этих ответов, мое решение той же проблемы в том, чтобы добавить следующее:
<div> </div>
. Итак, в вашей схеме это будет выглядеть так (более или менее), в моем случае никаких изменений стиля не потребовалось:источник
нужно добавить, если длина левой ячейки неизвестна?источник