text-align | htmlbook.ru
CSS | Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS | |
2.1 | 6.0+ | 8.0+ | 1.0+ | 3.5+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
3 | 2.0+ | 11.6+ | 3.1+ | 3.6+ | 2.1+ | 2.0+ |
Краткая информация
Версии CSS
Описание
Определяет горизонтальное выравнивание текста в пределах элемента.
Синтаксис
CSS2.1 |
|
CSS3 |
|
Значения
- center
- Выравнивание текста по центру. Текст помещается по центру горизонтали окна браузера или контейнера, где расположен текстовый блок. Строки текста словно нанизываются на невидимую ось, которая проходит по центру веб-страницы. Подобный способ выравнивания активно используется в заголовках и различных подписях, вроде подрисуночных, он придает официальный и солидный вид оформлению текста. Во всех других случаях выравнивание по центру применяется редко по той причине, что читать большой объем такого текста неудобно.
- justify
- Выравнивание по ширине, что означает одновременное выравнивание по левому и правому краю. Чтобы произвести это действие браузер в этом случае добавляет пробелы между словами.
- left
- Выравнивание текста по левому краю. В этом случае строки текста выравнивается по левому краю, а правый край располагается «лесенкой». Такой способ выравнивания является наиболее популярным на сайтах, поскольку позволяет пользователю легко отыскивать взглядом новую строку и комфортно читать большой текст.
- right
- Выравнивание текста по правому краю. Этот способ выравнивания выступает в роли антагониста предыдущему типу. А именно, строки текста равняются по правому краю, а левый остается «рваным». Из-за того, что левый край не выровнен, а именно с него начинается чтение новых строк, такой текст читать труднее, чем, если бы он был выровнен по левому краю. Поэтому выравнивание по правому краю применяется обычно для коротких заголовков объемом не более трех строк. Мы не рассматриваем специфичные сайты, где текст приходится читать справа налево, там возможно подобный способ выравнивания и пригодится.
- auto
- Не изменяет положение элемента.
- inherit
- Наследует значение родителя.
- start
- Аналогично значению left, если текст идёт слева направо и right, когда текст идёт справа налево.
- end
- Аналогично значению right, если текст идёт слева направо и left, когда текст идёт справа налево.
Пример
HTML5CSS2.1IECrOpSaFx
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>text-align</title> <style> div { border: 1px solid black; /* Параметры рамки */ padding: 5px; /* Поля вокруг текста */ margin-bottom: 5px; /* Отступ снизу */ } #left { text-align: left; } #right { text-align: right; } #center { text-align: center; } .
content { width: 75%; /* Ширина слоя */ background: #fc0; /* Цвет фона */ } </style> </head> <body> <div><div>Выравнивание по левому краю</div></div> <div><div>Выравнивание по центру</div></div> <div><div>Выравнивание по правому краю</div></div> </body> </html>
Результат данного примера показан на рис. 1.
Рис. 1. Выравнивание текста в браузере Safari
Internet Explorer до версии 7.0 включительно несколько иначе трактует данный пример, чем другие браузеры, выравнивая не только текст, но и блоки (рис. 2).
Рис. 2. Выравнивание текста в браузере Internet Explorer 7
Объектная модель
[window.]document.getElementById(«elementID»).style.textAlign
Браузеры
IE до версии 7.0 включительно выравнивает не только содержимое блочного элемента, но и сам элемент.
Выравнивание текста по центру, ширине и по краям
По умолчанию текст на веб-страницах выровнен по левому краю элемента, в котором он располагается, однако используя свойство text-align, можно переопределить, как будут выравниваться строки текста относительно границ элемента.
- left — выравнивает текст по левому краю.
- right — выравнивает текст по правому краю.
- center — выравнивает текст по центру.
- justify — выравнивает текст по ширине, в таком тексте оба конца строки размещаются вплотную к внутренним краям элемента. Пробелы между словами в этом случае корректируются браузером так, что бы длина всех строк была строго одинаковая.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Название документа</title> <style> h2 { text-align:center; } p.date { text-align:right; } p.main { text-align:justify; } /*значение justify растягивание текста по ширине*/ p { text-indent:30px; } /*задаем размер отступа для первой строки абзаца*/ </style> </head> <body> <h2>Пример выравнивания текста</h2> <p>февраль, 2012</p> <p>Помимо выравнивания текста, для первой строки абзаца был задан небольшой отступ, который визуально добавляет "красную строку" к тексту.Этот эффект очень пригодится на страницах с большими объемами текста, облегчая визуальное восприятие.</p> </body> </html>
Примечание: свойство text-align работает только с блочными элементами, такими как абзац или div, выравнивая внутри них все строчное содержимое, включая изображения. Применение свойства к строчным элементам, таким как ссылка или span, не даст никакого эффекта.
С этой темой смотрят:
выравнивание текста по горизонтали — учебник CSS
В таких программах, как, например, Microsoft Word вы наверняка встречали инструменты выравнивания текста по горизонтали. Выровнять текст можно по левому или по правому краю, по центру или по ширине. То же самое есть и в CSS – выравнивание текста производится с помощью свойства
и соответствующих значений, которые показаны в таблице:
Как необходимо выровнять текст? | Подходящее значение |
---|---|
По левому краю | left |
По правому краю | right |
По центру страницы/блока | center |
По ширине страницы/блока | justify |
Выравнивание текста по тому краю, с которого он начинается (то есть текст, идущий слева направо, выравнивается по левому краю) | start |
Выравнивание текста по противоположному краю (то есть текст, идущий слева направо, выравнивается по правому краю) | end |
Пример записи стиля:
p { text-align: left; }
Рекомендации по использованию стилей
- Значения left, right и center
- Текст, выровненный по левой стороне, практически всегда хорошо выглядит на веб-страницах и удобно читается. Выравнивание по правому краю в европейских языках, как правило, используется редко, однако совсем бесполезным его назвать нельзя: такой стиль пригодится для красивого оформления подписей к фото или цитатам, выравнивания содержимого ячеек таблиц или небольших фрагментов текста. Для этих же целей часто используется значение
. - Значение justify
- Выравнивание текста в CSS по ширине (
justify
) можно применять для печатных версий страниц, но не рекомендуется увлекаться этим стилем на веб-страницах, созданных для просмотра на мониторе. Почему? На первый взгляд – выровненный по ширине текст выглядит красиво и ровно, как колонка в газете. Но чтобы так растянуть текст, браузеру приходится добавлять дополнительное пространство между словами, вследствие чего в тексте могут образовываться некрасивые зазоры, затрудняющие чтение. В программах, предназначенных для подготовки данных к печати, происходит намного более тонкая настройка интервалов в тексте, а также нередко используется перенос слов, чего нет во многих браузерах. - Значения start и end
- Значения
start
иend
для свойстваtext-align
внедрены в CSS3 и работают практически так же, какleft
иright
, но есть разница. Применив значениеstart
к тексту, который идет слева направо (LTR – left-to-right), выравнивание будет по левому краю (соответственно, для текста, идущего справа налево (RTL – right-to-left), выравнивание будет по правому краю). Логично, что значение
работает противоположным образом (то есть выравнивает по правому краю LTR-текст и по левому краю – RTL-текст). Эти два значения не поддерживаются некоторыми браузерами, включая Internet Explorer, поэтому, если нет острой необходимости в их применении, рекомендуем использовать значения endleft
иright
.
На скриншотах показаны примеры использования различных значений для свойства CSS text-align:
Далее в учебнике: стиль для списков: свойство CSS list-style и его производные.
Как поставить текст посередине в html : Радиосхема.ру
Не знаете как выровнять текст по центру в HTML? Отцентрировать текст в HTML можно, используя тег или применив выравнивание текста по центру CSS .
Один из способов отцентрировать текст – заключить его в теги :
Вставка этого текста в HTML-код приведет к следующему результату:
Примечание: Сегодня тег признан устаревшим. И хотя он все еще работает, ожидается, что он будет удален. Для центрирования текста мы рекомендуем использовать CSS .
Использование свойства CSS
Можно отцентрировать текст при помощи CSS задав элементу, который должен быть отцентрирован, свойство text-align .
Центрирование нескольких блоков текста
Если у вас один или несколько текстов по центру блока CSS , которые необходимо отцентрировать, можно сделать это, добавив атрибут style к открывающему тегу элемента и использовав свойство text-align . В примере, приведенном ниже, мы добавили их к тегу
Заметьте, что для свойства text-align мы установили значение center , которое означает, что элемент необходимо выровнять по центру.
Несколько блоков текста
Как выровнять текст по центру CSS , если много блоков текста? Вы можете использовать тег в секции head ( или во внешней таблице стилей ), чтобы отцентрировать каждый элемент.
Текст будет отцентрирован внутри каждой пары тегов
. Если необходимо выровнять по центру только несколько параграфов, тогда можно создать класс CSS , как это показано ниже:
Если вы создадите класс center , как показано в предыдущем примере, параграф может быть отцентрирован с помощью приведенного ниже кода, который « вызывает » класс center :
Совет : Созданный класс для CSS выравнивания текста по центру блока можно использовать для любого HTML-тега . Например, если вы хотите, чтобы заголовок располагался по центру, добавьте class=»center» в тег
Выравнивание текста определяет его внешний вид и ориентацию краев абзаца и может выполняться по левому краю, правому краю, по центру или по ширине. Наиболее распространенный вариант — выравнивание по левому краю, когда слева текст сдвигается до края, а правый остается неровным. Выравнивание по правому краю и по центру в основном используется в заголовках и подзаголовках. Следует иметь в виду, что при использовании выравнивания по ширине, в тексте между словами могут появиться большие интервалы, что не очень красиво.
Для установки выравнивания текста обычно используется тег параграфа
с атрибутом align , который определяет способ выравнивания. Также блок текста допустимо выравнивать с помощью тега
- left — выравнивание по левому краю, задается по умолчанию;
- right — выравнивание по правому краю;
- center — выравнивание по центру;
- justify — выравнивание по ширине (одновременно по правому и левому краю). Это значение работает только для текста, длина которого более, чем одна строка.
Атрибут align можно применять как для текста, так и для заголовков (пример 7.4).
Пример 7.4. Способы выравнивания текста
Результат данного примера показан на рис. 7.4.
Смотрите также указатель всех приёмов работы.
Центрирование
Общая функция CSS — центрирование текста или изображения. Фактически, существует три вида центрирования:
- Центрирование строк текста
- Центрирование текстового блока или изображения
- Центрирование текстового блока или изображения по вертикали
В последних реализациях CSS вы можете также использовать возможности Уровня 3 (CSS3), позволяющие выровнять по центру абсолютно позиционированные элементы:
- Выравнивание по вертикали в уровне 3
- Выравнивание по вертикали и горизонтали в уровне 3
- Выравнивание в области просмотра в уровне 3
Центрирование строк текста
Самый распространённый и (потому) самый лёгкий тип центрирования — это центрирование строк текста в абзаце или заголовке. Для этого CSS обладает свойством ‘text-align’:
которое отображает каждую строку в абзаце P или заголовке h3 по центру между полями, вот так:
Все строки в этом абзаце выровнены по центру полями абзаца. Это стало возможным благодаря значению ‘center’ свойства CSS ‘text-align’.
Центрирование блока или изображения
Иногда центрировать нужно не текст, а блок в целом. Или, по-другому говоря: мы хотим, чтобы правое и левое поля были одинаковыми. Для этого нужно установить поля на ‘auto’. Это обычно используется для блоков с фиксированной шириной, потому что если блок сам по себе гибкий, он просто займёт всю доступную ширину. Вот пример:
Этот довольно узкий блок текста центрирован. Заметьте, что строки внутри блока не центрированы (они выровнены влево), в отличие от предыдущего примера.
Этот метод также можно использовать для центрирования изображения: поместите его в собственный блок и примените свойства полей. Например:
Следующее изображение центрировано:
Вертикальное центрирование
Пример, приведенный ниже, демонстрирует центрирование абзаца внутри блока, который имеет определенную заданную высоту. Отдельный пример показывает абзац, который центрирован вертикально в окне браузера, потому что находится внутри блока, позиционированного абсолютно и по высоте окна.
Этот маленький абзац центрирован вертикально.
Центрирование по вертикали в CSS уровня 3
Уровень 3 CSS предлагает и другие возможности. На момент написания этой статьи (2021 год), хороший способ вертикального выравнивания блока без использования абсолютного позиционирования (что может приводить к частичному перекрытию текста) всё ещё обсуждается. Но если вам известно, что частичное перекрытие текста не станет проблемой в вашем документе, вы можете использовать свойство ‘transform’, чтобы выровнять по центру абсолютно позиционированный элемент. Например:
Этот абзац выровнен вертикально по центру.
Для документа, который выглядит вот так:
таблица стилей выглядит так:
Основные правила:
- Сделайте контейнер относительно позиционированным (position: relative), что превратит его в контейнер для абсолютно позиционированных элементов.
- Сам элемент сделайте абсолютно позиционированным (position: absolute).
- Поместите элемент посередине контейнера с помощью ‘top: 50%’. (Заметьте, что ‘50%’ здесь означают 50% высоты контейнера.)
- Используйте translate, чтобы переместить элемент вверх на половину своей собственной высоты. ( ‘50%’ в ‘translate(0, -50%)’ указывают на высоту самого элемента.)
Недавно (начиная приблизительно с 2021-го года) в нескольких реализациях CSS стала доступна новая техника. Она основана на новом ключевом слове ‘flex’ для свойства ‘display’. Это ключевое слово предназначено для использования в графическом интерфейсе пользователя (GUI), но ничто не мешает вам использовать его в документе, если у этого документа правильная структура.
Этот абзац выровнен по центру вертикально.
таблица стилей выглядит следующим образом:
Вертикальное и горизонтальное центрирование в CSS уровня 3
Мы можем расширить оба метода, чтобы центрировать по горизонтали и по вертикали одновременно.
Побочный эффект абсолютного позиционирования абзаца состоит в том, что абзац становится ровно таким широким, каким он должен быть (если только мы явно не укажем ширину). В примере ниже мы именно этого и хотим: мы размещаем по центру абзац из одного слова (“Центр!“), так что ширина абзаца должна быть равна ширине этого слова.
Жёлтый фон наглядно демонстрирует, что абзац действительно той же ширины, что и его содержимое. Мы подразумеваем, что разметка осталась прежней:
В плане вертикального центрирования эта таблица стилей схожа с таблицей из предыдущего примера. Но теперь мы ещё перемещаем элемент на полпути через контейнер с помощью правила ‘left: 50%’ и одновременно сдвигаем его влево на половину своей собственной ширины в преобразовании ‘translate’:
Следующий пример объясняет, зачем требуется правило ‘margin-right: -50%’.
Когда форматер CSS поддерживает ‘flex’, всё становится ещё легче:
с этой таблицей стилей:
т.е. единственным дополнением является ‘justify-content: center’. Точно также, как ‘align-items’ определяет вертикальное выравнивание содержимого контейнера, ‘justify-content’ таким же образом определяет горизонтальное выравнивание. (На самом деле всё несколько сложнее, как следует из их названий, но в простом случае, работает это именно так.). Побочный эффект от применения свойства ‘flex’ состоит в том, что дочерний элемент, в нашем случае это Р, автоматически становится настолько малым, насколько это возможно.
Центрирование в области просмотра в CSS уровня 3
Контейнером по умолчанию для абсолютно позиционированных элементов является область просмотра. (В случае c браузером это окно браузера). Таким образом, центрирование элемента в области просмотра не вызывает сложности. Далее приведен полный пример. (В этом примере использован синтаксис HTML5.)
Вы можете увидеть результат в отдельном документе.
Правило ‘margin-right: -50%’ необходимо для компенсации ‘left: 50%’. Правило ‘left’ уменьшает доступную для элемента ширину на 50%. Поэтому визуализатор постарается сделать линии длиною не более половины ширины контейнера. Указав на то, что правое поле элемента находится правее на ту же самую величину, отметим, что максимальная длина линии снова равняется ширине контейнера.
Попробуйте изменить размер окна: вы увидите, что каждое предложение находится на одной строке, когда окно достаточно широкое. Только тогда, когда окно слишком узкое для всего предложения, это предложение будет разбито на несколько строк. Когда вы удалите правило ‘margin-right: -50%’ и снова измените размер окна, вы заметите, что предложения будут уже разбиты, хотя окно все еще шире строк текста в два раза.
(Использование свойства ‘translate’ для центрирования в области просмотра было впервые предложено “Charlie” в ответе на сайте Stack Overflow.)
Навигация по сайту
Created 5 May 2001;
Last updated Ср 06 янв 2021 05:40:49
В CSS есть всего несколько техник центрирования элементов. Если их знать, то большинство задач решаются просто.
Горизонтальное
text-align
Для центрирования инлайновых элементов – достаточно поставить родителю text-align: center :
Для центрирования блока это уже не подойдёт, свойство просто не подействует. Например:
margin: auto
Блок по горизонтали центрируется margin: auto :
В отличие от width/height , значение auto для margin само не появляется. Обычно margin равно конкретной величине для элемента, например 0 для DIV . Нужно поставить его явно.
Значение margin-left:auto/margin-right:auto заставляет браузер выделять под margin всё доступное сбоку пространство. А если и то и другое auto , то слева и справа будет одинаковый отступ, таким образом элемент окажется в середине. Детали вычислений описаны в разделе спецификации Calculating widths and margins.
Вертикальное
Для горизонтального центрирования всё просто. Вертикальное же изначально не было предусмотрено в спецификации CSS и по сей день вызывает ряд проблем.
Есть три основных решения.
position:absolute + margin
Центрируемый элемент позиционируем абсолютно и опускаем до середины по вертикали при помощи top:50% :
Это, конечно, не совсем центр. По центру находится верхняя граница. Нужно ещё приподнять элемент на половину своей высоты.
Высота центрируемого элемента должна быть известна. Родитель может иметь любую высоту.
Если мы знаем, что это ровно одна строка, то её высота равна line-height .
Приподнимем элемент на пол-высоты при помощи margin-top :
При стандартных настройках браузера высота строки line-height: 1.25 , если поделить на два 1.25em / 2 = 0.625em .
Конечно, высота может быть и другой, главное чтобы мы её знали заранее.
Можно аналогично центрировать и по горизонтали, если известен горизонтальный размер, при помощи left:50% и отрицательного margin-left .
Одна строка: line-height
Вертикально отцентрировать одну строку в элементе с известной высотой height можно, указав эту высоту в свойстве line-height :
Это работает, но лишь до тех пор, пока строка одна, а если содержимое вдруг переносится на другую строку, то начинает выглядеть довольно уродливо.
Таблица с vertical-align
У свойства vertical-align, которое управляет вертикальным расположением элемента, есть два режима работы.
В таблицах свойство vertical-align указывает расположение содержимого ячейки.
Его возможные значения:
baseline Значение по умолчанию. middle , top , bottom Располагать содержимое посередине, вверху, внизу ячейки.
Например, ниже есть таблица со всеми 3-мя значениями:
Обратим внимание, что в ячейке с vertical-align: middle содержимое находится по центру. Таким образом, можно обернуть нужный элемент в таблицу размера width:100%;height:100% с одной ячейкой, у которой указать vertical-align:middle , и он будет отцентрирован.
Но мы рассмотрим более красивый способ, который поддерживается во всех современных браузерах, и в IE8+. В них не обязательно делать таблицу, так как доступно значение display:table-cell . Для элемента с таким display используются те же алгоритмы вычисления ширины и центрирования, что и в TD . И, в том числе, работает vertical-align :
Этот способ замечателен тем, что он не требует знания высоты элементов.
Однако у него есть особенность. Вместе с vertical-align родительский блок получает табличный алгоритм вычисления ширины и начинает подстраиваться под содержимое. Это не всегда желательно.
Чтобы его растянуть, нужно указать width явно, например: 300px :
Можно и в процентах, но в примере выше они не сработают, потому что структура таблицы «сломана» – ячейка есть, а собственно таблицы-то нет.
Это можно починить, завернув «псевдоячейку» в элемент с display:table , которому и поставим ширину:
Если дополнительно нужно горизонтальное центрирование – оно обеспечивается другими средствами, например margin: 0 auto для блочных элементов или text-align:center на родителе – для других.
Центрирование в строке с vertical-align
Для инлайновых элементов ( display:inline/inline-block ), включая картинки, свойство vertical-align центрирует сам инлайн-элемент в окружающем его тексте.
В этом случае набор значений несколько другой:
Это можно использовать и для центрирования, если высота родителя известна, а центрируемого элемента – нет.
Допустим, высота внешнего элемента 120px . Укажем её в свойстве line-height :
Работает во всех браузерах и IE8+.
Свойство line-height наследуется, поэтому надо знать «правильную» высоту строки и переопределять её для inner .
Центрирование с vertical-align без таблиц
Если центрирование должно работать для любой высоты родителя и центрируемого элемента, то обычно используют таблицы или display:table-cell с vertical-align .
Если центрируются не-блочные элементы, например inline или inline-block , то vertical-align может решить задачу без всяких таблиц. Правда, понадобится вспомогательный элемент (можно через :before ).
- Перед центрируемым элементом помещается вспомогательный инлайн-блок before , занимающий всю возможную высоту.
- Центрируемый блок выровнен по его середине.
Для всех современных браузеров и IE8 можно добавить вспомогательный элемент через :before :
В пример выше добавлено также горизонтальное центрирование text-align: center . Но вы можете видеть, что на самом деле внутренний элемент не центрирован горизонтально, он немного сдвинут вправо.
Это происходит потому, что центрируется весь текст, а перед inner находится пробел, который занимает место.
- Убрать лишний пробел между div и началом inner , будет
Центрирование с использованием модели flexbox
Данный метод поддерживается всеми современными браузерами.
- Не требуется знания высоты центрируемого элемента.
- CSS чистый, короткий и не требует дополнительных элементов.
- Не поддерживается IE9-, IE10 поддерживает предыдущую версию flexbox.
Итого
Обобщим решения, которые обсуждались в этой статье.
Для горизонтального центрирования:
- text-align: center – центрирует инлайн-элементы в блоке.
- margin: 0 auto – центрирует блок внутри родителя. У блока должна быть указана ширина.
Для вертикального центрирования одного блока внутри другого:
Если размер центрируемого элемента известен, а родителя – нет
Родителю position:relative , потомку position:absolute; top:50% и margin-top:- . Аналогично можно отцентрировать и по горизонтали.
Если нужно отцентрировать одну строку в блоке, высота которого известна
Поставить блоку line-height: . Нужны конкретные единицы высоты ( px , em …). Значение line-height:100% не будет работать, т.к. проценты берутся не от высоты блока, а от текущей line-height .
Высота родителя известна, а центрируемого элемента – нет.
Поставить line-height родителю во всю его высоту, а потомку поставить display:inline-block .
Высота обоих элементов неизвестна.
- Сделать элемент-родитель ячейкой таблицы при помощи display:table-cell (IE8) или реальной таблицы, и поставить ему vertical-align:middle . Отлично работает, но мы имеем дело с таблицей вместо обычного блока.
- Решение со вспомогательным элементом outer:before и инлайн-блоками. Вполне универсально и не создаёт таблицу.
- Решение с использованием flexbox.
Способы вертикального выравнивания по центру в CSS.
Способы вертикального выравнивания по центру в CSS.
Существует несколько принципиально отличающихся способов для того чтобы отцентрировать объект по вертикали с помощью CSS, однако сложность может быть в выборе правильного. Мы рассмотрим некоторые из них, а также сделаем небольшой сайт, используя полученные знания.
Вертикальное выравнивание по центру с помощью CSS достигается не так просто. Существует множество способов и не все работают во всех броузерах. Давайте рассмотрим 5 различных методов, а также «за» и «против» каждого из них. Пример.
1-ый способ
Этот метод предполагает, что мы устанавливаем некоторому элементу <div> способ отображения как таблица, после этого мы можем использовать в нём свойство vertical-align (которое работает по разному в различных элементах).
<div>
<div>
<div>
Некоторая полезная информация, которая должна располагаться по центру.
</div>
</div>
</div>
#wrapper{
display : table;
}
#cell{
display : table-cell;
vertical-align : middle;
}
Плюсы
- Контент может динамически изменять высоту (высота не определена в CSS).
- Контент не обрезается в случае, если для него недостаточно места.
Минусы
- Не работает в IE 7 и меньше
- Много вложенных тэгов
2-ой метод
Этот метод использует абсолютное позиционирование div-а, которому top устанавливается в 50%, а верхний отступ (margin-top) минус половине высоты контента. Это подразумевает, что объект должен иметь фиксированную высоту, которая определена в стилях CSS.
Поскольку высота фиксированная, вы можете установить overflow:auto; для div-а содержащего контент, таким образом, в случае если контент не будет влазить, то появятся скролл-бары.
<div>
Content Here
</div>
#content {
position : absolute;
top : 50%;
height : 240px;
margin-top : -120px; /* минус от половины высоты */
}
Плюсы
- Работает во всех броузерах.
- Нет лишней вложенности.
Минусы
- Когда не достаточно места, контент пропадает (например, div находится внутри body, а пользователь уменьшил окна, в этом случае скролл-бары не появятся.
3-ий метод
В этом методе, мы обернём div с контентом другим div-ом. Установим ему высоту в 50% (height: 50%;), а нижний отступ половине высоты (margin-bottom:-contentheight;). Контент будет очищать float и выводиться по центру.
<div>
<div>
здесь контент
</div>
</div>
#floater{
float : left;
height : 50%;
margin-bottom : -120px;
}
#content{
clear : both;
height : 240px;
position : relative;
}
Плюсы
- Работает во всех броузерах.
- Когда недостаточно места (например, когда уменьшено окно) контент не обрезается, появятся скроллбары.
Минусы
- Думаю только один: что используется лишний пустой элемент.
4-ый метод.
Этот метод использует свойство position:absolute; для div-а с фиксированными размерами (шириной и высотой). Затем устанавливаем ему координаты top:0; bottom:0;, но поскольку у него фиксированная высота, то он не может растянуться и выравнивается по центру. Это очень похоже на общеизвестный метод горизонтального выравнивания по центру блочного элемента фиксированной ширины (margin: 0 auto;).
<div>
Важная информация.
</div>
#content{
position : absolute;
top : 0;
bottom : 0;
left : 0;
right : 0;
margin : auto;
height : 240px;
width : 70%;
}
Плюсы
Минусы
- Не работает в Internet Explorer
- Контент будет обрезаться без скролл-баров, если не хватает места в контейнере.
5-ый метод
С помощью этого метода можно выровнять по центру одну строку текста. Просто устанавливаем высоту текста (line-height) равной высоте элемента (height). После этого строка будет выведена по центру.
<div>
Какая-то строка текста
</div>
#content{
height : 100px;
line-height : 100px;
}
Плюсы
- Работает во всех броузерах.
- Не обрезает текст, если он не влез.
Минусы
- Работает только с текстом (не работает с блочными элементами).
- Если текста больше чем одна строка, то выглядит очень плохо.
Этот способ очень полезен для небольших элементов, например чтобы вырвнять по центру текст в кнопке или в текстовом поле.
Теперь вы знаете как добиться вертикального выравнивания по центру, давайте сделаем простой web-сайт, который, в конце-концов будет выглядеть так:
Шаг 1
Всегда хорошо начинать с семантической разметки. Наша страница будет структурирована следующим образом:
- #floater (чтобы выровнять контент по центру)
- #centred (центральный элемент)
- #side
- #logo
- #nav (список
<ul>
)
- #content
- #side
- #bottom (для копирайтов и всего такого)
Напишем следующую html-разметку:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>A Centred Company</title>
<link rel="stylesheet" href="styles.css" type="text/css" media="all" />
</head>
<body>
<div></div>
<div>
<div>
<div><strong><span>A</span> Company</strong></div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
</div>
<div>
<h2>Page Title</h2>
<p>
Holisticly re-engineer value-added outsourcing after
process-centric collaboration and idea-sharing.
Energistically simplify impactful niche markets via
enabled imperatives. Holisticly predominate premium
innovation after compelling scenarios. Seamlessly
recaptiualize high standards in human capital with
leading-edge manufactured products. Distinctively
syndicate standards compliant schemas before robust
vortals. Uniquely recaptiualize leveraged web-readiness
vis-a-vis out-of-the-box information.
</p>
<h3>Heading 2</h3>
<p>
Efficiently embrace customized web-readiness rather
than customer directed processes. Assertively grow
cross-platform imperatives vis-a-vis proactive
technologies. Conveniently empower multidisciplinary
meta-services without enterprise-wide interfaces.
Conveniently streamline competitive strategic theme
areas with focused e-markets. Phosfluorescently
syndicate world-class communities vis-a-vis value-added
markets. Appropriately reinvent holistic services
before robust e-services.
</p>
</div>
</div>
<div>
<p>
Copyright notice goes here
</p>
</div>
</body>
</html>
Шаг 2
Сейчас мы напишем простейший CSS, для размещения элементов на странице. Вы должны сохранить этот код в файле style.css. Именно на него прописана ссылка в html-файле.
html, body {
margin : 0;
padding : 0;
height : 100%;
}
body {
background : url('page_bg.jpg') 50% 50% no-repeat #FC3;
font-family : Georgia, Times, serifs;
}
#floater {
position : relative;
float : left;
height : 50%;
margin-bottom : -200px;
width : 1px;
}
#centered {
position : relative;
clear : left;
height : 400px;
width : 80%;
max-width : 800px;
min-width : 400px;
margin : 0 auto;
background : #fff;
border : 4px solid #666;
}
#bottom {
position : absolute;
bottom : 0;
right : 0;
}
#nav {
position : absolute;
left : 0;
top : 0;
bottom : 0;
right : 70%;
padding : 20px;
margin : 10px;
}
#content {
position : absolute;
left : 30%;
right : 0;
top : 0;
bottom : 0;
overflow : auto;
height : 340px;
padding : 20px;
margin : 10px;
}
Перед тем как сделать наш контент выровненным по центру, необходимо для body и html установить высоту 100%. Так как высота считается без внутренних и внешних отступов (padding и margin), то мы устанавливаем их (отступы) в 0, чтобы не было скроллбаров.
Нижний отступ для элемента «floater»-а равен минус половине высоты контента (400px), а именно -200px;
Сейчас ваша страничка должна выглядеть приблизительно так:
Ширина элемента #centered 80%. Это делает наш сайт уже на маленьких экранах и шире на больших. большинство сайтов выглядит неприлично на новых широких мониторах в верхнем левом углу. Свойства min-width и max-width также ограничивают нашу страничку, чтобы она не выглядела слишком широкой или слишком узкой. Internet Explorer не поддерживает эти свойства. Для него надо установить фиксированную ширину.
Поскольку элементу #centered установлено position:relative, мы можем использовать абсолютное позиционирование элементов внутри него. Затем установим overflow:auto; для элемента #content, чтобы появлялись скроллбары, в случае если не будет помещаться контент.
Шаг 3
И последнее что мы сделаем, это добавим кое-какие стили, чтобы страничка выглядела немного привлекательнее. Давайте начнём с меню.
#nav ul {
list-style : none;
padding : 0;
margin : 20px 0 0 0;
text-indent : 0;
}
#nav li {
padding : 0;
margin : 3px;
}
#nav li a {
display : block;
background-color : #e8e8e8;
padding : 7px;
margin : 0;
text-decoration : none;
color : #000;
border-bottom : 1px solid #bbb;
text-align : right;
}
#nav li a::after {
content : '»';
color : #aaa;
font-weight : bold;
display : inline;
float : right;
margin : 0 2px 0 5px;
}
#nav li a:hover, #nav li a:focus {
background : #f8f8f8;
border-bottom-color : #777;
}
#nav li a:hover::after {
margin : 0 0 0 7px;
color : #f93;
}
#nav li a:active {
padding : 8px 7px 6px 7px;
}
Первое что мы сделали, чтобы меню выглядело лучше, удалили маркеры, установив атрибут list-style:none, а также установили внутренние и внешние отступы, так как по умолчанию в разных броузерах они сильно различаются.
Обратите внимание, что затем мы указали чтобы ссылки отбражадись как блочные элементы. Теперь, при выводе, они растягиваются по всей ширине элемента в котором они расположены.
Другая интересная вещь, которую мы использовали для меню — это псевдо-классы :before и :after. Они позволяют вам добавить что-нибудь перед и после элемента. Это хороший способ добавлять иконки или символы, такие как стрелочка в конце каждой ссылки. Такой трюк не работает в Internet Explorer 7 и ниже.
Шаг 4
Ну и самое последнее, мы добавим в наш дизайн кое-какие втили для ещё большей красоты.
#centered {
-webkit-border-radius : 8px;
-moz-border-radius : 8px;
border-radius : 8px;
}
h2, h3, h4, h5, h5, h6 {
font-family : Helvetica, Arial, sans-serif;
font-weight : normal;
color : #666;
}
h2 {
color : #f93;
border-bottom : 1px solid #ddd;
letter-spacing : -0.05em;
font-weight : bold;
margin-top : 0;
padding-top : 0;
}
#bottom {
padding : 10px;
font-size : 0.7em;
color : #f03;
}
#logo {
font-size : 2em;
text-align : center;
color : #999;
}
#logo strong {
font-weight : normal;
}
#logo span {
display : block;
font-size : 4em;
line-height : 0.7em;
color : #666;
}
p, h3, h4 {
line-height : 1.6em;
}
a {
color : #f03;
}
В этих стилях мы устанавливаем закруглённые углы для элемента #centered. В CSS3, за это будет отвечать свойство border-radius. Это пока что не реализовано некоторыми броузерами, разве только использовать приставки -moz и -webkit для Mozilla Firefox и Safari/Webkit.
Совместимость
Как вы уже наверное предположили, основной источник проблем совместимости — Internet Explorer:
- Элементу #floater обязательно надо установить ширину
- В IE 6 лишние отступы вокруг меню
Результат.
html — Как разместить текст по центру?
html — Как разместить текст по центру? — Stack Overflow на русскомStack Overflow на русском — это сайт вопросов и ответов для программистов. Присоединяйтесь! Регистрация займёт не больше минуты.
Присоединиться к сообществуЛюбой может задать вопрос
Любой может ответить
Лучшие ответы получают голоса и поднимаются наверх
Вопрос задан
Просмотрен 123 раза
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 3 года назад.
У меня на сайте html есть текст, и я хочу чтобы он был по центру, как мне это сделать? Уже пытался найти варианты, но так и не вышло!..
задан 27 мая ’18 в 4:56
Mark MinerovMark Minerov61144 серебряных знака1212 бронзовых знаков
2Тема действительно изъезжена на тысячах ресурсов, но раз тут ищут ответ:
* {
margin: 0;
padding: 0;
}
body,
html {
height: 100%;
}
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
<div>
<p>Lorem ipsum</p>
</div>
Vadim Ovchinnikov9,45444 золотых знака3131 серебряный знак7070 бронзовых знаков
ответ дан 27 мая ’18 в 5:13
NTPNTP3,10311 золотой знак1717 серебряных знаков3838 бронзовых знаков
За выравнивание текста отвечает text-align
со значением center
.
9,45444 золотых знака3131 серебряный знак7070 бронзовых знаков
ответ дан 27 мая ’18 в 6:22
default
Stack Overflow на русском лучше работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей [Политикой в отношении файлов cookie] (https://stackoverflow.com/legal/cookie-policy).
Принять все файлы cookie Настроить параметры
Выравнивание текста (text-align) в HTML
Рассмотрим несколько примеров по выравниванию текста внутри контейнера. Начнём с вываривания по левому краю, которое происходит автоматически.text-align: left
Рассмотрим HTML код контейнера с текстом:<div>
Тише, мыши, кот на крыше.
</div>
Контейнер div по умолчанию является блочным элементом, поэтому его ширина составляет 100% от родительского элемента (элемента, в котором он находится). Поэтому в этой статье его удобно применять — текст будет перемещаться по контейнеру в зависимости от значения свойства text-align. Результат будет такой:Тише, мыши, кот на крыше.
Выравнивание по левому краю не всегда делается по умолчанию. К примеру, в некоторых языках написание слов происходит справа налево. Если текст в контейнере написан на таком языке, то по умолчанию выравнивание будет по правому краю.
В примере выше использован CSS код внутри атрибута style тега div. Но можно вынести этот код отдельно:div {
text-align:left;
}
text-align: right
Теперь посмотрим как принудительно сделать выравнивание по правому краю<div>
Тише, мыши, кот на крыше.
</div>
Текст будет выравнен по правому краю контейнера:Тише, мыши, кот на крыше.
text-align: center
Существует возможность выравнить текст по центру. Для этого необхоимо использовать значение «center»<div>
Тише, мыши, кот на крыше.
</div>
Текст будет выравнен по центру контейнера:Тише, мыши, кот на крыше.
text-align: justify
Стоит упомянуть о возможности растянуть текст равномерно на всю ширину контейнера. Сделать это можно с помощью значения «justify». Но чтобы продемонстрировать это, зададим два контейнера с ограниченной шириной (max-width: 250px). В одном контейнере оставим стандартные настройки выравнивания, а во втором пропишем text-align:justify:<div>
Тише, мыши, кот на крыше,
а котята ещё выше.
Кот пошёл за молоком,
а котята кувырком.
Кот пришёл без молока,
а котята ха-ха-ха.
</div>
<div>
Тише, мыши, кот на крыше,
а котята ещё выше.
Кот пошёл за молоком,
а котята кувырком.
Кот пришёл без молока,
а котята ха-ха-ха.
</div>
В браузере первый контейнер будет содержать текст без растягивания на всю ширину. Во втором контейнере текст будет растянут — пробелы между словами будут иметь разную ширину, чтобы заполнить весь контейнер текстом:Тише, мыши, кот на крыше, а котята ещё выше. Кот пошёл за молоком, а котята кувырком. Кот пришёл без молока, а котята ха-ха-ха.
Тише, мыши, кот на крыше, а котята ещё выше. Кот пошёл за молоком, а котята кувырком. Кот пришёл без молока, а котята ха-ха-ха.
В примере выше использовано свойство «max-width«, а не «width«, потому что оно не мешает контейнеру быть уже, чем заданное значение. Это удобно, если пользователь просматривает сайт с мобильного телефона, ширина которого менее зданного значения. Благодаря «max-width» вёрстка сайта не сломается — страница не будет уходить за пределы экрана.
Комбинаторы CSS
Комбинаторы CSS
Комбинатор — это то, что объясняет взаимосвязь между селекторами.
Селектор CSS может содержать более одного простого селектора. Между простым селекторы, мы можем включить комбинатор.
В CSS есть четыре разных комбинатора:
- Селектор потомков (пробел)
- дочерний селектор (>)
- Селектор соседних братьев (+)
- общий родственный селектор (~)
Селектор потомков
Селектор потомков соответствует всем элементам, которые являются потомками указанного элемент.
В следующем примере выбираются все элементы
внутри элементов
Селектор детей (>)
Дочерний селектор выбирает все элементы, которые являются дочерними элементами указанный элемент.
В следующем примере выбираются все элементы
, которые дочерние элементы
Селектор соседних братьев и сестер (+)
Смежный селектор соседнего уровня используется для выбора элемента, который непосредственно после другого конкретного элемента.
Родственные элементы должны иметь один и тот же родительский элемент, и «смежный» означает «сразу после».
В следующем примере выбирается первый элемент
, который помещается сразу после элементов
Общий селектор братьев и сестер (~)
Общий селектор одноуровневых элементов выбирает все элементы, которые являются следующими одноуровневыми элементами указанного элемента.
В следующем примере выбираются все элементы
, которые являются ближайшими братьями и сестрами элементов
Проверьте себя упражнениями!
Все селекторы комбинаторов CSS
Селектор | Пример | Описание примера |
---|---|---|
элемент элемент | div p | Выбирает все элементы внутри элементов |
элемент > элемент | div> p | Выбирает все элементы , где родительский элемент |
элемент + элемент | div + p | Выбирает первый элемент , который помещается сразу после элементов |
element1 ~ element2 | пол | Выбирает каждый элемент
|
выравнивание текста | CSS-уловки
Свойство text-align
в CSS используется для выравнивания внутреннего содержимого блочного элемента.
p {
выравнивание текста: центр;
}
Это традиционные значения для выравнивания текста:
-
слева
— значение по умолчанию. Контент выравнивается по левой стороне. -
справа
— содержимое выравнивается по правой стороне. -
центр
— центры содержимого между левым и правым краями. Пробелы слева и справа от каждой строки должны быть равны. -
justify
— Контент растягивается таким образом, чтобы в одну строку помещалось как можно больше блоков, при этом первое слово в этой строке располагалось по левому краю, а последнее слово — по правому краю. -
наследовать
— значение будет тем же, что и у родительского элемента.
«Контент» используется здесь как термин вместо «текст», потому что, хотя выравнивание текста определенно влияет на текст, оно влияет на все встроенные или встроенные блочные элементы в этом контейнере.
В CSS3 также есть два новых значения: start и end. Эти значения упрощают поддержку нескольких языков. Например, английский — язык с письмом слева направо (ltr), а арабский — язык с письмом справа налево (rtl).Использование «правого» и «левого» для значений слишком жестко и не адаптируется к изменению направления. Эти новые значения действительно адаптируются:
-
start
— То же, что «left» в ltr, то же самое, что «right» в rtl. -
конец
— То же, что «right» в ltr, то же самое, что «left» в rtl.
Существует также match-parent
, который похож на inherit
, только новое значение вычисляется против направления текущего элемента, а не, как вы знаете, не делает этого.
В спецификации есть несколько вещей, которые пока не поддерживаются браузером. Одним из них является значение «start end», которое выравнивает первую строку, как если бы она была «start», и любые последующие строки, как если бы она была «end». Другой дает значение в виде строки, например выравнивание текста: "." Начало;
Текст будет выровнен по первому вхождению этой
Примеры
Этот текст выровнен по левому краю.
Этот текст выровнен по правому краю.
Я в центре!
Я оправдан. Я заполняю пространство точно (кроме последней строки), даже если мне иногда приходится немного растягиваться.
Я наследую мировоззрение своего родителя. В данном случае это означает слева.
Другие ресурсы
Сопутствующие объекты
Поддержка браузера
Для левого, правого, центрального, выравнивания:
Хром | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
Любая | Любая | Любая | 3.5+ | 3+ | Любая | Любая |
Для начала
и конец
значения:
Хром | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
Любая | 3.1+ | 3.6+ | Нет | Нет | Любая | Любая |
Как центрировать текст в HTML
Обновлено: 12.04.2021, Computer Hope
Для центрирования текста с помощью HTML можно использовать тег
Использование тегов
Один из способов центрировать текст — заключить его в теги
Центрировать этот текст!
Вставка этого текста в HTML-код даст следующий результат:
Центрировать этот текст!
Центрирующий текст обычно используется для заголовка веб-сайта или документа.
ПримечаниеТег
Использование свойства таблицы стилей
Вы можете центрировать текст веб-сайта с помощью CSS, указав свойство text-align элемента, который нужно центрировать.
Центрирование нескольких блоков текста
Если у вас есть только один или несколько блоков текста для центрирования, добавьте атрибут стиля к открывающему тегу элемента и используйте свойство «выравнивание текста».В приведенном ниже примере мы добавили их в тег
.
Выровнять текст по центру!
Для свойства text-align установлено значение center, чтобы указать, что элемент центрирован по центру страницы или содержит div.
Несколько блоков текста
Если у вас есть много блоков текста для центрирования, используйте CSS внутри тегов в разделе заголовка или во внешней таблице стилей. См. Пример кода ниже, чтобы узнать, как установить центрирование всего текста внутри тегов
.<стиль> п { выравнивание текста: центр }
Текст в каждом наборе тегов
центрируется на странице. Если вы хотите, чтобы одни абзацы были центрированы, а другие нет, вы можете создать класс стиля, как показано в приведенном ниже коде.<стиль> .center { выравнивание текста: центр }
Если вы создаете центральный класс, как показано в приведенном выше примере, абзац можно центрировать, используя приведенный ниже код, который «вызывает» центральный класс.
ПодсказкаВыровнять текст по центру!
После создания класса его можно применить к любому тегу HTML. Например, если вы хотите, чтобы заголовок был центрирован, вы можете добавить class = «center» к тегу
или другому тегу заголовка.
Как выровнять текст с помощью CSS
Выровнять текст в CSS можно с помощью свойства text-align
или свойства vertical-align
.
- Свойство
text-align
используется для указания того, как встроенный контент должен быть выровнен в блоке.Например:Значения:- Свойство
В примере кода показаны эти свойства в использовании:vertical-align
используется, чтобы указать, как встроенный контент должен быть выровнен по вертикали относительно одноуровневого встроенного контента. Например:style = "vertical-align: text-bottom;
-
нижний
-
средний
-
верхний
-
нижний текст
-
базовый уровень
-
верхний текст
-
дополнительный
-
супер
- 2
0 следующие за
Выровнять текст Выровнять текст
Выравнивание по тексту
выравнивание текста: слевавыравнивание текста: по центрувыравнивание текста: вправоtext-align: justify - чтобы увидеть эффект выравнивания, текстовый блок должен быть обернут text-align: justify - чтобы увидеть эффект выравнивания, текстовый блок должен быть обернут text-align: justify - чтобы увидеть эффект выравнивания, текстовый блок должен быть обернутВертикальное выравнивание
вертикальное выравнивание: снизувертикальное выравнивание: среднийвертикальное выравнивание: сверхувертикальное выравнивание: нижний текствертикальное выравнивание: базовая линиявертикальное выравнивание: верхний текствертикальное выравнивание: subвертикальное выравнивание: суперПриведенный выше код будет отображать следующее:
CSS Box Alignment - CSS: Cascading Style Sheets
Модуль CSS Box Alignment определяет функции CSS, которые связаны с выравниванием полей в различных моделях макета CSS-боксов: макет блока, макет таблицы, макет гибкости и макет сетки.Модуль направлен на создание единого метода выравнивания для всего CSS. В этом документе подробно описаны общие концепции, содержащиеся в спецификации.
Примечание: В документации по каждому методу макета будет подробно описано, как там применяется выравнивание поля.
CSS традиционно имел очень ограниченные возможности выравнивания. Мы смогли выровнять текст, используя
text-align
, центральные блоки, используя автоматическое поле,
s, и в макетах таблицы или встроенных блоков, используя свойствоvertical-align
.Выравнивание текста теперь покрывается модулями Inline Layout и CSS Text, и впервые в Box Alignment у нас есть возможности полного горизонтального и вертикального выравнивания.Если вы изначально изучали Flexbox, то можете считать, что эти свойства являются частью спецификации Flexbox, и некоторые из свойств действительно перечислены на уровне 1 Flexbox. Однако в спецификации отмечается, что следует ссылаться на спецификацию Box Alignment, поскольку она может добавлять дополнительные возможности по сравнению с тем, что в настоящее время находится во Flexbox.
Следующие примеры демонстрируют, как некоторые свойства выравнивания блока применяются в сетке и Flexbox.
Пример выравнивания макета сетки CSS
В этом примере с использованием макета сетки после размещения дорожек фиксированной ширины на встроенной (основной) оси есть дополнительное пространство в контейнере сетки. Это пространство распределяется с использованием
justify-content
. На блочной (поперечной) оси выравнивание элементов внутри их областей сетки контролируется с помощьюalign-items
.Первый элемент отменяет значениеalign-items
, установленное для группы, путем установкиalign-self
наcenter
.Пример выравнивания Flexbox
В этом примере три гибких элемента выравниваются по главной оси с использованием
justify-content
и по поперечной оси с помощьюalign-items
. Первый элемент отменяет наборalign-items
для группы, устанавливаяalign-self
наcenter
.В спецификации подробно описывается некоторая терминология выравнивания, чтобы упростить обсуждение этих свойств выравнивания вне их реализации в рамках конкретного метода компоновки.Есть также некоторые ключевые концепции, общие для всех методов компоновки.
Связь с режимами записи
Выравнивание связано с режимами записи в том смысле, что при выравнивании элемента мы не учитываем, выравниваем ли мы его по физическим размерам сверху, справа, снизу и слева. Вместо этого мы описываем согласование в терминах начала и конца конкретного измерения, с которым мы работаем. Это гарантирует, что выравнивание работает одинаково, независимо от того, какой режим записи имеет документ.
Два измерения выравнивания
При использовании свойств выравнивания блока вы выравниваете содержимое по одной из двух осей - линейной (или главной) оси и блочной (или поперечной) оси. Встроенная ось - это ось, по которой слова в предложении перемещаются в используемом режиме письма. Например, для английского языка встроенная ось горизонтальна. Ось блока - это ось, вдоль которой размещаются блоки, такие как элементы абзаца, и она проходит поперек оси Inline.
При выравнивании элементов по встроенной оси вы будете использовать свойства, которые начинаются с
justify-
:При выравнивании элементов по оси блока вы будете использовать свойства, которые начинаются с
align-
:Flexbox добавляет дополнительную сложность, поскольку вышесказанное верно, когда
flex-direction
установлено наrow
.Свойства меняются местами, когда для flexbox установлено значение, столбец
. Поэтому при работе с flexbox легче думать об основной и поперечной оси, чем о встроенных и блочных. Свойстваjustify-
всегда используются для выравнивания по главной оси, свойстваalign-
по поперечной оси.Объект выравнивания
Объект выравнивания - это то, что выравнивается. Для
justify-self
илиalign-self
, или при установке этих значений как группы сjustify-items
илиalign-items
, это будет поле поля элемента, для которого это свойство используется .Свойстваjustify-content
иalign-content
различаются в зависимости от метода макета.Контейнер выравнивания
Контейнер выравнивания - это коробка, внутри которой выравнивается объект. Обычно это содержащий блок объекта выравнивания. Контейнер выравнивания может содержать один или несколько объектов выравнивания.
На изображении ниже показан контейнер для совмещения с двумя объектами совмещения внутри.
Резервное выравнивание
Если вы установили выравнивание, которое не может быть выполнено, то будет задействовано резервное выравнивание и обработает доступное пространство.Это резервное выравнивание указывается индивидуально для каждого метода макета и подробно описывается на странице для этого метода.
Существует три различных типа выравнивания, которые подробно описаны в спецификации; в них используются значения ключевых слов.
- Позиционное выравнивание : определение положения объекта выравнивания относительно его контейнера выравнивания.
- Базовое выравнивание : Эти ключевые слова определяют выравнивание как отношение между базовыми линиями нескольких субъектов выравнивания в контексте выравнивания.
- Распределенное выравнивание : Эти ключевые слова определяют выравнивание как распределение пространства между субъектами выравнивания.
Значения ключевого слова позиционного выравнивания
Следующие значения определены для позиционного выравнивания и могут использоваться в качестве значений для выравнивания содержимого с
justify-content
иalign-content
, а также для самовыравнивания сjustify-self
исамоустанавливающееся
.-
центр
-
начало
-
конец
-
самозапуск
-
саморез
-
flex-start
только для Flexbox -
гибкий конец
только для Flexbox -
слева
-
правый
За исключением физических значений
слева
исправа
, которые относятся к физическим атрибутам экрана, все другие значения являются логическими значениями и относятся к режиму записи контента.Например, при работе в CSS Grid Layout, если вы работаете на английском языке и устанавливаете
justify-content
наstart
, это переместит элементы во встроенном измерении в начало, которое будет слева как предложения на английском языке. начать слева. Если бы вы использовали арабский язык (язык справа налево), то такое же значениеstart
привело бы к перемещению элементов вправо, поскольку предложения на арабском языке начинаются с правой стороны страницы.Оба этих примера имеют
justify-content: start
, однако местоположение начала изменяется в соответствии с режимом записи.Выравнивание базовой линии
Ключевые слова выравнивания базовой линии используются для выравнивания базовых линий прямоугольников по группе объектов выравнивания. Их можно использовать в качестве значений для выравнивания содержимого с
justify-content
иalign-content
, а также для самовыравнивания сjustify-self
иalign-self
.-
базовый
-
первый базовый уровень
-
последняя базовая линия
Базовое выравнивание содержимого - указание значения выравнивания базовой линии для
justify-content
илиalign-content
- работает в методах макета, которые размещают элементы в строках.Объекты выравнивания выравниваются по базовой линии друг относительно друга, добавляя отступы внутри полей.Самовыравнивание по базовой линии сдвигает поля для выравнивания по базовой линии, добавляя поля за пределами полей. Самовыравнивание происходит при использовании
justify-self
илиalign-self
, или при установке этих значений как группы сjustify-items
иalign-items
.Распределенное выравнивание
Ключевые слова распределенного выравнивания используются со свойствами
align-content
иjustify-content
.Эти ключевые слова определяют, что происходит с любым дополнительным пространством после отображения объектов выравнивания. Значения следующие:-
растяжка
-
расстояние между
-
пространство вокруг
-
равномерно
Например, в Flex Layout элементы изначально выровнены с
flex-start
. При работе в горизонтальном режиме письма сверху вниз, таком как английский, сflex-direction
какстрока
элементы начинаются с крайнего левого угла, а любое доступное пространство после отображения элементов помещается после элементов.Если вы установите
justify-content: space-between
на гибкий контейнер, доступное пространство теперь распределяется и размещается между элементами.В измерении, в котором вы хотите выровнять элементы, должно быть свободное место, чтобы эти ключевые слова вступили в силу. Нет места, нечего раздавать.
Ключевые слова
safe
иunsafe
помогают определить поведение, когда объект выравнивания больше, чем контейнер выравнивания.Ключевое словоsafe
будет выровнено сstart
в случае указанного выравнивания, вызывающего переполнение, цель состоит в том, чтобы избежать «потери данных», когда часть элемента находится за пределами границ контейнера выравнивания и не может быть прокрутил до.Если вы укажете
unsafe
, то выравнивание будет выполнено, даже если это вызовет такую потерю данных.Спецификация выравнивания прямоугольников также включает свойства
зазора
,зазора между строками
изазора между столбцами
.Эти свойства позволяют установить постоянный промежуток между элементами в строке или столбце при любом методе компоновки, в котором элементы расположены таким образом.Свойство
gap
является сокращением дляrow-gap
иcolumn-gap
, что позволяет нам сразу установить эти свойства:В приведенном ниже примере макет сетки использует сокращение
зазор
, чтобы установить зазор10px
между дорожками строк и зазор2em
между дорожками столбцов.В этом примере я использую свойство
gap
в дополнение кgap
. Свойства зазора изначально имели префиксgrid-
в спецификации Grid Layout, и некоторые браузеры поддерживают только эти версии с префиксом.Версии с префиксами будут поддерживаться как псевдонимы без префиксов, однако вы всегда можете удвоить их так же, как с префиксами поставщиков, добавив свойство
grid-gap
, а затем свойствоgap
с теми же значениями. .Также имейте в виду, что другие вещи могут увеличить отображаемый визуальный разрыв, например, использование ключевых слов распределения пространства или добавление полей к элементам.
Поскольку свойства выравнивания блока CSS реализуются по-разному в зависимости от спецификации, с которой они взаимодействуют, обратитесь к следующим страницам для каждого типа макета для получения подробной информации о том, как использовать свойства выравнивания с ним:
CSS Properties
Glossary Entries
CSS Centering (Text and Images) with Angular 11 Example
В этом руководстве мы узнаем, как центрировать элементы в CSS и Angular 7/8 с использованием современного макета Flexbox.
Мы увидим, как центрировать изображения в CSS по вертикали и горизонтали с помощью Flexbox и как центрировать изображения внутри гибких контейнеров div, а затем как настроить это на всю HTML-страницу с помощью единиц области просмотра.
Далее мы узнаем, как центрировать текст в CSS по горизонтали и вертикали с помощью Flexbox.
Центрирование элементов в CSS по горизонтали или вертикали всегда было сложной задачей, и разработчики использовали множество методов, которые иногда даже не имели смысла, особенно для новичков.
Но с появлением Flexbox центрирование CSS стало проще и понятнее, чем когда-либо.
Мы будем использовать Stackblitz для нашего проекта Angular.
Горизонтальное центрирование
Начнем с горизонтального центрирования. Откройте файл
src / app / app.component.html
и добавьте следующий:Привет, Angular 8!
Мы добавляем
div
с классомcenter
.Внутри него мы добавляем тегЗатем откройте файл
src / app / app.component.css
и добавьте классcenter
со следующими стилями:.center { дисплей: гибкий; justify-content: center; }
Вот и все. наш контент центрируется по горизонтали, просто делая
div
гибким контейнером и используя свойствоjustify-content
. Вот скриншот:Вертикальное центрирование
Теперь давайте посмотрим, как мы можем центрировать контент по вертикали с помощью Flexbox.
Этого также легко добиться с помощью Flexbox, просто добавив
align-items: center
.Давайте сначала добавим следующие стили, чтобы изменить цвет и высоту содержащего
div
, чтобы мы могли видеть содержимое четко центрированным по вертикали:.center { дисплей: гибкий; высота: 300 пикселей; цвет фона: # ff1124; justify-content: center; }
Это результат:
Теперь применим вертикальное центрирование:
.center { дисплей: гибкий; высота: 300 пикселей; цвет фона: # ff1124; justify-content: center; align-items: center; }
Это результат:
Это будет центрировать любые элементы внутри
div
. Если вы хотите центрировать определенные элементы, вы можете вместо этого использоватьalign-self: center
для элемента..center { дисплей: гибкий; высота: 300 пикселей; цвет фона: # ff1124; justify-content: center; } .center h2 { align-self: center; }
Если вам нужно центрировать всю страницу, вы можете просто задать div той же высоты, что и страница:
.center { дисплей: гибкий; цвет фона: # ff1124; justify-content: center; высота: 100вх; } .center h2 { align-self: center; }
Это снимок экрана:
Центрировать текст в CSS по горизонтали и вертикали с помощью Flexbox
В этом разделе мы узнаем, как центрировать текст в CSS по горизонтали и вертикали с помощью Flexbox.
HTML имеет тег
для центрирования текста, но вы также можете использовать свойствоtext-align
CSS со значениемcenter
для центрирования текста по горизонтали.Для вертикального центрирования текста в CSS у нас есть старые и новые способы. Например, вы можете установить высоту строки вашего текста на ту же высоту, что и контейнер текста, или, еще лучше, использовать Flexbox, просто установив для свойств
justify-content
иalign-items
значениеcenter
.Это то, что мы рассмотрим в этой статье:
- Центрирование текста без CSS с помощью тега
, - Центрирование текста с помощью CSS.
- Центрирование текста по горизонтали с помощью свойства
text-align
. - Вертикальное центрирование текста с помощью Flexbox.
Центрирование текста по горизонтали без CSS Использование тега
Для центрирования заключенного текста можно использовать тег
. Это быстрый пример:Этот текст будет центрирован! Обратите внимание, что это не рекомендуемый способ центрирования текста.Кроме того, тег
теперь устарел. Событие, если все еще работает, вы должны использовать CSS для центрирования текста и обработки презентации.Центрирование текста по горизонтали с помощью CSS
Вы можете очень легко центрировать текст в CSS, используя свойство
text-align
со свойствомcenter
.Для одного текстового элемента, который вы хотите центрировать на своей странице, вы можете использовать свойство
style
со свойством text-align следующим образом:Этот текст будет центрирован!
Мы просто устанавливаем значение
text-align
наcenter
.Использование класса CSS для центрирования текста по горизонтали
В случае, если вам нужно центрировать несколько текстовых элементов, лучше использовать класс CSS вместо повторения одного и того же кода центрирования текста CSS для нескольких элементов в вашем HTML-документе. Например:
<стиль> .centered-text { выравнивание текста: центр }
Затем вы можете применить класс
.centered-text
к текстовому элементу, чтобы центрировать его следующим образом:Этот текст центрирован!
Вы также можете использовать селектор CSS
p
для центрирования текста во всех элементах
в вашем HTML-документе:Итак, как мы видели, горизонтальное выравнивание текста в CSS довольно просто.Вам просто нужно добавить свойство style
и установить
text-align
наcenter
или также с помощью класса или селектора CSS.Центрирование текста в CSS по вертикали с использованием высоты строки
Еще более пугающим является центрирование текста по вертикали.
Для этого существуют старые и новые методы CSS.
Например, для одной строки текста вы можете легко центрировать ее по вертикали, установив высоту строки, равную высоте контейнера. Наш контейнер имеет высоту 500 пикселей, поэтому, если у нас есть только одна строка текста, мы просто устанавливаем высоту строки на 500 пикселей, и этот текст будет центрирован по вертикали.
Вертикальное центрирование текста в CSS с помощью Flexbox
Но если у вас более одной строки текста, предыдущий трюк не сработает, если мы хотим центрировать их по вертикали. К счастью для нас, существует современный подход, использующий макет CSS Flexbox.
Возьмем этот пример:
Выровнять текст
С Flexbox
.container h2, .container h3 { выравнивание текста: центр; } .container { высота: 500 пикселей; дисплей: гибкий; justify-content: center; align-items: center; }
Мы просто устанавливаем свойство
display
наflex
, а затем устанавливаем свойстваjustify-content
иalign-items
наcenter
.Центрирование изображений по горизонтали и вертикали в CSS с помощью Flexbox
В этом разделе мы увидим, как центрировать изображения в CSS по вертикали и горизонтали с помощью Flexbox.
Мы увидим, как центрировать изображения внутри гибких контейнеров div, а затем как настроить это на всю HTML-страницу с помощью единиц просмотра.
Центрирование в CSS, особенно вертикальное центрирование, пугало многих разработчиков, поскольку нам приходилось использовать различные приемы и уловки для центрирования элементов, включая текст и изображения.
Благодаря Flexbox центрирование CSS стало проще, чем раньше, и проще.
Мы покажем вам, как центрировать изображения в CSS на примере с помощью Flexbox.Горизонтальное центрирование CSS
Давайте посмотрим, как центрировать div по горизонтали с изображением. Нам просто нужно использовать свойство
justify-content
и установить значениеcenter
на гибком контейнере.Это пример HTML-кода с элементом
div
, который содержит изображение:Чтобы центрировать изображение внутри контейнера div, нам просто нужно сделать контейнер гибким боксом и использовать
justify-content
со значениемcenter
:.image-container { дисплей: гибкий; justify-content: center; }
Вот и все, мы увидели, как центрировать изображение по горизонтали в CSS с помощью Flex Box, не прибегая к старым приемам, которые могут напугать, особенно для новых дизайнеров и разработчиков CSS.
Вертикальное центрирование CSS
Что действительно сложнее всего, так это вертикальное центрирование, но благодаря Flexbox центрировать элементы по вертикали намного проще.
Возьмем тот же пример HTML с изображением внутри контейнера div:
Это код CSS для центрирования изображения внутри div по вертикали:
.image-container { дисплей: гибкий; // justify-content: center; align-items: center; }
Мы просто используем свойство
align-items
со значениемcenter
для центрирования изображения по вертикали внутри контейнера div, который должен быть гибким блоком.Вы также можете применить свойство
align-self
со значениемcenter
к самому элементу изображения, чтобы центрировать его по вертикали внутри гибкого контейнера. Это более полезно, если у вас несколько элементов и вы хотите центрировать один из них:.image-container img { align-self: center; }
Мы видели, как центрировать изображения по горизонтали и вертикали внутри контейнера div, но что, если вам нужно центрировать его на всей странице HTML?
Поскольку Flexbox должен знать высоту контейнера для выравнивания элементов, нам просто нужно установить высоту div как высоту страницы, что может быть достигнуто с использованием единиц области просмотра, где
100vh
равно 100% высоты область просмотра.кузов { маржа: 0; } .image-container { дисплей: гибкий; высота: 100вх; justify-content: center; align-items: center; }
Заключение
В этой статье мы увидели, как можно центрировать элементы в CSS по горизонтали и вертикали с помощью Flexblox, который предоставляет простые и понятные способы добиться этого, не прибегая к старым трюкам CSS.
Этот пример был продемонстрирован с проектом Angular 8, но эти приемы никак не связаны с Angular.
Мы видели, как центрировать текст по горизонтали, используя свойство
text-align
со значениемcenter
.Для вертикального центрирования текста в CSS мы использовали как старый, так и новый способ. Например, установка высоты строки текста для центрирования на ту же высоту, что и контейнер текста, или использование Flexbox, просто установив для свойств
justify-content
иalign-items
значениеcenter
.Мы также видели, как центрировать изображения внутри контейнера div по горизонтали и вертикали, используя свойства Flexbox, такие как
justify-content
иalign-items
, и устанавливая их значения наcenter
.Мы также видели, как центрировать изображение на примере на всей странице, просто сделав высоту div равной высоте страницы с использованием единиц просмотра, где100vh
равно 100% высоты области просмотра.Как центрировать элемент с помощью CSS
🏠 Вернуться на главную страницуЦентрирование элемента с помощью CSS всегда было легко для одних вещей, но сложно для других. Вот полный список того, как центрировать с помощью CSS, а также с помощью современных методов CSS
Опубликовано , Последнее обновление
Центрирование элемента в CSS - это совсем другая задача, если вам нужно центрировать по горизонтали или вертикали.
В этом посте я объясню наиболее распространенные сценарии и способы их решения. Если Flexbox предоставляет новое решение, я игнорирую старые методы, потому что нам нужно двигаться вперед, а Flexbox уже много лет поддерживается браузерами, включая IE10.
По центру по горизонтали
Текст
Текст очень просто центрировать по горизонтали, используя свойство
text-align
, для которого установлено значениеcenter
:p { выравнивание текста: центр; }
Блоки
Современный способ центрировать все, что не является текстом, - использовать Flexbox:
#mysection { дисплей: гибкий; justify-content: center; }
любой элемент внутри
#mysection
будет центрирован по горизонтали.Вот альтернативный подход, если вы не хотите использовать Flexbox.
Все, что не является текстом, можно центрировать, применив автоматическое поле слева и справа и установив ширину элемента:
раздел { маржа: 0 авто; ширина: 50%; }
выше
маржа: 0 авто;
- это сокращение от:раздел { margin-top: 0; нижнее поле: 0; маржа слева: авто; маржа-право: авто; }
Не забудьте установить для элемента значение
display: block
, если это встроенный элемент.По центру по вертикали
Традиционно это всегда было сложной задачей. Flexbox теперь предоставляет нам отличный способ сделать это самым простым способом:
#mysection { дисплей: гибкий; align-items: center; }
любой элемент внутри
#mysection
будет центрирован по вертикали.Центрировать по вертикали и горизонтали
Техники Flexbox для центрирования по вертикали и горизонтали можно комбинировать для полного центрирования элемента на странице.
- Свойство