Я пытаюсь найти наиболее эффективный способ выравнивания текста с div. Я пробовал несколько вещей, и ни одна из них не работает.
.testimonialText {
position: absolute;
left: 15px;
top: 15px;
width: 150px;
height: 309px;
vertical-align: middle;
text-align: center;
font-family: Georgia, "Times New Roman", Times, serif;
font-style: italic;
padding: 1em 0 1em 0;
}
<div class="testimonialText">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
html
css
vertical-alignment
shinjuo
источник
источник
Ответы:
Вертикальное центрирование в CSS
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
Краткое содержание статьи:
Для браузера CSS 2 можно использовать
display:table
/display:table-cell
для центрирования контента.Образец также доступен на JSFiddle :
Можно объединить хаки для старых браузеров (Internet Explorer 6/7) в стили с помощью
#
скрытия стилей от более новых браузеров:источник
table
несмотря на то, что я постоянно разбиваю сердца фанатов CSS. Большинство из них проектируют только простые блоги и статические сайты. Некоторые из нас создают программное обеспечение для бизнеса и нуждаются в плотном отображении данных, а наши пользователи больше заботятся о функциональности.table
, Сейчас дела обстоят лучше, но некоторые из нас, кто создает бизнес-веб-приложения, должны поддерживать старые браузеры (IE6 все еще используется на некоторых клиентах!), В то время как люди, которые создают блоги, могут жить в облаках и притворяться, что у всех в мире есть быстрое соединение, новый компьютер и последняя версия браузера X с CSS 3 и т. д. Пример: некоторые плагины Jira используют однострочные таблицы для разметки (или в любом случае)Вам нужно добавить
line-height
атрибут, и этот атрибут должен соответствовать высотеdiv
. В твоем случае:Фактически, вы могли бы удалить
height
атрибут вообще.Это работает только для одной строки текста , поэтому будьте осторожны.
источник
Вот отличный ресурс
С http://howtocenterincss.com/ :
Использование Flexbox
В соответствии с последним обновлением этой статьи, существует гораздо более простой способ центрирования чего-либо с помощью Flexbox. Flexbox не поддерживается в Internet Explorer 9 и ниже .
Вот несколько замечательных ресурсов:
JSFiddle с браузерными префиксами
Другое решение
Это от нуля и позволяет вам что угодно с шестью строками CSS
Этот метод не поддерживается в Internet Explorer 8 и ниже .
jsfiddle
Предыдущий ответ
Простой и кросс-браузерный подход, полезный, поскольку ссылки в отмеченном ответе немного устарели.
Энди Ховард - Как вертикально и горизонтально центрировать текст в неупорядоченном списке или в div
Поскольку мне не очень нравился Internet Explorer 7/6 для последнего проекта, над которым я работал, я использовал слегка урезанную версию (то есть удалил то, что заставляло его работать в Internet Explorer 7 и 6). Это может быть полезно для кого-то еще ...
JSFiddle
источник
height: x; line-height: x;
но чаще всего мне не нужно несколько строк текста. Вот почему я люблю это решение. Простой, многоразовый, кросс-браузерный, без js и требует лишь немного дополнительной наценки.height: 100px;
наheight: 100%;
для какli
и для.outerContainer
.Это легко с
display: flex
. При использовании следующего метода текст вdiv
будет центрирован вертикально:А если хотите, горизонтальный
Вы должны увидеть нужную вам версию браузера; в старых версиях код не работает.
источник
text-align: center
тоже необходимо, потому что длинная ширина текста заполнена и будет выровнена по левому краюЯ легко использую следующее для вертикального центрирования случайных элементов:
HTML:
CSS:
Это центрирует текст в моем
div
точном вертикальном центре 200 пикселей высотойdiv
. Обратите внимание, что вам может понадобиться использовать префикс браузера (как-webkit-
в моем случае), чтобы это работало для вашего браузера.Это работает не только для текста, но и для других элементов.
источник
position: absolute;
- Спасибо! NB. Возможно, вы захотите включить,-ms-transform
или IE добавит что-то еще-web-kit-transform
раньшеtransform
. Возможно, добавление-ms-transform
может решить проблему @ ToniMichelCaubet.Вы можете сделать это, установив отображение 'table-cell' и применив
vertical-align: middle;
:Однако это не поддерживается всеми версиями Internet Explorer в соответствии с этим отрывком, который я скопировал с http://www.w3schools.com/cssref/pr_class_display.asp без разрешения.
Замечания: . Значения «inline-table», «table», «table-caption», «table-cell», «table-column», «table-column-group», «table-row», «table-row» -группа "и" наследовать "не поддерживаются Internet Explorer 7 и более ранними версиями. Internet Explorer 8 требует! DOCTYPE. Internet Explorer 9 поддерживает значения.
В следующей таблице приведены допустимые отображаемые значения также по адресу http://www.w3schools.com/cssref/pr_class_display.asp .
источник
В наши дни (нам больше не нужен Internet Explorer 6-7-8), я бы просто использовал CSS
display: table
для этой проблемы (илиdisplay: flex
).Для старых браузеров:
Таблица:
Flex:
Это (на самом деле, было) мое любимое решение для этой проблемы (простой и очень хорошо поддерживаемый браузер):
источник
Попробуйте это, добавьте родительский div:
источник
Вот решение, которое лучше всего подходит для одной строки текста.
Он также может работать с многострочным текстом с некоторыми изменениями, если число строк известно.
Вот JSFiddle .
источник
источник
Вы можете выровнять текст по центру внутри div, используя Flexbox.
Вы можете узнать больше об этом в Полном руководстве по Flexbox .
источник
Проверьте это простое решение:
HTML
CSS
JSFiddle
источник
Есть более простой способ выровнять содержимое по вертикали, не прибегая к таблице / ячейке таблицы:
http://jsfiddle.net/bBW5w/1/
В него я добавил невидимый (width = 0) div, который принимает всю высоту контейнера.
Кажется, работает в Internet Explorer и Firefox (последние версии). Я не проверял с другими браузерами
И конечно же CSS:
источник
Это самое чистое решение, которое я нашел (Internet Explorer 9+), и добавляет исправление для проблемы «off by .5 pixel», используя
transform-style
другие опущенные ответы.Источник: Вертикально выровняйте что-нибудь всего с 3 строками CSS
источник
Простое решение для элемента незнания значений:
HTML
CSS
источник
Согласно ответу Адама Томата был подготовлен пример JSFiddle для выравнивания текста в div :
используя display: flex в CSS:
с другим примером и несколькими объяснениями в блоге .
источник
Авто наценки на элемент сетки.
Аналогично Flexbox, применение авто на полях к элементу сетки центрирует его по обеим осям:
источник
Flexbox отлично сработал для меня, центрируя несколько элементов внутри родительского div по горизонтали и вертикали.
HTML-код:
CSS-код:
код ниже размещает все элементы внутри parent-div в столбце, центрируя элементы по горизонтали и вертикали. Я использовал child-div, чтобы сохранить два элемента Anchor на одной строке (строке). Без дочернего элемента div все три элемента (Anchor, Anchor & Paragraph) располагаются внутри столбца parent-div друг над другом. Здесь только child-div укладывается в столбец parent-div.
источник
Использование:
С помощью этого трюка вы можете выровнять что угодно, если вы не хотите, чтобы это было по центру, добавьте «left: 0» для выравнивания по левому краю.
источник
HTML
CSS
источник
Используя flex, будьте осторожны с различиями в рендеринге браузеров.
Это хорошо работает как для Chrome, так и для Internet Explorer:
Сравните с этим, который работает только с Chrome:
источник
Это еще один вариант
div
использованияdiv
шаблонаcalc()
в CSS.Это работает, потому что:
position:absolute
для точного размещения вdiv
пределахdiv
div
потому что мы установили его на20px
.calc(50% - 10px)
на 50% - половина высоты для центрирования внутреннегоdiv
источник
Это прекрасно работает:
HTML
пререкаться
Без и с тегом изображения
<mat-icon>
(который является шрифтом).источник
Хм, очевидно, есть много способов решить это.
Но у меня есть
<div>
абсолютно позиционированныйheight:100%
(на самом делеtop:0;bottom:0
и фиксированной ширины) иdisplay:table-cell
просто не работал, чтобы центрировать текст по вертикали. Мое решение действительно требовало внутреннего элемента span, но я вижу, что многие другие решения также нуждаются в этом, поэтому я мог бы добавить его:Мой контейнер - это,
.label
и я хочу, чтобы число было по центру. Я сделал это,top:50%
установив абсолютно на и установивline-height:0
И CSS выглядит следующим образом:
Посмотрите это в действии: http://jsfiddle.net/jcward/7gMLx/
источник
Вы можете использовать CSS
flexbox
.источник
Использование сетки CSS сделало это для меня:
источник
Попробуйте встроить элемент таблицы.
источник
Есть несколько хитростей для отображения содержимого или изображения в центре div. Некоторые из ответов действительно хороши, и я полностью согласен с ними.
Абсолютное горизонтальное и вертикальное центрирование в CSS
http://www.css-jquery-design.com/2013/12/css-techniques-absolute-horizontal-and-vertical-centering-in-css/
Существует более 10 методик с примерами . Теперь вам решать, что вы предпочитаете.
Без сомнения,
display:table; display:table-Cell
это лучший трюк.Вот некоторые хорошие уловки:
Трюк 1 - с помощью
display:table; display:table-cell
HTML
CSS код
Трюк 2 - Используя
display:inline-block
HTML
Код CSS
Трюк 3 - Используя
position:relative;position:absolute
источник
CSS:
Добавьте этот класс к элементу, который содержит вещи, которые вы хотите выровнять по вертикали
источник
Если вам нужно использовать со
min-height
свойством, вы должны добавить этот CSS:источник