Как сделать отступ underline

Обновлено: 04.07.2024

Используя CSS, когда text-decoration:underline применяется текст , возможно ли увеличить расстояние между текстом и подчеркиванием?

Это не совсем то, о чем вы просили, но это была интересная статья на эту тему: CSS Design: Custom Underlines

В CSS3 появилось много новых свойств для оформления текста. Пожалуйста, проверьте alligator.io/css/text-decoration Пример: text-underline-position: under; и text-decoration-skip: ink; Обратите внимание, что это, вероятно, не обратно совместимо со старыми браузерами.

Для многострочного вы можете заключить многострочный текст в промежуток внутри элемента. Например , insert multiline texts here то просто добавьте border-bottom и padding на - Demo

Моя единственная проблема с этим трюком - когда я использую высоту строки, равную высоте div, а затем выравнивание по вертикали: middle; чтобы он был в центре, тогда я не могу использовать этот трюк, потому что тогда подчеркивание заканчивается ниже div.

+1 Я не знал о том, чтобы оставить свойство color для наследования цвета шрифта - это сэкономит много пота и слез в будущем!

Я не совсем уверен, почему этот ответ имеет так много голосов. Это не полностью работает с многострочными текстами.

Обновление 2019: Рабочая группа CSS опубликовала черновик для оформления текста уровня 4, в котором будет добавлено новое свойство text-underline-offset (а также text-decoration-thickness ), позволяющее контролировать точное размещение подчеркивания. На момент написания статьи это черновой вариант на ранней стадии, который не был реализован ни одним браузером, но похоже, что в конечном итоге приведенная ниже техника устареет.

Оригинальный ответ ниже.

Проблема с использованием border-bottom непосредственно в том , что даже padding-bottom: 0 , подчеркивание имеет тенденцию быть слишком далеко от текста , чтобы хорошо выглядеть. Таким образом, у нас все еще нет полного контроля.

Одним из решений, обеспечивающих точность пикселей, является использование :after псевдоэлемента:

Изменяя bottom свойство (отрицательные числа в порядке), вы можете расположить подчеркивание именно там, где вы хотите.

Одной из проблем, связанных с этим методом, является то, что он ведет себя немного странно с переносом строк.


Модуль содержит возможности CSS, относящиеся к оформлению текста, такие как подчеркивание, тени текста, а также акценты в тексте восточно-азиатских языков.

Свойства для оформления текста

1. Оформление линии: подчеркивание, обводка и зачеркивание

Подчеркивание, обводка и перечеркивающие линии отображаются только для незамещаемых блоков уровня строки ( display: inline ) и отображаются по всему тексту, включая пробелы между символами и словами, за исключением отступов в начале и конце строки.


Рис. 1. Прерывание линии подчеркивания

1.1. Вид линии оформления: свойство text-decoration-line

Поддержка браузерами

IE: —
Edge: —
Firefox: 36, 35 -moz-
Chrome: 57
Safari: 12.1, 7.1 -webkit-
Opera: 44
iOS Safari: 8 -webkit-
UC Browser for Android: 11.8
Chrome for Android: 73
Samsung Internet: 7.2

Свойство text-decoration-line определяет, какой тип линии, если таковые имеются, добавляется к элементу.

Свойство не наследуется.

text-decoration-line
Значения:
none Ни оформляет, ни запрещает оформление текста. Значение по умолчанию.
underline Подчёркивает каждую строку текста.
overline Каждая строка текста имеет линию над ней (то есть на противоположной стороне от подчеркивания).
line-through Добавляет линию через середину каждой строки текста.
inherit Наследует значение свойства от родительского элемента.
initial Устанавливает значение свойства в значение по умолчанию.

1.2. Стиль линии оформления: свойство text-decoration-style

Поддержка браузерами

IE: —
Edge: —
Firefox: 36, 35 -moz-
Chrome: 57
Safari: 12.1, 7.1 -webkit-
Opera: 44
iOS Safari: 8 -webkit-
UC Browser for Android: 11.8
Chrome for Android: 73
Samsung Internet: 7.2

Свойство text-decoration-style определяет стиль линий, нарисованных для оформления текста, указанного в элементе. Значения имеют то же значение, что и для свойства border-style .

Свойство не наследуется.

text-decoration-style
Значения:
solid Добавляет отрезок простой линии. Значение по умолчанию.
double Две параллельные сплошные линии с небольшим промежутком между ними.
dotted Последовательность круглых точек.
dashed Последовательность прямоугольных штрихов.
wavy Указывает на волнистую линию.
inherit Наследует значение свойства от родительского элемента.
initial Устанавливает значение свойства в значение по умолчанию.

1.3. Цвет линии оформления: свойство text-decoration-color

Поддержка браузерами

IE: —
Edge: —
Firefox: 36, 35 -moz-
Chrome: 57
Safari: 12.1, 7.1 -webkit-
Opera: 44
iOS Safari: 8 -webkit-
UC Browser for Android: 11.8
Chrome for Android: 73
Samsung Internet: 7.2

Свойство text-decoration-color определяет цвет линии оформления текста, установленный для элемента с text-decoration-line .

Свойство не наследуется.

Значения:
цвет Значение принимает все форматы цвета свойства color. Значение по умолчанию currentColor .
inherit Наследует значение свойства от родительского элемента.
initial Устанавливает значение свойства в значение по умолчанию.

1.4. Краткая запись свойств линии оформления: свойство text-decoration

Поддержка браузерами

IE: —
Edge: —
Firefox: 36, 35 -moz-
Chrome: 57
Safari: 12.1, 7.1 -webkit-
Opera: 44
iOS Safari: 8 -webkit-
UC Browser for Android: 11.8
Chrome for Android: 73
Samsung Internet: 7.2

Свойство text-decoration является краткой формой записи свойств text-decoration-line text-decoration-style text-decoration-color в одном объявлении. Пропущенные значения устанавливаются на их начальные значения. Значение по умолчанию text-decoration: none solid currentColor; . Свойство не наследуется. Тем не менее, стиль всех линий оформления текста должен быть одинаковый для одного элемента.

1.5. Расположение линии оформления: свойство text-underline-position

Поддержка браузерами

IE: —
Edge: 12
Firefox: —
Chrome: 71
Safari: —
Opera: —
iOS Safari: —
UC Browser for Android: ?
Chrome for Android: 71
Samsung Internet: —

Свойство text-underline-position устанавливает положение линии подчеркивания, указанного в элементе.

Значения:
auto Браузер может использовать любой алгоритм для определения позиции подчеркивания, тем не менее линия должна быть размещена на или под базовой линией текста. Значение по умолчанию.
under Подчеркивание расположено под текстовым содержимым элемента. В этом случае подчеркивание обычно не пересекает нижний выносной элемент. Это значение можно комбинировать с left или right , если конкретная сторона предпочтительна в вертикальных типографских режимах.
left В вертикальных типографских режимах подчеркивание выравнивается по левому краю текста. Тем не менее, это значение интерпретируется как under .
right В вертикальных типографских режимах подчеркивание выравнивается по правому краю текста. Тем не менее, это значение интерпретируется как under .
inherit Наследует значение свойства от родительского элемента.
initial Устанавливает значение свойства в значение по умолчанию.


Рис. 2. Подчеркивание текста с обеих сторон в вертикальных типографских режимах с помощью значений left и right

2. Тень текста: свойство text-shadow

Поддержка браузерами

IE: 10
Edge: 12
Firefox: 3.5
Chrome: 4
Safari: 4
Opera: 10
iOS Safari: 3.2
UC Browser for Android: 11.8
Chrome for Android: 73
Samsung Internet: 4

Свойство text-shadow используется для добавления тени к тексту. Тень текста — интересный инструмент, который позволяет создавать удивительные эффекты. Тени могут быть однослойными или многослойными, размытыми, цветными или полупрозрачными. Задавая тень для элемента, можно указывать только одно значение длины и цвет, таким образом создавая цветную копию отдельного символа или слова. Также, с помощью тени можно сделать текст более читаемым, если контраст между цветом текста и фоном невелик.

Каждая тень применяется как к самому тексту, так и к элементам его оформления (свойство text-decoration ). Одновременно можно задавать несколько теней, указывая их через запятую. Тени накладываются друг на друга, но не перекрывают сам текст. Первая тень всегда расположена сверху над остальными тенями. Свойство наследуется.

Каждая тень определяется двумя или тремя значениями длины и необязательным цветом. Допустимы длины, равные 0 .

Свойство не наследуется.

text-shadow-syntax
Рис. 3. Синтаксис свойства text-shadow

text-shadow
Значения:
x-offset Задает горизонтальное смещение тени. Положительное значение рисует тень, смещенную вправо от текста, отрицательная длина — влево.
y-offset Задает вертикальное смещение тени. Положительное значение смещает тень вниз, отрицательное — вверх.
blur Задает радиус размытия. Отрицательные значения не допускаются. Если значение размытия равно нулю, то край тени четкий. В противном случае, чем больше значение, тем больше размыт край тени.
цвет Задает цвет тени. Если цвет отсутствует, используемый цвет берется из свойства color .
none Значение по умолчанию, означает отсутствие тени текста. Убирает тень элемента из группы элементов с заданным свойством.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

В отличие от box-shadow , текстовые тени не обрезаются и могут отображаться, если текст частично прозрачен. Как и box-shadow , текстовые тени не влияют на макет и не вызывают прокрутку или увеличение размера прокручиваемой области.

Свойства CSS для форматирования текста позволяют оформить содержимое страницы, не затрагивая HTML-код. Какие же параметры можно задать тексту через таблицы стилей?

Выравнивание по горизонтали

Для него используется свойство text-align. Выровнять с его помощью можно только блочный текст (теги

). Свойству может быть задано одно из четырех значений:

Вот код HTML-страницы, текст которой выровнен по правому краю:

Выглядеть страница будет так:

Выравнивание текста

Если текст выровнен по ширине (text-align: justify), то можно использовать свойство text-align-last, чтобы задать отличное от основного содержимого выравнивание последней строчки текста элемента.

Выравнивание по вертикали

Может задаваться только для строчных элементов (картинок, форм), определяется свойством vertical-align. С его помощью выравнивается не содержимое, а сами элементы, кроме случая с ячейкой – использование vertical-align выравнивает не её саму, а только расположенный в ней текст. Значения могут быть следующими:

  • baseline. задаётся свойству по умолчанию и выравнивает базовую линию элемента по базовой линии родителя. Если у родителя её нет, то выравнивание происходит по нижней границе.
  • top и bottom. Если задано первое значение, то верхний край элемента будет совпадать с верхним краем самого высокого элемента строки. Можно сказать, что top — это выравнивание по верхнему краю. Второе свойство выполняет противоположную функцию — совмещает нижний край оформляемого элемента с нижней частью элемента, расположенного в строке ниже всех, то есть происходит выравнивание по нижнему краю.
  • text-top и text-bottom. От предыдущих свойств отличаются тем, что выравнивание происходит по самым нижним и верхним текстовым элементам, а не любым.
  • sub и super. Аналоги HTML-тегов и . Первое свойство делает элемент подстрочным, второе — надстрочным. Шрифт текста при этом не меняется.
  • middle. Выравнивание по центру относительно элемента-родителя.

Также с помощью vertical-align можно переместить элемент вверх или вниз, указав значение в пикселях, единицах или процентах. Положительная цифра переместит его вверх, отрицательная — вниз.

Отступ первой строки

Свойство text-indent позволяет задать отступ первой строки текста. Например, так можно отформатировать абзацы, чтобы лучше визуально отделить их друг от друга. В качестве значения используется цифра, задающая длину в процентах, единицах или пикселях. Отрицательное число превратит отступ в выступ.

Межстрочный интервал

Задаётся свойством line-height, в качестве значения которого может указываться:

  • Процент. Высчитывается от размера шрифта элемента.
  • Число. Определяется как множитель от размера шрифта, который принимается за единицу. Например line-height: 1.5; установит полуторный интервал.
  • Пиксели или пункты. Определяют не переменное, как предыдущие варианты, а постоянное расстояние.

Декорирование текста

Значение свойства text-decoration позволяет сделать текст зачёркнутым (line-through), подчёркнутым (underline) — линия появляется под текстом, надчёркнутым (overline) — линия появляется над текстом, или отменить эффекты (none).

Вот пример кода:

Результатом работы будет такая страница:

Декорированный текст

Интервал между символами и словами

Расстояние между словами можно изменить с помощью свойства word-spacing. Межсимвольное расстояние задаётся свойством letter-spacing. В качестве значений используются любые принятые в CSS единицы длины.

Смена регистра

Указав свойство text-transform, вы можете сделать так, чтобы все буквы текста были заглавными (значение uppercase), строчными (lovercase), или чтобы каждое слово начиналось с большой буквы (capitalize).

Варианты написания текста

Обратите внимание, что текст в коде набран как обычно: единственная заглавная буква стоит в начале предложения. Отображение на странице меняет CSS-стиль.

Устанавливает величину отступа от каждого края элемента.

margin-bottom

Устанавливает величину отступа от нижнего края элемента.

margin-left

Устанавливает величину отступа от левого края элемента.

margin-right

Устанавливает величину отступа от правого края элемента.

margin-top

Устанавливает величину отступа от верхнего края элемента.

padding

Устанавливает значение полей вокруг содержимого элемента.

padding-block

Определяет начальный и конечный внутренние отступы элемента по блочной оси.

padding-block-end

Определяет конечный внутренний отступ элемента по блочной оси.

padding-block-start

Определяет начальный внутренний отступ элемента по блочной оси.

padding-bottom

Устанавливает значение поля от нижнего края содержимого элемента.

padding-inline

Определяет начальный и конечный внутренние отступы элемента по строчной оси.

Читайте также: