Тень для блока css

Тень для блока css

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

Как сделать тень блока с помощью свойства box-shadow

  • Содержание:
  • 1. Синтаксис свойства box-shadow
  • 2. Примеры тени для блока
  • 3. Эффекты для тени при наведении
  • 4. Анимация тени

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

IE: 9.0
Edge: 12.0
Firefox: 4.0, 3.5 -moz-
Chrome: 10.0, 4.0 -webkit-
Safari: 5.1, 3.1 -webkit-
Opera: 11.5
iOS Safari: 5.1, 3.1 -webkit-
Android Browser: 4.0, 2.1 -webkit-

1. Синтаксис свойства box-shadow

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

Каждая тень является отдельной тенью, представленной от 2 до 4-х значений длины, необязательным цветом и необязательным ключевым словом inset . Допустимые длины 0 ; опущенные цвета по умолчанию равны значению свойства color .

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

Рис. 1. Синтаксис свойства box-shadow

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

Эффекты тени применяются следующим образом: первая тень находится сверху, а остальные — сзади. Тени не влияют на компоновку и могут перекрывать другие элементы или их тени. С точки зрения контекстов укладки и порядка рисования внешние тени элемента рисуются непосредственно под фоном этого элемента, а внутренние тени элемента рисуются непосредственно над фоном этого элемента (ниже border и border-image , если таковые имеются).

Читайте также:  Рейтинг реноваторов для дома

Если элемент имеет несколько ящиков, все они получают тени, но тени рисуются только там, где также будут нарисованы границы; см. box-decoration-break.

Тени не вызывают прокрутку или не увеличивают размер прокручиваемой области.

Посмотрите на макеты сайтов и почти на всех обязательно присутствуют тени у блоков, картинок и реже у текста. Прошли те времена, когда верстальщики вырезали из PSD макета элементы вместе с тенями. Тогда ещё не было CSS-правил для теней.

Как сделать тень блоку в CSS

Нужно блоку добавить всего одно свойство, box-shadow и передать несколько параметров.

box-shadow: 10px 10px 15px #ebe6e6;

Смещение тени по X. Указываем на сколько пикселей сместить тень вправо от элемента или влево с отрицательным значением.

Смещение тени по Y. Задаем количество пикселей с отрицательным значением для смещения вверх и с положительным значением для смещения вниз.

Размытие тени. Прописываем радиус размытия тени. Чем больше радиус, тем сильнее размоются края тени.

Цвет тени. Можно указать как в шестнадцатеричной системе, так и в формате RGB-a.

Я обычно задаю цвет тени в формате RGB-a. Наличие альфа-канала, позволяет сделать тень полупрозрачной. Так она получается мягкой и более естественной.

box-shadow: 10px 10px 15px rgba (235, 230, 230, 0.5);

Пример тени для блока

// CSS код
.block <
width: 250px;
height: 150px;
height: 150px;
display: block;
margin: 50px auto;
background-color: #f88bca;
box-shadow: 10px 10px 15px rgba(235, 230, 230, 0.5);
>

Пример тени снизу

Тень вокруг блока

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

Чтобы установить тень внутри блока, первым параметром передаем ключевое слово: inset.

box-shadow: inset 0 0 15px rgba(255, 255, 255); // CSS

Тень у текста

Тень у текста задается по такому же принципу, как и у блока, но через свойство text-shadow.

// CSS
h1 <
text-align: center;
font-size: 50px;
color: #d31818;
text-shadow: 3px 3px 3px rgba(101, 105, 108, 0.7);
>

Двойная тень

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

box-shadow:
-10px 0 20px -5px #333,
10px 0 20px -5px #333;

CSS генератор теней

Держать в голове последовательность параметров для создания теней, совсем необязательно. Можно пользоваться CSS генератором теней.

Читайте также:  Какие бывают квадрокоптеры с камерой

Обучающей информации в интернете много, но собирать её по крупицам неэффективно. Несистематичные знания, полученные из разных источников, плохо выстраиваются в общую картину. Остаются какие-то пробелы в знаниях, мешающие двигаться дальше. И на этом этапе, многие бросают изучение HTML/CSS.

Дорогие начинающие веб-мастера, призываю вас учиться у профессионалов. Это интереснее, легче и во много раз эффективнее. Познакомьтесь с описанием видео-курса "Верстка сайта с нуля 2.0".

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

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

    Для добавления тени используется свойство box-shadow , у которого имеется шесть значений, из них только два являются обязательными. На рис. 1 показано свойство box-shadow со всеми возможными значениями, они пронумерованы для их идентификации.

    Рис. 1. Значения свойства box-shadow

    Здесь:

    1. ключевое слово inset устанавливает тень внутри элемента;
    2. сдвиг тени по горизонтали (5px — вправо, -5px — влево);
    3. сдвиг по вертикали (5px — вниз, -5px — вверх);
    4. радиус размытия тени (0 — резкая тень);
    5. растяжение тени (5px — растяжение, -5px — сжатие);
    6. цвет тени.

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

    Читайте также:  Как сделать зрение хуже

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

    Табл. 1. Сочетания параметров тени

    Код Результат Описание
    box-shadow: 5px 5px; Резкая тень справа и снизу.
    box-shadow: -5px -5px; Резкая тень слева и сверху.
    box-shadow: 0 0 5px; Размытая тень вокруг элемента.
    box-shadow: 0 0 5px 2px; Расширение тени на 2 пиксела.
    box-shadow: 0 0 5px 2px red; Красное свечение вокруг элемента.
    box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.5); Полупрозрачная тень.
    box-shadow: inset 0 0 6px; Тень внутри.

    Как видно из таблицы, сдвиг тени не обязательно задавать в пикселах, хотя это и удобно. Цвет тени можно указывать в любом доступном формате, так, для получения полупрозрачной тени подойдёт формат RGBA, такая тень будет хорошо смотреться на любом фоне. В примере 1 показано, как это сделать.

    Пример 1. Тень на фоновом рисунке

    HTML5 CSS3 IE 9+ Cr Op Sa Fx

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

    Рис. 2. Вид тени на фоновом рисунке

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

    Тень также можно добавлять и к псевдоэлементам, это иногда требуется для сложной вёрстки. На рис. 3 показан блок с заголовком, к которому добавлена тень. Чтобы не было никаких линий в месте стыка приходится использовать псевдоэлемент ::after и добавлять тень к нему.

    Рис. 3. Блок с тенью

    В примере 2 показано создание такого блока.

    Пример 2. Блок с тенью

    HTML5 CSS3 IE 9+ Cr Op Sa Fx

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

    Пример 2. Блок с тенью

    HTML5 CSS3 IE 9+ Cr Op Sa Fx

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

    Рис. 4. Изображение с двойной тенью

    Первая тень отображается слева от рисунка с радиусом размытия 20px, её размер уменьшен за счёт четвёртого параметра (-20px). Параметры второй тени указываются после запятой, тень отображается справа от рисунка и так же уменьшена для симметрии.

    Ссылка на основную публикацию
    Adblock detector