Подчеркивание ссылок и текста через CSS, свойство text-decoration. Подчеркивание элементов на CSS

09.07.2019

Подчеркивание для блочных элементов вроде тега

можно проводить двояко. Например, линию под текстом устанавливать на всю ширину блока, независимо от объема текста. А также подчеркивание делать только у текста. Далее рассмотрим оба варианта.

Линия под текстом на всю ширину блока

Чтобы создать линию под текстом, следует добавить к элементу стилевое свойство border-bottom , его значением выступает одновременно толщина линии, ее стиль и цвет (пример 1).

Пример 1. Линия на всю ширину

HTML5 CSS 2.1 IE Cr Op Sa Fx

Линия под заголовком

Пример текста

Расстояние от линии до текста можно регулировать свойством padding-bottom , добавляя его к селектору H1 . Результат данного примера показан на рис. 1.

Подчеркивание текста

Чтобы подчеркнуть только текст, необходимо воспользоваться свойством text-decoration со значением underline , опять же, добавляя его к селектору H1 (пример 2).

Пример 2. Линия на ширину текста

HTML5 CSS 2.1 IE Cr Op Sa Fx

Подчеркивание заголовка

Пример текста

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

Результат данного примера показан на рис. 2.

В случае использования свойства text-decoration линия жестко привязана к тексту, поэтому определить ее положение и стиль не удастся.

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

Ссылка считается тоже активным элементом, поэтому их всегда подчеркивают. Стандартное подчеркивание осуществляется через свойство text-decoration. Из названия можно определить, что свойство отвечает за декорации текста, то есть его оформление. Если при этом свойстве будет стоять значение underline, то текст будет подчеркнут сплошной линией.

В последнее время отходят от такого формата подчеркивания, и все чаще на сайтах можно встретить подчеркивание ссылок пунктирной линией. Для осуществления такого подчеркивания свойство text-decoration уже не послужит. Для этого нужно обратиться к свойству border-bottom. Через него мы установим нижнюю границу для ссылки, которая и послужит нашим подчеркиванием. Чтобы сделать линию пунктирной, требуется указать стиль линии в этом свойстве. Пунктиру соответствует команда dashed. Но перед этим нужно не забыть убрать исходное подчеркивание, которое определяется браузером по умолчанию для ссылок. Для этого обращаемся все к тому же свойству text-decoration и прописываем для него значение none. Чтобы наша фишка применилась только к определенной группе ссылок – необходимо указать селектор класса. Код смотрим внизу

HTML

< p>< a class = "underline" href= "#" > Ссылка 1

Underline { text- decoration: none; border- bottom: 1px dashed #444; color: #444; }

Что видим в браузере?

Для справки

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

Создавая пунктирное подчеркивание текста или ссылки, то вы делаете этот элемент более заметная, который будет отличиться от стандартного. В этом материале подробно рассмотрим, как можно создать такое подчеркивание на интернет ресурсе. Думаю многие согласятся, что кликабельный элемент изначально должен отличатся и где-то даже выделятся на фоне с разными объектами. Это делается для того, чтоб пользователь или гости сайта могли сразу увидеть, что в этом описание или статье есть переход на другую страницу.

Если говорить про ссылку, то это безусловно активный элемент, и здесь веб мастер старается его подчеркивать или создать в другом оттенке. Все потому, как уже говорилось, чтоб изначально была заметна при открытии страницы. За стандартное подчеркивание будет отвечать text-decoration свойство. Где вы также можете добавить к нему разное оформление, как посчитаете нужным видеть этот элемент. Если вы еще добавите в этому значение под названием underline, то автоматически выставляете сплошную горизонтальную линию, которая в ответе за вид подчеркивание.

Но нам нужно создать подчеркивание, чтоб оно было пунктирной линией, что text-decoration в нашем случай не подойдет. Под это нам нужно совершенно другое свойство, под названием border-bottom, где только через него появится возможность аналогично поставить нижнею линию, только уже с пунктиром. Но это не все, так как остается сплошная линия, где все это можно запретить, а точнее text-decoration выставляем запрет на показ, где отвечает за это значение, как none. Чтоб этот трюк мог применяться к заданным ссылкам, то остается самостоятельно выставить класс по значению.

1. Давайте для начало рассмотрим метод, где ссылка будет под пунктирой линией, но при наведение клика они исчезает.

ZorNet.Ru - сайт для вебмастера


CSS

a {
text-decoration: none;
display: inline-block;
border-bottom-style:dashed;
border-bottom-width:1px;
color: #16542d;
}
a:hover {
border-bottom-style:none;
}


Когда поставите на сайт, то все ссылки станут под это обозначание, цвет сами подберете.

2. В этом варианте задаем класс, что можно вывести отдельно, на нужную ссылку оформление.

Underscore_description {
text-decoration: none;
border-bottom: 1px dashed #3c5e8e;
color: #206588;
}


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

Важно знать:

Сам пунктир подчеркивание будет соответствовать не только исходящим ссылкам, то также текстовым командам, что при клике будут выполнять запланированные действия на интернет ресурсе или на странице. Если говорить про окно AJAX, где нужно обновлять документ, что будет происходить без определенной загрузки, то подчеркивание изначально переменяется на заданные элементы.

Позволяет сделать разное подчеркивание в HTML нижнее (underline), верхнее (overline), перечеркнутый текст (line-through) и т.п. Совместим эту фишку с предыдущей и получится:

Во второй строке показано как все записывается в один ряд с text-decoration.

text-decoration-style — стиль подчеркивания текста

Опция задает внешний вид декоративной линии для / ссылки. В новых рекомендациях CSS были добавлены значения wavy и double, теперь их всего 5:

  • solid — сплошная линия;
  • double — двойная (из первого примера выше);
  • dotted — состоит из последовательности точек;
  • dashed — позволяет сделать пунктирное подчеркивание CSS;
  • wavy — эффектная волнистая линия.

text-underline-position — позиционирование CSS подчеркивания

С помощь этого свойства можно управлять позицией линии относительно глифа шрифта.
Всего доступны 4 варианта:

  • auto — располагается максимально близко базовой линии текста;
  • under — под самой нижней границей шрифта;
  • left и right — слева/справа для записей, отображаемых вертикально.

Вот наглядное отличие нижнего подчеркивания текста с помощью under и auto:

Разница, думаю, вполне очевидна.

text-decoration-skip — убираем подчеркивание для элементов

С помощью опции можно отменить (пропустить) декорирование некоторых элементов в HTML строке. Чтобы лучше понять допустимые значения spaces, objects, box-decoration, edges, ink продублирую картинку из прошлой заметки:

То есть, например, с помощью ink вы можете сделать нижнее подчеркивание в CSS, которое бы не пересекалось с символами . Значение objects позволяет пропускать инлайновые элементы (inline-block) — вставляете span, и сплошная линия прервется в соответствующем месте:

Параметры box-decoration, spaces, edges намного хуже поддерживаются браузерами, поэтому их результат иногда отличается от ожидаемого. Вот состояние по совместимости/поддержке text-decoration на момент написания статьи:

Дополнительные фишки для подчеркивания ссылок

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

Как убрать подчеркивание ссылки

a:hover { text-decoration: underline; }

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

Если будут еще какие-то вопросы по теме, задавайте их в комментариях. Постараемся рассмотреть позже или подсказать в ответах. Главное в этом деле практика — попробуйте добавить разные свойства для опции text-decoration непосредственно в примерах или создайте свой тестовый файл. Надеемся по теме подчеркивания текста и ссылок в CSS / HTML все стало ясно.

Хотим заметить, что это не значение border в CSS, а несколько другое значение, при использовании которого не потребуется использование скриптов или flash. Итак, давайте начнем.

Варианты подчёркивания

На самом деле, вариантов может быть множество - всё зависит от вашей фантазии. Мы вам покажем три разных варианта: появление полосы слева, от центра и справа.

Пример 1: подчёркивание слева

HTML

Для начала давайте создадим элемент. Например, тег a , который является ссылкой.

CSS

Обычно подчеркивание определяется значением text-decoration , но анимация в этом случае не будет работать. В данном случае мы его опустим и присвоим псевдоэлемент :before , с помощью которого мы и сделаем анимированное появление подчёркивания.

A { display: inline-block; position: relative; text-decoration: none; }

Данному элементу мы задали блочное обтекание, что не позволит подчёркиванию выйти за пределы границ элемента и позволит разместить тег в любом месте внутри какого-либо блока. Далее перейдём к псевдоэлементу :before .

A:before { display: block; position: absolute; content: ""; height: 2px; width: 0; background: #ec4444; transition: width 0.3s ease-in-out; left: 0; bottom: 0; }

Мы задали абсолютное позиционирование псевдоэлементу для того, чтобы подчёркивание было внутри тега и не выходило за его пределы. Высота полосы будет составлять 2 пиксела, длина будет равна 0, цвет красный, а значение transition отвечает за анимацию. Теперь остается добавить эффект при наведении.

A:hover:before { width: 40%; }

Таким образом мы задали значение длины в 40% от всей длины элемента. По аналогии расскажу и про другие примеры, где мы будем использовать еще один псевдоэлемент.

Пример 2: подчёркивание от центра

HTML

Оставим тот же тег.

CSS

a { display: inline-block; position: relative; text-decoration: none; } a:before { display: block; position: absolute; content: ""; height: 2px; width: 0; background: #ec4444; transition: width 0.3s ease-in-out, left 0.3s ease-in-out; left: 50%; bottom: 0; } a:after { display: block; position: absolute; content: ""; height: 2px; width: 0; background-color: #ec4444; transition: width 0.3s ease-in-out; left: 50%; bottom: 0; }

A:hover:before { width: 50%; left: 0; } a:hover:after { width: 50%; }

При наведении нам нужно, чтобы подчеркивание шло от центра к краям элемента. Таким образом, пвседоэлементу :before мы задали позиционирование слева равным 0, что сделает появление подчёркивания к левому краю.

Пример 3: подчёркивание справа

HTML

текст ссылки

CSS

a { display: inline-block; position: relative; text-decoration: none; } a:after { display: block; position: absolute; content: ""; height: 2px; width: 0; background: #ec4444; transition: width 0.3s ease-in-out; right: 0; bottom: 0; } a:hover:after { width: 40%; }

Таким образом, мы получили появление подчёркивания справа.

Похожие статьи