CSS3 тень бывает двух видов: текстовая тень (text-shadow) и блочная тень (box-shadow).
Размытые или объемные, цветные или многослойные тени создают удивительные эффекты для элементов.
Задавая тень для элемента, можно указывать только одно значение длины и цвет, таким образом создавая цветную копию элемента
1. Тень для текста
Поддержка браузерами
IE: 10.0
Firefox: 3.5
Chrome: 2.0
Safari: 4.0
Opera: 9.6
iOS Safari: 7.1
Opera Mini: 8, без радиуса размытия
Android Browser: 4.1
Chrome for Android: 44
Используя свойство text-shadow, вы сможете улучшить внешний вид текста или отдельных его элементов, придав необычный дизайнерский стиль.
Для создания каждой тени задаются цвет и три длины (смещение по оси Х, смещение по оси Y, радиус размытия). Если значения длин отрицательные, то тень смещается влево и вверх от текста.
Радиус размытия определяется как расстояние от контура тени до края эффекта размытия.
В случае задания нескольких теней, первая располагается в самом верху.
Данный эффект по-разному отображается в различных браузерах. Наследуется.
text-shadow
Значения:
x-offset
Обязательное значение. Смещение тени по горизонтали относительно текста. Может принимать как положительные, так и отрицательные значения.
y-offset
Обязательное значение. Смещение тени по вертикали относительно текста. Может принимать как положительные, так и отрицательные значения.
blur
Необязательное значение. Определяет радиус размытия тени. Чем больше радиус, тем сильнее размыта тень.
color
Необязательное значение. По умолчанию принимает цвет текста. Для установления значения можно использовать следующие форматы записи цвета: #RRGGBB, rgb(red, green, blue), rgba(red, green, blue, alpha).
Свойство box-shadow позволяет создать прямоугольную тень позади любого блока элемента. Также, тени могут следовать контурам блоков со скругленными углами. Не наследуется.
box-shadow
Значения:
x-offset
Обязательное значение. Смещение тени по горизонтали относительно блока. Может принимать как положительные, так и отрицательные значения, положительное смещает тень вправо от блока, отрицательное – влево.
y-offset
Обязательное значение. Смещение тени по вертикали относительно блока. Может принимать как положительные, так и отрицательные значения, положительное смещает тень вниз, отрицательное — вверх.
blur
Необязательное значение. Определяет радиус размытия тени. Чем больше радиус, тем сильнее размыта тень. Можно использовать только положительные значения.
растяжениеem / px
Необязательное значение, расширяет тень, утолщая ее сплошную часть между размытыми краями. Принимает как положительные, так и отрицательные значения.
color
Необязательное значение. По умолчанию тень черного цвета. Для установления значения можно использовать следующие форматы записи цвета: #RRGGBB, rgb(red, green, blue), rgba(red, green, blue, alpha). Для Safari цвет тени указывать обязательно.
inset
Позволяет создать тень внутри блока.
none
Отсутствие тени.
CSS: тени
Языки
Это перевод. Здесь могут содержаться ошибки или страница может
быть устаревшей по отношению к Английской версии. Переводчик: Євген (neighbor report)
Отбрасывание теней
С момента написания этой страницы во многие реализации CSS
было добавлено свойство ‘box-shadow’ из CSS уровня 3, что делает
описанный ниже метод необязательным. Смотрите “Закругленные углы и блоки с тенью” в качестве примера. Эта
страница также показывает более мощный, но в то же время более
сложный, способ создания теней при помощи CSS уровня 2.
В CSS2 нет свойства, чтобы добавить тень к блоку. Вы можете
попробовать добавить кайму справа и внизу, но это не будет
выглядеть правильно. Тем не менее, если у вас есть два вложенных
элемента, вы можете использовать внешний элемент как тень для
внутреннего. Например, если у вас есть такой текст (HTML):
Вы можете использовать наружный DIV в качестве тени для
внутреннего. Результат должен выглядеть как эта отдельная страница. Сначала, задайте
фоновый цвет для BODY (в нашем примере — светло-зеленый), наружный
DIV сделайте немного темнее фона (зелено-серый) и внутренний DIV
отличным от фона (например, желто-белый):
body {background: #9db}
div.back {background: #576}
div.section {background: #ffd}
Затем, используя свойства margin и padding, вы смещаете
внутренний DIV немного влево и вверх от наружного DIV:
Разумеется, вы можете изменять размер теней на ваш вкус.
Текстовые тени
В CSS действительно есть свойство для добавления тени
к тексту. У него четыре параметра: цвет тени, горизонтальный отступ
(позитивный — вправо), вертикальный отступ (позитивный — вниз) и
размытие (0 — резкая тень). Например:
Created 4 April 2002; Last updated Ср 06 янв 2021 05:40:49
css — тень блока для встроенного элемента
Задавать вопрос
спросил
Изменено
8 лет, 2 месяца назад
Просмотрено
3к раз
Многострочный текст размещен на изображении.
Текст должен появиться на белом фоне, как наклеенный. Каждая строка текста нуждается в небольшом отступе слева и справа. Этого можно добиться с помощью box-shadow для встроенного текста.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr
К сожалению, результат Firefox не такой, как у Chrome. Но я не мог утверждать, что поведение firefox некорректно.
Но как я могу добиться результата Chrome для Firefox?
css
встроенный
box-shadow
4
Firefox требует box-decoration-break: clone; просто измените это, и все готово 🙂
Lorem ipsum dolor sit amet, consetetur sadipscing elitr
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Подробный обзор CSS Box Shadow
Свойство CSS box-shadow можно использовать для придания блочным элементам тени или внутренней тени. Давайте внимательно посмотрим на это свойство CSS.
Примеры
Ниже приведены три различных примера применения свойства CSS box-shadow к элементу div .
Пример 1. Простая тень
Вот как можно поставить div тонкая серая тень.
box-shadow: 0 0 10px серый;
Пример 2: Внутренняя тень
Внутренняя тень может быть визуализирована с использованием значения свойства вставка .
box-shadow: вставка 0 0 10px;
Пример 3: Смещенная тень
В этом примере тень блока отбрасывается со смещением к нижней правой стороне блока с использованием смещения по горизонтали и вертикали на 5 пикселей.
box-shadow: 5px 5px 10px;
Что, если вы хотите, чтобы тень была в верхней левой части окна? Мы можем сделать это, используя отрицательные значения горизонтального смещения и вертикального смещения. В следующем примере для смещения по горизонтали и по вертикали установлено значение -5 пикселей.
box-shadow: -5px -5px 10px;
Теперь, когда вы увидели несколько примеров CSS box-shadow в действии, давайте копнем немного глубже.
Синтаксис
Общий синтаксис свойства box-shadow следующий:
box-shadow: [вставка] [смещение по горизонтали] [смещение по вертикали] [радиус размытия] [расстояние разброса ] [цвет] ;
Значения свойств CSS
Свойство CSS box-shadow имеет шесть возможных значений свойства:
вставка
горизонтальное смещение
вертикальное смещение
радиус размытия
расстояние разброса
цвет
Требуются только два значения свойства: смещение по горизонтали и смещение по вертикали. Четыре значения свойств, смещение по горизонтали, смещение по вертикали, радиус размытия и расстояние распространения, должны использовать единицы длины CSS (например, px, em, % и т. д.). Значение цвета должно быть единицей цвета CSS, например шестнадцатеричным значением ( например
#000000).
Сводка значений свойств
Значение свойств
Требуется?
Блок
Значение по умолчанию, если не указано
вставка
№
ключевое слово
Если вставка не указана, тень блока будет находиться за пределами HTML-элемента.
горизонтальное смещение
Да
длина
Нет значения по умолчанию. Это должно быть указано.
вертикальное смещение
Да
длина
Нет значения по умолчанию.
Необходимо указать.
радиус размытия
№
длина
0
расстояние разброса
№
длина
0
цвет
№
цвет
Соответствует свойству цвета элемента(ов) HTML, к которым применяется тень блока.
вставка
Если вставка 9Присутствует значение свойства ключевого слова 0076, тень блока будет размещена внутри элемента HTML.
box-shadow: вставка 0 0 5px 5px оливковый;
Для сравнения, вот та же тень блока без свойства inset:
box-shadow: 0 0 5px 5px Olive;
смещение по горизонтали
Значение смещения по горизонтали управляет положением тени блока по оси x. Положительное значение сдвинет тень блока вправо, а отрицательное значение сдвинет ее влево.
В следующем примере смещение по горизонтали установлено на 20 пикселей или удвоено значение смещения по вертикали (которое установлено на 10 пикселей), поэтому тень становится в два раза шире по горизонтали.
box-shadow: 20px 10px;
вертикальное смещение
Вертикальное смещение определяет положение тени блока по оси Y. Положительное значение сдвинет его вниз, а отрицательное — вверх.
В следующем примере смещение по вертикали имеет длину -20 пикселей, что в два раза превышает длину смещения по горизонтали (10 пикселей), поэтому размер тени по вертикальной оси в два раза больше. Кроме того, поскольку значение отрицательное, положение тени смещено к верхней части блока.
box-shadow: 10px -20px ;
радиус размытия
Значение свойства радиуса размытия влияет на размытость/резкость тени блока.
Радиус размытия не является обязательным. Если вы не укажете его, по умолчанию он будет равен 0. Кроме того, он не может иметь отрицательное значение, в отличие от горизонтального и вертикального смещения. Если радиус размытия равен 0, тень блока будет резкой, а ее цвет — сплошным. По мере увеличения значения изображение будет становиться более размытым и непрозрачным.
В приведенном ниже примере значение радиуса размытия установлено на 20 пикселей, поэтому размытие весьма заметно.
box-shadow: 5px 5px 20px ;
расстояние распространения
Расстояние распространения делает тень коробки больше или меньше во всех направлениях. Если он имеет положительное значение, тень блока будет увеличиваться со всех сторон.
При отрицательном значении тень блока будет сжиматься со всех сторон. Обратите внимание, что из-за положительного расстояния разброса (10 пикселей) со всех сторон блока появляется тень в 10 пикселей, поскольку нет смещения по горизонтали и по вертикали:
box-shadow: 0 0 10px 5px ;
Когда расстояние распространения отрицательное, тень сжимается со всех сторон. В следующем примере тень меньше ширины блока из-за отрицательного расстояния распространения и отсутствия смещения по горизонтали:
box-shadow: 0 10px 10px -5px ;
color
Как видно из названия, значение цвета устанавливает цвет тени блока.
Можно указать с помощью любой единицы цвета CSS. Указание значения цвета не является обязательным. По умолчанию — другими словами, если вы явно не указываете значение цвета для своей тени — цвет тени будет равно значению цвета элемента HTML, к которому применяется свойство box-shadow .
Например, если у вас есть div цвета red , цвет тени также будет red :
color: red; box-shadow: 0 0 10px 5px;
Если вам нужен другой цвет тени, вам необходимо указать его в объявлении значения свойства box-shadow . Ниже вы можете видеть, что, несмотря на то, что цвет переднего плана div по-прежнему красный , цвет тени блока синий .
цвет: красный; box-shadow: 0 0 10px 5px синий ;
Множественные тени блока
Здесь вы можете проявить творческий подход с этим свойством CSS: вы можете применить более одной тени блока к элементу.