Способы подчеркивания в CSS. Как сделать подчёркивание заголовка? Что не так
Свойство CSS text-decoration отвечает за оформление текста в плане подчеркиваний. Можно сделать нижнее, верхнее подчеркивание. Также можно зачеркнуть текст или применить все подчеркивания сразу.
Синтаксис CSS text-decoration
... text-decoration : none|underline|overline|line-through|inherit ; ...
- none - текст без оформления
- underline - нижнее подчеркивание
- overline - верхнее подчеркивание
- line-through - зачеркивание текста
- blink - мерцающий текст (рекомендуется не применять это значение)
Можно указать несколько значений. Например
text-decoration : underline overline ;
Как изменить стиль и цвет подчеркивания
Для изменения стиля подчеркивания есть специальное свойство text-decoration-style :
text-decoration-style : solid|double|dotted|dashed|wavy ;
- solid - сплошное подчеркивание
- double - двойная линия
- dotted - пунктирная линия
- dashed - штриховая линия
- wavy - волнистая линия
Для изменения цвета подчеркивания служит свойство text-decoration-color :
text-decoration-style : color ;
color может принимать значения в виде RGB, названия цвета (см. коды и названия html цветов для сайта)
ПримечаниеК сожалению, свойство text-decoration-style и text-decoration-color не поддерживается почти всеми браузерами (идет уже 2016 год).
Примеры с подчеркиваниями
Пример 1. Простое подчеркивание
Обычный текст. Нижнее подчеркивание Верхнее подчеркивание
Обычный текст.
Нижнее подчеркивание
Верхнее подчеркивание
Верхнее и нижнее подчеркивание
Пример 2. Зачеркнутый текст
Обычный текст. Зачеркнутый текст
Вот как это выглядит на странице:
Обычный текст. Зачеркнутый текст
Пример 3. Меняем цвет и тип подчеркивания
Обычный текст.
Вот как это выглядит на странице:
Обычный текст.
Красное подчеркивание с пунктирной линией
Если вы не видите каких-то изменений в последнем примере, то можно попробовать использовать проверенный способ с помощью свойства border-bottom :
border-bottom : 1px datted red ;
Для обращения к text-decoration из JavaScript нужно писать следующую конструкцию:
object.style.textDecoration ="VALUE "
Подчёркивание бывает разного вида, соответственно, различаются методы его создания. Ниже перечислены несколько популярных.
Использование text-decoration
Свойство text-decoration со значением underline добавляет подчёркивание к тексту; такого рода подчёркивание можно наблюдать для ссылок по умолчанию. Созданная таким образом линия равна ширине текста и будет такого же цвета, что и сам заголовок. Изменить цвет линии можно через свойство text-decoration-color . В примере 1 показано применение text-decoration к элементу
.
Пример 1. Использование text-decoration
Результат данного примера показан на рис. 1.
Рис. 1. Вид линии, созданной через text-decoration
Браузеры IE и Edge не поддерживают свойство text-decoration-color .
Использование border-bottom
Свойство border-bottom добавляет к элементу снизу линию заданной толщины, цвета и стиля. Такая линия занимает всю доступную ширину, несмотря на длину текста заголовка (рис. 2).
Рис. 2. Вид линии, созданной с помощью border-bottom
Расстояние от линии до текста можно регулировать с помощью свойства padding-bottom , как показано в примере 2.
Пример 2. Использование border-bottom
Культурный речевой акт в XXI веке
Действительно, мифопорождающее текстовое устройство иллюстрирует дискурс, и это придает ему свое звучание, свой характер.
Чтобы линия была на ширину текста, достаточно заголовок превратить в строчно-блочный элемент, добавив к селектору h2 свойство display со значением inline-block .
Использование::after и content
Также можно сделать искусственную линию через комбинацию свойства content и псевдоэлемента ::after . Они лишь будут выводить пустой псевдоэлемент после заголовка, а уже вид этого псевдоэлемента определяется другими свойствами. На рис. 3 показана подобная линия.
Рис. 3. Линия, созданная через::after
Положение такой линии относительно текста задается через свойство bottom с отрицательным значением, цвет линии через свойство background . На деле это получается не линия, а прямоугольный блок, поэтому используем фоновую заливку (пример 3).
Пример 3. Использование::after
Культурный речевой акт в XXI веке
Действительно, мифопорождающее текстовое устройство иллюстрирует дискурс, и это придает ему свое звучание, свой характер.
Продолжаем творить трюки на чистом css. Сегодня я расскажу, как на средствами css сделать красивую разделительную линию в виде волны на сайте. Ее можно использовать, например, для визуального разделения постов на блоге, или отдельных блоков в сайдбаре.
Когда-то я уже рассказывал о . Но там применялся тег-динозавр hr с парочкой хитрых правил в стилях, позволявших поиграться с тенью.
Сегодня же совсем иной расклад. Для отображения линии в виде волны придется добавить в правила гораздо больше хитростей и применять уже не просто css, а css3. Вэлкам!
Для начала обычный html код. Линии мы будем выводить пустыми блоками div со специальными наборами правил. Пустые блоки - это, конечно же, зло. Но иногда приходится с ним мириться.
Здесь мы показали 4 вида линий. А вот так будет выглядеть набор стилей в css для них:
Wave {
overflow: hidden;
position: relative;
width: 630px;
height: 50px;
}
.line {
position: absolute;
width: 630px;
height: 26px;
}
.line1 {
}
.line2 {
}
.line {
background-size: 50px 50px;
}
.smallLine {
position: absolute;
width: 630px;
height: 5px;
}
.smallLine1 {
background: linear-gradient(45deg, transparent, transparent 49%, black 49%, transparent 51%);
}
.smallLine2 {
background: linear-gradient(-45deg, transparent, transparent 49%, black 49%, transparent 51%);
}
.smallLine {
background-size: 10px 10px;
}
.circle {
position: absolute;
width: 630px;
height: 20px;
background: radial-gradient(16px, transparent, transparent 4px, black 4px, black 10px, transparent 11px);
background-size: 30px 40px;
}
.circle2 {
top: 20px;
left: 15px;
}
.ellipse {
position: absolute;
background: radial-gradient(ellipse, transparent, transparent 7px, black 7px, black 10px, transparent 11px);
background-size: 36px 40px;
width: 630px;
height: 20px;
}
.ellipse2 {
top: 20px;
left: 18px;
background-position: 0px -20px;
}
Здесь мы использовали такие фишки как linear-gradient и radial-gradient из арсенала css3.
Есть и другой вариант применения разделительной линии в виде волны (самая нижняя на иллюстрации в начале поста). Ее можно применять в конце какого-либо блока, как нижнее оформление. Код достаточно прост. Сначала html:
В правилах css применим псевдоэлементы:before и:after . О них вы можете прочитать . Вот как будет выглядеть код:
Wave{
width: 630px;
background: #333;
height: 30px;
position: relative;
}
.wave::before{
content: "";
position: absolute;
left: 0;
bottom: 0;
right: 0;
background-repeat: repeat;
height: 10px;
background-size: 20px 20px;
background-image:
radial-gradient(circle at 10px -5px, transparent 12px, #19d1ff 13px);
}
.wave::after{
content: "";
position: absolute;
left: 0;
bottom: 0;
right: 0;
background-repeat: repeat;
height: 15px;
background-size: 40px 20px;
background-image:
radial-gradient(circle at 10px 15px, #19d1ff 12px, transparent 13px);
}
Вот и все! Дерзайте!
Описание
Добавляет оформление текста в виде его подчеркивания, перечеркивания, линии над текстом и мигания. Одновременно можно применить более одного стиля, перечисляя значения через пробел.
Синтаксис
text-decoration: [ blink || line-through || overline || underline ] | none | inherit
Значения
blink Устанавливает мигающий текст. Такой текст периодически, примерно раз в секунду исчезает, потом вновь появляется на прежнем месте. Это значение в настоящее время не поддерживается браузерами и осуждается в CSS3, взамен рекомендуется использовать анимацию. line-through Создает перечеркнутый текст (пример ). overline Линия проходит над текстом (пример ). underline Устанавливает подчеркнутый текст (пример ). none Отменяет все эффекты, в том числе и подчеркивания у ссылок, которое задано по умолчанию. inherit Значение наследуется у родителя.HTML5 CSS2.1 IE Cr Op Sa Fx
Стратегическое нападение
Объектная модель
document.getElementById("elementID ").style.textDecoration
document.getElementById("elementID ").style.textDecorationBlink
document.getElementById("elementID ").style.textDecorationLineThrough
document.getElementById("elementID ").style.textDecorationNone
document.getElementById("elementID ").style.textDecorationOverLine
document.getElementById("elementID ").style.textDecorationUnderline
Браузеры
Internet Explorer до версии 7.0 включительно не поддерживает значение inherit . Линия полученная с помощью значения line-through в IE7 располагается выше, чем в других браузерах; в IE8 эта ошибка исправлена.