Uniform alignment of blocks in width. All about CSS alignment

In programs such as, for example, Microsoft Word You've probably come across horizontal text alignment tools. You can align text left or right, centered, or justified. The same thing exists in CSS - text alignment is done using text-align properties and the corresponding values, which are shown in the table:

Example of a style entry:

P ( text-align: left; )

Left, right, and center values ​​Left-aligned text almost always looks good on web pages and is easy to read. Right alignment is, as a rule, rarely used in European languages, but it cannot be called completely useless: this style is useful for beautiful design captions for photos or quotes, alignment of the contents of table cells or small fragments of text. The center value is often used for the same purposes. The justify value Justify text in CSS can be used for printed versions of pages, but it is not recommended to get carried away with this style on web pages designed for display viewing. Why? At first glance, the justified text looks nice and even, like a column in a newspaper. But in order to stretch the text this way, the browser has to add extra space between words, as a result of which unsightly gaps may form in the text, making reading difficult. In programs designed to prepare data for printing, much more happens. fine tuning spacing in the text, and word wrapping is often used, which is not present in many browsers. Therefore, it is necessary to check how justified text looks on web pages, and the first question to ask yourself is: is it easy to read? This is especially true for narrow blocks of text (incl. pages). Start and end values ​​The start and end values ​​for the text-align property are implemented in CSS3 and work much the same as left and right , but there is a difference. By applying the start value to text that runs from left to right (LTR), the alignment will be left (correspondingly, for text that runs from right to left (RTL), the alignment will be right) . It is logical that the end value works in the opposite way (that is, it aligns LTR text to the right and RTL text to the left). These two values ​​are not supported by some browsers, including Internet Explorer

, therefore, if there is no urgent need to use them, we recommend using the left and right values. The screenshots show examples of use different meanings for property:

CSS text-align
Screenshot 1: Aligning LTR text to the left using the start value. A similar look can be achieved using the left value.
Screenshot 2: Aligning LTR text to the right using the end value. A similar look can be achieved using the right value.
Screenshot 3: Aligning text to width. With small font and large page/block width, this option for aligning text on a web page looks acceptable.
Screenshot 4: the font size has been increased and the block width has been reduced compared to the previous example. As you can see, ugly gaps have appeared in the text (underlined with a red line).

Screenshot 5: two ways to align text using the example of the mobile version of our tutorial (on the left - text-align: left, on the right - text-align: justify). Try reading the text in both columns and determine which option is more comfortable to read. The CSS text-align property is responsible for horizontally aligning text, as well as images and other elements. The property has 4 possible options

alignment.

CSS text-align syntax ...text-align:; ...
  • center | justify | left | right | inherit
  • center - alignment to the center of the area (for example, the width of the area is 500 pixels, which means the alignment will be along a line of 250 pixels)
  • justify - stretches text across the entire width of the area
  • left - left alignment
  • right - right alignment

inherit - accept the value of the ancestor (parent)

Most often these properties are used in blocks

and paragraphs
Note:

There is also a vertical-align property, which controls the vertical alignment.

How to do text alignment in html

Example No. 1.

Выравнивание текста по левому краю

Выравнивание текста по левому краю

Пример №2. Выравнивание текста и картинки по центру

Выравнивание текста по центру. Зачастую используются для заглавия статей или для вывода картинок по центру.

Выравнивание текста по центру

На странице преобразуется в следующее

Выравнивание текста по левому краю

Пример №3. Выравнивание текста по правому краю

Выравнивание текста по правому краю.

Выравнивание текста по правому краю

На странице преобразуется в следующее

Выравнивание текста по правому краю

Пример №4. Выравнивание текста по ширине всей области

Выравнивание текста по всей ширине. Получается, что выравнивание происходит и полевому, и по правому краю. Браузер автоматически добавляет пробелы.

На странице преобразуется в следующее

Выравнивание текста по ширине всей области

Иногда text-align: justify; может не работать. Это связано с наследованием и даже с работой браузера. В целом не рекомендуется использовать этот параметр.

Примечание

Вместо свойства text-align можно также использовать атрибут align , который пишется вместе с тегом. Его можно использовать у различных тегов. Например:

Выравнивание по центру

Выравнивание текста по ширине всей области

... ...

Разница в тегах

и

В том, что последний делает переход на новую строку (вертикальный отступ), а div не делает.

Здравствуйте! Продолжаем осваивать основы языка HTML. Посмотрим, что нужно писать, чтобы выровнять текст по центру, ширине или краям.

Переходя к делу, рассмотрим, как в HTML сделать текст по центру тремя разными способами. Последние два связаны непосредственно с таблицей стилей. Она может представлять собой файл CSS, который подключается к страницам сайта и задает их вид.

Способ 1 - прямая работа c HTML

На самом деле все достаточно просто. Смотрите пример ниже.

Выравнивание абзаца по центру.

Если требуется сдвинуть текстовые фрагменты иным образом, то вместо параметра «center» прописываем следующие значения:

  • justify – выравнивание текста по ширине страницы;
  • right – по правому краю;
  • left - по левому.

По аналогии можно сдвинуть контент, который находится в заголовках (h1, h2), контейнере (div).

Способ 2 и 3 - использование стилей

Конструкцию представленную выше можно слегка трансформировать. Эффект будет таким же. Для этого нужно прописать представленный ниже код.

Текстовый блок.

В таком виде код прописывается непосредственно в HTML для выравнивания текстового контента по центру.

Есть еще альтернативный вариант добиться результата. Нужно будет проделать пару действий.

Шаг 1. В основном коде написать

Текстовый материал.

Шаг 2. В подключаемом файле CSS вписать следующий код:

Rovno {text-align:center;}

Отмечу, что слово «rovno» это все лишь название класса, который можно назвать и по-другому. Это остается на усмотрение программиста.

По аналогии в HTML можно запросто сделать текст по центру, ширине, а также выровнять по правому или левому краю страницы. Как видите, есть далеко не один вариант достичь цели.

Всего несколько вопросов:

  • Делаете информационный некомерческий проект?
  • Хотите, чтобы сайт хорошо продвигался в поисковых системах?
  • Желаете получать доход в сети?

Если все ответы положительные, то просто посмотрите на о комплексном подходе к развитию сайта. Информация окажется особенно полезной, если он работает на CMS WordPress.

Хотелось бы подметить, что собственные сайты - это лишь один из множества вариантов сформировать пассивный или активный доход на просторах интернета. Мой блог как раз посвящен финансовым возможностям в сети.

Работали когда-нибудь в сфере арбитража трафика, копирайтинга и других направлений деятельности, которые приносят основной или дополнительный доход при удаленном сотрудничестве? Об этом и многом другом вы можете узнать прямо сейчас на страницах моего блога.

Впереди опубликую еще не мало реально полезной информации. Оставайтесь на связи. При желании можете подписаться на обновления Workip на e-mail. Форма подписки расположена ниже.

Продолжая свои «css-раскопки» возникла новая идея, разобрать по косточкам ещё одну актуальную тему, которая касается равномерного выравнивания блоков по ширине. В принципе мои доскональные исследования я уже запостил у себя в блоге , но так как прошлая моя работа очень понравились Хабра-сообществу, то я решил сделать здесь небольшой краткий обзорчик этой статьи, чтобы ни одна хабра-душа не пропустили её наверняка. Так что, как говорил Гагарин: «Поехали».

В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.


На рисунке видно, что пункты выравниваться по ширине, примыкая к боковым стенкам и делая отступы между собой – равнозначными.

Как это работает?

По сути, мы должны получить то, что делает text-align: justify с текстом. Так как поведение наших блоков уж очень напоминает результат выравнивания слов в строке с помощью именно этого свойства. Думаю многие уже примерно представляют, что это за свойство и примерную его работу.

* В этом обзоре я не стал постить разбор этапов всего алгоритма, об этом можно почитать в самой статье . Главное, чтобы вы понимали суть.

Наша задача

Наша задача состоит в том, чтобы построить решение на базе этого алгоритма. Применить, симулировать, заменить, сделать всё что угодно, главное в итоге получить то, что мы хотим. А именно – равномерно выровненные элементы в строке, боковые из которых прижаты к своим границам. Ну и конечно же расстояния (пробелы) между этих элементов должны быть абсолютно одинаковыми при любой ширине контейнера.

* Сразу хочу сообщить, что вариантов (рабочих и не очень) на самом деле получилось целых 4 штуки, плюс ещё куча интересных и полезных разобранных нюансов, на огромную статью (в моём стиле). Поэтому тут я вкраце опишу некоторые из них:)

Варианты 3

А вот третий вариант уже построен на самом алгоритме text-align: justify и инлайн-блоках, которые и принесли свои плоды, но не совсем. Во-первых, мне пришлось разбавить список лишним, дополнительным элементом, а во-вторых, в IE6-7 обнаружились интересные факты, рыться в которых мне доставило большое удовольствие. В этих браузерех данное решение отказывалось работать вообще. И догадайтесь, кто пришёл мне на помощь. Верно, SelenIT2 ! Но он пришёл ни один, а с великолепной идеей (которую он нагло спёр у нашего общего коллеги по цеху GreatRash), от которой я был просто в шоке. Как оказалось, пара волшебных свойств CSS3 родом из глубокой древности может превратить это решение в кроссбраузерное и заставить работать text-align: justify в наших старичках IE6-7.

Весь секрет оказался в последней строчке следующего кода:
ul { font: 14px Verdana, Geneva, sans-serif; text-align: justify; /* Обнуляем для родителя*/ line-height: 0; font-size: 1px; /* 1px для Opera */ /* Лекарство для IE6-7*/ text-justify: newspaper; }
Как видно, с помощью text-justify: newspaper; у ul наш вариант становится кроссбраузерным. Это происходит за счёт того, что свойство text-justify: newspaper предназначено для увеличения или уменьшения интервалов между буквами и между словами. MSDN заявляет, что эта вещь «Самая навороченная форма выравнивания для латинского алфавита», а вот в этой статье ещё есть и дополнение, что для арабских текстов это свойство вытягивает и сами буквы.

Варианты 4

Ну, и вариант 4 стал отказом от дополнительной разметки, что повлекло за собой новые проблемы в IE6-7.


Оказывается всё дело в том, что text-justify: newspaper лишь даёт возможность растягивать наши буквы (inline-block), но не команду. Проще говоря, он рассказывает строке, как бы он хотел, чтобы она была растянута, а text-align: justify является растягивающей силой. Т.е. text-align: justify отвечает за растяжение строки, а text-justify: newspaper лишь уточняет, как именно это растяжение будет происходить.

В обзоре 3-го варианта я сказал, что SelenIT2 подсказал мне два свойства, одно из которых (text-justify: newspaper) помогло нам в предыдущем варианте, а другое как раз помогло в этом! Причём в этот раз они объединились и уже с двойной силой смогли победить последний вариант.
ul { font: 14px Verdana, Geneva, sans-serif; text-align: justify; /* Обнуляем для родителя*/ line-height: 0; font-size: 1px; /* 1px для Opera */ /* Лекарство для IE6-7*/ text-justify: newspaper; zoom:1; /* Включаем в работу последнюю строку*/ text-align-last: justify; }
Встречайте! text-align-last - свойство, которое включает алгоритм text-align: justify в самой последней строке текста, если к ней применён этот самый text-align: justify . Проще говоря, когда мы применяем к тексту обычный text-align: justify , то, видя это, text-align-last указывает первому на то, что он поступает плохо и что ему придётся теперь работать и в последней строчке тоже.

Кстати, эти свойства специфицированы , а не какая-нибудь проприетарщина (кроме значения newspaper, которое теперь называется иначе). Так что ни один котенок не пострадает) И хочу подчеркнуть, что баг IE6-7 поборен с помощью CSS3 - кто еще когда такое видел? :)

В общем, подводя итоги обзора, хочу сказать, что рад, что мне удалось найти действительно достойное решение. Причём не просто найти, а разобраться во всём и довести его до абсолютной кроссбраузерности, затратив минимум кода и не засоряя разметки.

Если краткого обзора кому-то показалось мало, то я рекомендую прочитать вот эту (уже большую) статейку с доскональным разбором полётов. Но, предупреждаю! Статья действительно не маленькая, поэтому перед началом чтения лучше запастись вашими любимыми печеньками с чаем:)

Теги: Добавить метки

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

Значения

center Выравнивание текста по центру. Текст помещается по центру горизонтали окна браузера или контейнера, где расположен текстовый блок. Строки текста словно нанизываются на невидимую ось, которая проходит по центру веб-страницы. Подобный способ выравнивания активно используется в заголовках и различных подписях, вроде подрисуночных, он придает официальный и солидный вид оформлению текста. Во всех других случаях выравнивание по центру применяется редко по той причине, что читать большой объем такого текста неудобно. justify Выравнивание по ширине, что означает одновременное выравнивание по левому и правому краю. Чтобы произвести это действие браузер в этом случае добавляет пробелы между словами. left Выравнивание текста по левому краю. В этом случае строки текста выравнивается по левому краю, а правый край располагается «лесенкой». Такой способ выравнивания является наиболее популярным на сайтах, поскольку позволяет пользователю легко отыскивать взглядом новую строку и комфортно читать большой текст. right Выравнивание текста по правому краю. Этот способ выравнивания выступает в роли антагониста предыдущему типу. А именно, строки текста равняются по правому краю, а левый остается «рваным». Из-за того, что левый край не выровнен, а именно с него начинается чтение новых строк, такой текст читать труднее, чем, если бы он был выровнен по левому краю. Поэтому выравнивание по правому краю применяется обычно для коротких заголовков объемом не более трех строк. Мы не рассматриваем специфичные сайты, где текст приходится читать справа налево, там возможно подобный способ выравнивания и пригодится. auto Не изменяет положение элемента. inherit Наследует значение родителя. start Аналогично значению left , если текст идёт слева направо и right , когда текст идёт справа налево. end Аналогично значению right , если текст идёт слева направо и left , когда текст идёт справа налево.

HTML5 CSS2.1 IE Cr Op Sa Fx

text-align

Align text to the left. Valid by default.
Center alignment

The result of this example is shown in Fig. 1.

Rice. 1. Align text in Safari browser

Internet Explorer up to version 7.0 inclusive interprets it somewhat differently this example than other browsers, aligning not only text, but also blocks (Fig. 2).

Rice. 2. Align text in Internet browser Explorer 7

Object Model

document.getElementById("elementID ").style.textAlign

Browsers

IE up to and including 7.0 aligns more than just content block element, but also the element itself.