От автора: Скорее всего, вы уже знакомы с данным свойством. Например, большинство браузеров, по умолчанию, задают с помощью данного свойства подчеркивание у ссылок (text-decoration: underline;), которое мы можем отменить вот так: text-decoration: none;.
Но возможно вы не знаете о том, что вы можете делать не только это с помощью данного свойства, а также существуют различные дополнительные свойства, которые предоставляют вам больше возможностей для управления оформлением текста.
Для данного свойства можно задать несколько значений
Например:
1 2 3 |
a { text-decoration: underline overline; } |
Посмотрите описание данной возможности в Альманахе. Если быть точнее, то в данном случае происходит добавление нескольких значений для дополнительного свойства text-decoration-line.
Вы можете управлять цветом данного свойства
По умолчанию для данного свойства задается цвет, указанный для текста (в свойстве color). Но вы можете изменить это:
1 2 3 |
a { text-decoration-color: #f06d06; } |
Посмотрите описание данной возможности в Альманахе.
Примечание: Браузерный «движок» Gecko отображает подчеркивание под нижним выносным элементом букв (подстрочным элементом литеры), а WebKit/Blink – над:
Слева показан пример в браузере Chrome, справа – в Firefox.
Обычно цветные подчеркивания реализуются с помощью свойства border, а не text-decoration. Для каждой из границ элемента может быть указан индивидуальный цвет, толщина, и позиционируются границы значительно лучше.
Но есть вещи, которые нельзя сделать с помощью границ, например…
Вы можете менять стиль данного свойства
Вы просто не сможете сделать также с помощью границ!
1 2 3 |
a { text-decoration-style: wavy; } |
Посмотрите описание данной возможности в Альманахе.
А можно сделать и еще лучше
Есть определенное желание сделать подчеркивание текста лучше. Например, пропускать подчеркивание нижних выносных элементов у букв для улучшения читабельности подчеркнутого текста:
Такая возможность будет доступна благодаря свойству text-decoration-skip, хотя она пока не реализована ни в одном из браузеров. А пока мы можем указать для подчеркивания более мягкий и менее контрастный цвет. Здесь можно применить rgba():
И, кстати, пропуск нижних выносных элементов у букв – это всего лишь одна из возможностей. Вы также сможете пропускать некоторые строчные элементы, пробелы и управлять подчеркиванием по краям текста.
Примечание: Похоже, что в Safari/iOS пропуск нижних выносных элементов у букв задан по умолчанию.
Если вы хотите отменить данное поведение, воспользуйтесь следующей записью: -webkit-text-decoration-skip: none;.
Тестирование
Из-за разной степени браузерной поддержки, некоторые (или все) демо-примеры могут не сработать в вашем браузере.
Так что да! Даже такие простые вещи, которые мы воспринимаем, как должное, могут со временем меняться в CSS царстве.
Автор: Chris Coyier
Источник: //css-tricks.com/
Редакция: Команда webformyself.