Тень CSS — теория, примеры, практика

Пояснения:

  1. <Box-shadow>, <text-shadow> — свойства языка CSS, используются для создания теней.
  2. <X-offset>, <y-offset>, <blur> — параметры свойства теней.
  3. <Width>, <height>, <padding>, <margin> — свойства CSS, отвечают за изменение размеров и местоположения элементов.
  4. <A> — тег, отвечает за создание ссылок.
  5. Селекторы — своего рода ссылки, с помощью которых CSS определяет к каким именно элементам нужно применять те или иные стили.
  6. Hover — селектор состояния.
  7. <Transition> — свойство анимированного изменения объекта.

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

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

В этой статье мы подробно опишем создание теней в CSS. Кроме обычных внешних теней, мы покажем как создавать внутренние тени и тени состояния.

CSS — тень блока. Свойство box-shadow

Тень CSS
html{
    background: #fff;
}
body{
    width: 80%;
    margin: 0 auto;
	background-color: rgba(150,60,60,0.54)
	box-shadow: -1px 5px 5px 5px rgba(77,63,63,0.88)
}

Инструмент позволяет нам создать одну или несколько теней вокруг блока, с любым цветом.

По сути, что такое тень? Это точная копия площади элемента, которая имеет определенный цвет и расположение. Эти параметры можно задавать с помощью свойства box-shadow.

Свойства тени используются в таком порядке:

  1. Перемещение по горизонтали.
  2. Перемещение по вертикали.
  3. Уровень расплывчатости.
  4. Растяжение.
  5. Цвет тени.

Именно в таком порядке нужно указывать параметры тени. Главное, не перепутать значение, так как первые 4 задаются одинаково, с помощью числовых значений — <px>, <em>, <rem> и так далее.

Первый параметр, которое называется <x-offset> — смещает тень по горизонтали относительно блока. Принимает любые значения, включая отрицательные.

Отрицательные значения смещают тень влево, а положительные — вправо. Значение параметра может быть равно 0 при размытии теней по вертикальной оси.

Далее по порядку идет свойство <y-offset>. Отвечает за перемещение тени по вертикали. Тоже принимает любые значения — положительные и отрицательные. Отрицательные значения смещают тень вверх, а положительные — вниз.

Параметру может быть присвоено значение 0. Обычно используется при горизонтальном размытии теней.

Внимание! Советуем указывать значение в пикселях. Можете использовать и другие значения — <em>, <rem>, % и другие, но делать это не рекомендуется. Все эти величины довольно большие для создания теней. Указав их можно переборщить с размерами.

3 значение — <blur> или размытие. Данное значение вводить не обязательно, без его указания тени всё равно будут работать.

Заданное значение определяет радиус, по которому будет размываться тень. Отрицательные значения не указываются.

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

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

Расширение происходит за счет растяжения центральной сплошной части тени, которая находится между размытыми краями.

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

И последний параметр — <shadow-color>. Его также необязательно указывать, так как по умолчанию тень блока имеет собственный цвет — черный.

Для изменения цвета подойдет любая цветовая система — hex, rgb, rgba, а также стандартные цвета.

Внимание! Если вы хотите чтобы свойство работало в Safari, то этот параметр должен быть указан, даже если вы используете стандартный черный цвет.

Внутренняя тень — CSS

Внутренняя тень CSS
html{
    background: #fff;
}
body{
    width: 80%;
    margin: 0 auto;
	background-color: rgba(150,60,60,0.54)
	box-shadow: -1px 5px 5px 5px rgba(77,63,63,0.88) inset;
}

Итак, давайте рассмотрим первый пример применения теней. Здесь мы будем рассматривать создание внутренней тени для блока body.

Для начала откройте наш HTML документ и заполните его. Можете не указывать никакие теги, не заполнять контент, главное создайте тег <body>.

Открываем наш CSS документ, записываем тег <body>, он будет нашим основным селектором.

Далее открываем фигурные скобки и записываем свойство <box-shadow>. Задаем расположение, размытие, растяжение. Как задавать эти значения вы уже знаете. После этого задаем цвет тени, мы сделали белый, но вы можете задать по своему вкусу.

Теперь самое главное. Для того, чтобы создать внутреннюю тень блока в CSS нужно прописать значение inset. Можете указать его сразу после определения цвета.

В итоге, у нас получился вот такой блок:

HTML/CSS — тень текста


Тень текста CSS
html{
    background: #fff;
}
body{
    width: 80%;
    margin: 0 auto;
	background-color: rgba(150,60,60,0.54)
	box-shadow: -1px 5px 5px 5px rgba(77,63,63,0.88) inset;
}
div{
    margin: 150px;
    box-shadow: -1px 5px 5px 5px rgba(77,63,63,0.88);
	font-size: 25px;
}

Тень текста CSS

Создается похожим образом, но вместо box-shadow используется свойство <text-shadow>. Параметры свойства идут в следующем порядке.

  1. Сдвиг по горизонтали.
  2. Сдвиг по вертикали.
  3. Радиус размытия. Необязательно.
  4. Цвет.

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

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

Первая тень будет располагаться ближе к тексту, а вторая выше её. Напоминает работу со свойствами outline и border, но здесь можно создавать и 2, 3 и больше теней.

Тени при наведении — CSS

Теперь давайте рассмотрим создание теней для определенного состояния. В нашем примере будет использоваться кнопка.

Для того, чтобы создать тень для кнопки, её для начала нужно разместить. Открываем тег a, записываем для него класс button и любое текстовое значение, для лучшего отображения.

Далее открываем CSS документ и приступаем к стилизации. Перед тем как создать тень, необходимо создать кнопку. Всё что пока у нас есть — синяя ссылка с подчеркиванием.

Сначала зададим размещение, с помощью свойства margin и увеличим кнопку до определенных размеров. Для увеличения можно использовать свойства width и height, либо же воспользоваться свойством padding.

Теперь задаем цвет фона, текста и рамку. Наша кнопка готова, приступаем к созданию тени.

Сначала создадим обычную тень, небольшого размера, с помощью box-shadow. Она будет видна по умолчанию, без наведения на кнопку.

Далее создаем второй селектор .button:hover. В нем мы будем заниматься изменением тени.

Тень кнопки CSS

Сделаем самый простой эффект — увеличим тень. Можете сделать её размытой или изменить растяжение — по вкусу.

Для лучшего эффекта зададим свойство transition для обычной ссылки, поставим время в 0.5s.

Теперь у нас есть отличная кнопка с красивой тенью, которая при наведении будет плавно расширяться.


Тень кнопки CSS

Заключение

В этой статье мы ознакомились со всеми основными способами создания теней. Мы разобрали все свойства и параметры теней.

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

Скачать CSS/HTML пример тени

Теги:
0

Оставить своё мнение

Ваш e-mail не будет опубликован. Обязательные поля помечены *