Скажем, у меня есть следующий код CSS и HTML:
#header {
height: 150px;
}
<div id="header">
<h1>Header title</h1>
Header content (one or multiple lines)
</div>
Раздел заголовка имеет фиксированную высоту, но содержимое заголовка может измениться.
Я бы хотел, чтобы содержимое заголовка было выровнено по вертикали к нижней части раздела заголовка, поэтому последняя строка текста «прилипает» к нижней части раздела заголовка.
Так что, если есть только одна строка текста, это будет выглядеть так:
----------------------------- | Заголовок заголовка | | | | содержимое заголовка (в результате в одну строку) -----------------------------
И если бы было три строки:
----------------------------- | Заголовок заголовка | | содержимое заголовка (что так | много чего идеально | охватывает три строки) -----------------------------
Как это можно сделать в CSS?
источник
p
элементом или, по крайней мере,span
display: table-cell
, илиtable-row
, илиtable
. Вам больше никогда не нужно использовать таблицы для чистого макета.Используйте позиционирование CSS:
Как отметил Клетус , вам нужно идентифицировать заголовок-контент, чтобы сделать эту работу.
источник
width = '100%'
к содержимому заголовка<span>
элементы имеютdisplay: inline;
по умолчанию, который не занимает всю ширину контейнера. Наиболее подходящим решением было бы изменить диапазон на a<div>
, который по умолчанию является блочным элементом.Если вы не беспокоитесь о старых браузерах, используйте flexbox.
Родительскому элементу необходимо установить тип отображения для flex
Затем вы устанавливаете дочерний элемент align-self в flex-end.
Вот ресурс, который я использовал для изучения: http://css-tricks.com/snippets/css/a-guide-to-flexbox/
источник
Я использую эти свойства, и это работает!
источник
table-cell
ломает много вещей. Как система сетки Bootstrap.col-md-12
больше не даст вам 100% див.Поработав с этой же проблемой в течение некоторого времени, я наконец-то нашел решение, отвечающее всем моим требованиям:
Решение просто принимает одно
<div>
, которое я называю «выравниватель»:CSS
HTML
Этот трюк работает, создавая высокий, тощий div, который выдвигает базовую линию текста к нижней части контейнера.
Вот полный пример, который достигает того, о чем просил ОП. Я сделал "bottom_aligner" толстым и красным только для демонстрационных целей.
CSS:
HTML:
источник
::before
правило, которое устраняет необходимость в дополнительном элементе. Мы использовали flex в конце, но это полезно, когда вы не можете.height
для поля / контейнера и его родительских элементов установлено значение (px,% или что-либо еще).Современный способ сделать это - использовать flexbox . Смотрите пример ниже. Вам даже не нужно заключать
Some text...
в какой-либо тег HTML, так как текст, непосредственно содержащийся во флекс-контейнере, оборачивается в анонимный флекс-элемент.Если есть только какой-то текст, и вы хотите выровнять вертикально по дну контейнера.
источник
position:absolute;
. Это решение отлично сработало для моего случая!Элементы inline или inline-block могут быть выровнены по низу элементов уровня блока, если высота строки родительского / блочного элемента больше, чем у встроенного элемента. *
разметка:
CSS:
* убедитесь, что вы находитесь в стандартном режиме
источник
источник
<h1>
внутри<p>
или<div>
я бы использовалjustify-content: space-between
.Вы можете просто добиться гибкости
источник
Если у вас есть несколько элементов динамической высоты, используйте значения отображения CSS таблицы и ячейки таблицы:
HTML
CSS
Я создал демонстрационную версию JSBin здесь: http://jsbin.com/INOnAkuF/2/edit
Демо также имеет пример того, как выровнять по центру по вертикали, используя ту же технику.
источник
Вот еще одно решение с использованием flexbox, но без использования flex-end для выравнивания снизу. Идея состоит в том, чтобы установить
margin-bottom
на h1 значение auto, чтобы перенести оставшийся контент вниз:Мы также можем сделать то же самое с
margin-top:auto
текстом, но в этом случае нам нужно обернуть его внутриdiv
илиspan
:источник
Вам не нужен абсолютный + относительный для этого. Это очень возможно при использовании относительного положения как контейнера, так и данных. Вот как ты это делаешь.
Предположим, высота ваших данных будет
x
. Ваш контейнер является относительным, а нижний колонтитул также относительным. Все, что вам нужно сделать, это добавить к своим даннымВаши данные всегда будут в нижней части вашего контейнера. Работает, даже если у вас есть контейнер с динамической высотой.
HTML будет таким
CSS будет таким
Живой пример здесь
Надеюсь это поможет.
источник
bottom: -webkit-calc(-100% + x);
делает?Вот гибкий способ сделать это. Конечно, он не поддерживается IE8, так как пользователь нуждался 7 лет назад. В зависимости от того, что вам нужно, с некоторыми из них можно покончить.
Тем не менее, было бы неплохо, если бы был способ сделать это без внешнего контейнера, просто выровнять текст внутри самого себя.
источник
очень простое решение, состоящее из одной строки, состоит в том, чтобы добавить высоту строки в div, имея в виду, что весь текст div будет идти снизу.
CSS:
HTML:
имейте в виду, что это практичное и быстрое решение, когда вы просто хотите, чтобы текст внутри div шел вниз, если вам нужно объединить изображения и прочее, вам придется кодировать немного более сложный и отзывчивый CSS
источник
если бы вы могли установить высоту оберточного div содержимого (# header-content, как показано в ответе другого), вместо всего #header, возможно, вы также можете попробовать этот подход:
HTML
CSS
показать на коде
источник
Кажется, работает:
HTML: я внизу
CSS:
источник
Все эти ответы, и ни один из них не сработал для меня ... Я не эксперт по флексбоксам, но это было довольно легко понять, это просто и легко понять и использовать. Чтобы отделить что-то от остального содержимого, вставьте пустой элемент div и дайте ему расти, чтобы заполнить пространство.
https://jsfiddle.net/8sfeLmgd/1/
Это реагирует, как и ожидалось, когда содержимое дна не имеет фиксированного размера, а также когда контейнер не имеет фиксированного размера.
источник
Я разработал способ, который намного проще, чем было упомянуто.
Установите высоту заголовка div. Затем внутри этого стиля свой
H1
тег следующим образом:Я работаю над сайтом для клиента, и дизайн требует, чтобы текст был в нижней части определенного div. Я добился результата, используя эти две строки, и он отлично работает. Кроме того, если текст расширяется, отступы останутся прежними.
источник
Я нашел это решение основанным на шаблоне запуска начальной загрузки по умолчанию
источник
источник
попробуйте с:
попробуйте изменить%, чтобы исправить это. Пример: 120% или 90% ... и т. Д.
источник
Сайт, который я только что сделал для клиента, запросил, чтобы текст нижнего колонтитула был верхним полем, а текст внизу, которого я достиг с помощью простого заполнения, должен работать для всех браузеров.
источник
padding: 0 30px
немного излишне, вы, возможно, также поместилиpadding: 30px
другие 2 объявления.padding: 60px 30px 8px;
,padding: 60px 30px 8px 30px;
четыре явныхpadding-
правила или даже предложение @ TheWaxMann все превосходят - и я хочу и могу это утверждать ;-)Идеальный кросс-браузерный пример, вероятно, вот этот:
http://www.csszengarden.com/?cssfile=/213/213.css&page=0
Идея состоит в том, чтобы отобразить div внизу и сделать его там. Часто простой подход заставляет липкий div прокручиваться вверх с основным содержанием.
Ниже приведен полностью рабочий минимальный пример. Обратите внимание, что не требуется хитрость для вложения div. Многие BR просто заставляют появиться полосу прокрутки:
Если вам интересно, что ваш код может не работать в IE, не забудьте добавить тег DOCTYPE вверху. Это важно для работы на IE. Кроме того, это должен быть первый тег, и над ним ничего не должно появляться.
источник
<br />
теги ...content-type
заголовком приведет к тому, что браузер выдаст ошибку синтаксического анализа xml.Кажется, работает:
Использование « меньше» делает решение головоломок CSS гораздо более похожим на кодирование, чем на… Я просто люблю CSS. Это настоящее удовольствие, когда вы можете изменить весь макет (не нарушая его :), просто изменив один параметр.
источник
Решение 2015
http://codepen.io/anon/pen/qERMdx
пожалуйста
источник