Css тень красивая: shadow — тень блока. Примеры, эффекты (:hover), анимация тени.
Красивая тень блока (box-shadow) через CSS
Когда вы создаете дизайн, то стараетесь его построить красивым, что тени здесь будут отличным решением, где разберем как их можно установить. За элемент теней отвечает свойство box-shadow, что теперь нужно выставить под значение, как бы они реально выглядели после установки. Здесь можно всю настройку производить в ручном режиме, но изначально нужно выставить правильно свойство, и понять все его значение, которые будет отвечать каждое за свое.Это оттенок цвета, также ширина теней, не говоря, чтоб они были прозрачными, что большинство веб мастеров так делают. Где на светлом и аналогично на темном дизайн, если подойти ответственно, то можно их распределить по всему дизайну красиво.
Что некоторые веб мастера делают так, где у них получается оригинально. Но не нужно забывать, что такая красота берем много веса, и здесь как раз можно подключить прозрачность теней, чем больше ее тем меньше весит страница материала. Но большинство выставляют на различные блоки, также на знаки, включая логотип, но больше всего зависит от самого дизайн, где они будут находиться.
1. Первый вариант. Рамка с красивой тенью box-shadow без смещений
Не сложный вариант, что выстроен на свойстве box-shadow на странице, где производит равномерное обтекание каркаса, что идет без смещений.
HTML
Код
<div>Вариант №1. Тень по сторонам</div>
CSS
Код
.koshadows_nalinedsup {
padding: 15px;
margin: 27px;
width: 125px;
height: 125px;
box-shadow: 0px 0px 20px 4px #144d98;
border-radius: 5px;
}
Снимок предоставлен выше, что по стилистике 20px будет выставлять равномерно по сторонам ширину.
2. Второй вариант. Создание рамки со смещенной тенью
Этат вариант почти аналогичен первому, тлко будет со смещенной рамкой.
HTML
Код
<div>Второй вариант №2. Смещенная тень.</div>
CSS
Код
.koshadows_nalinedsup_2 {
padding: 7px;
margin: 30px;
width: 134px;
height: 134px;
border-radius: 3px;
box-shadow: 1px 1px 2px 3px #4b6dc5;
}
Здесь видно, как с верхнего левого угла идет смещение тени.
3. Третий вариант №3. Создать свечение каркаса или рамки
В этом варианте реализует полное свечение тени, где основном можно видеть на кнопках какой вид.
HTML
Код
<div>Третий вариант №3. Создать свечение.</div>
CSS
Код
.koshadows_nalinedsup_3 {
padding: 7px;
margin: 19px;
width: 185px;
height: 108px;
box-shadow: 0px 0px 18px #253688;
border-radius: 12px;
}
Закругление углов установливаем в самый низ, так как если ставить выше, будет пропадать рамка.
4. Четвертый вариант. Создать внутренне свечение границ
Здесь создадим свечение внутри самого блока, где не одного пикселя не выйдет за пределы каркаса.
HTML
Код
<div>Четвертый вариант №4. Основное свечение внутри.</div>
CSS
Код
.koshadows_nalinedsup_4 {
padding: 9px;
margin: 15px;
width: 195px;
height: 117px;
box-shadow: 0px 0px 19px #2c3a7b inset;
border-radius: 8px;
}
Такой премер можно пременить при различном оформление элементов.
5. Пятый вариант. Здесь совмещаем цветовую палитру теней
Создадим совмешение теней разной гаммы цвета, которая происходит через запятую. Где получится интересный результать, вероятно самый яркий, плюс еще присутствует 3D формат.
HTML
Код
<div>Пятый вариант №5. Разброс цветовых теней.</div>
CSS
Код
.koshadows_nalinedsup_5 {
padding: 9px;
margin: 18px;
width: 178px;
height: 123px;
box-shadow: 0px 0px 14px 2px #0dec0d inset, 4px 4px 9px #0e0eef, -4px -4px 9px #ea0909;
border-radius: 4px;
}
Такой метод не так популярен, но если его создать, то он безусловно превлечет внимание.
Важно: старые браузеры
Браузер IE до 9 версии не будет поддерживать свойство box-shadow, а точнее просто его не видеть.
Префиксы браузеров под свойство box-shadow:
-webkit-box-shadow — Идет для браузеров Chrome только до 10 обновления, также Safari до 5.1 версий.
-moz-box-shadow — здесь воспроизводится для Firefox, где идет до 4.0 версии.
Вашему вниманию представлено самые простые и актуальные методы на постановку теней свойством box-shadow при помощи CSS. Само свойство box-shadow позволить выставить красивые тени заданному элементу html. Где все больше можно заметить в использование веб разработчиками довольно часто, где все создается для того, чтоб красиво выглядело.
Как пример, это выделение рамки или круга, где также можно применить на тексте, или на картинках изображение, где после этого станет более читабельным контентом не считая оформление дизайна. Свойство box-shadow идет гибким, где можно задать тень каркасу или блоку, да вообще любому элементу, где также позволят поставить заданный объём тени.
Тень блока (свойство box-shadow) | CSS — Примеры
box-shadow generator
Свойство box-shadow (w3.org) создаёт элементу тень.
Как создать объёмный HTML элемент из нескольких box-shadow
box-shadow может иметь сколько угодно значений. Поэтому им можно заменить картинки форматов JPEG, PNG и даже GIF [инструмент lvivski.com]. Можно, но не нужно. А вот создание объёма может быть полезным для того, чтобы смастерить, например, объёмную красивую кнопку.
цвет одной стороныцвет другой стороны
толщина тени
<div></div>
Эффект тени блока
Тень вокруг div CSS
Хм, отбрасывает ли предмет тень, когда свет на него падает сверху? Да, если предмет удалён от поверхности. Чем дальше, тем интенсивнее тень. Сама проверяла, светя фонариком.
CSS тень с одной стороны
Снизу (под блоком div)
По бокам (справа и слева)
Многослойный блок с помощью box-shadow
Разноцветная CSS рамка
Еще варианты можно посмотреть у css.yoksel.ru.
CSS внутренняя тень блока (внутри элемента)
Как сделать вдавленный элемент
Как сделать выпуклый элемент с округлыми краями
box-shadow inset и картинка img
Понадобится статья «Как убрать отступ под изображением»
<span><img alt="котёнок мечтает стать львом" src="http://4.bp.blogspot.com/-uXTQrdgmR5A/TVOtm4AfAzI/AAAAAAAABcA/ZPY0DjhgY0o/s00/mechty.jpg"/></span>
box-shadow и HTML тег input
Сначала поле как-будто вдавленное, при наведении появляется голубая обводка, а при фокусе виден эффект плавно появляющегося свечения. Вот так может выглядеть всплывающая форма обратной связи.
<input type="text" placeholder="псевдоним или email"/> <input type="password" placeholder="пароль">
Или подсветка внутри input (получилась красивая форма входа CSS):
<input type="text" placeholder="псевдоним или email"/> <input type="password" placeholder="пароль">
box-shadow и transition или animation
box-shadow можно плавно изменять, но нужно учитывать особенность этого изменения:
? нет да<span>да</span> <span>нет</span> <span>да</span>
Продолжение следует: box-shadow и :before и :after.
Коллекция css теней Box-shadows.css / Хабр
Привет всем!
Наверняка, некоторые из вас замечали, что на разных сайтах используются практически однотипные тени в блоках, панелях навигации и прочих контейнерах, плюс — минус пара пикселей в сторону прозрачности. Я проанализировал ряд популярных сайтов, как наших, так и зарубежных, и попытался собрать максимально приближенные параметры используемых теней в одну большую коллекцию, или библиотеку. Кому как удобнее. Надеюсь, кому-нибудь пригодится.
Основная цель проекта — облегчить работу начинающим веб-дизайнерам и разработчикам в создании приятного и современного дизайна. Возможно и опытные дизайнеры почерпнут для себя что-нибудь интересное из этой разработки.
Библиотека будет удобна тем, кто еще не успел полностью углубиться в верстку, но хочет создать красивые тени на кнопках, блоках и т.д. Таким образом, вы сможете упростить работу с блоками и сократить время подбора css теней в генераторе.
Box-shadows.css
Box-shadows.css
— это коллекция простых и приятных css теней (box-shadow) для ваших проектов. В роли основного используется простой класс
.bShadow. Сейчас коллекция насчитывает более 50 актуальных вариантов теней с номером, а так же три самостоятельных класса
.bShadow,
.bShadow-lightи
.bShadow-inset. Они отлично подходят для использования в таблицах, для содержимого домашних страниц, контейнеров, навигации и других блоков вашего сайта.
Пресекая ряд вопросов, сразу поясню, почему используются числа, а не имена или классы типа
Коллекция не использует самостоятельные имена, как это сделано в animate.css, так как для данного проекта это немного не приемлемо. Тень блоков увеличивается по нарастающей, с различными отклонениями, а за счет последовательности чисел можно подобрать оптимальный для себя вариант, не заучивая отдельные имена. Это значительно упрощает работу с коллекцией.
У коллекции есть ряд и других возможностей, например, использование hover эффектов, с плавным переключением между тенями.
Дополнительные функции
Сайт проекта выполнен визуально просто, но у него достаточно функций, для полноценной настройки и подбора необходимых классов и стилей. Написан сайт на английском языке, но для тех, кто еще не в совершенстве владеет этим языком, там есть переключатель на русский язык.
Подбор теней
На сайте предусмотрена функция предварительного просмотра, в которой можно указать цвет фона и контейнера вашего сайта, для дальнейшего подбора теней. Подбор теней и классов осуществляется посредством выбора опций или наведением на блоки. Результат отображается в виде тени основного контейнера сайта.
Генератор файлов min.css
На сайте также есть
генератор файла box-shadows.min.cssс инструкцией, который позволяет пользователю создавать собственный файл, состоящий только из выбранных им классов. Это поможет уменьшить нагрузку на сайт, если в вашем проекте используется менее двух или трех теней.
Генератор css box-shadow
Вы можете использовать классический
генератор css box-shadow, чтобы дополнить коллекцию своими собственными стилями. Нажав кнопку «Сохранить и добавить следующий», вы можете создавать бесконечное количество классов. Первому сгенерированному и последующим классам присваивается порядковый номер, не входящий в коллекцию. Вы можете скопировать полученные стили и вставить в корневой css или созданный на сайте файл box-shadows.
min.css.
Попробуйте поэкспериментировать. Это действительно интересная работа.
Сейчас разработка находится на стадии развития и набора 200 звезд на GitHub, для получения ссылки на cdnjs. Желаю вам приятного пользования и творческих успехов. Если у вас есть пожелания, замечания или предложения по улучшению проекта, пишите в комментариях.
GitHub · Сайт
Тень для текста, картинки, блока
Здравствуйте уважаемые начинающие веб-мастера
Продолжаем знакомство с Оригинальными эффектами CSS
В предыдущей статье мы научились делать на странице различные блоки.
А сейчас, я расскажу и покажу, как и какую тень можно сделать для блока, текста и изображения, при помощи средств CSS.
Для создания тени в CSS существуют два свойства:
1. box-shadow — создание тени для блоков;
2. text-shadow — создание тени для текстa
Записывается так:
box-shadow: 4px 4px;text-shadow: 4px 4px;
Значений, определяющих форму тени, может быть больше двух, и ниже на примерах, мы это подробно разберём.
Раньше у этих свойств были проблемы с кросбраузерностью, и при их написании применялись префиксы. Однако в последних версиях браузеров Chrome 31.0.1650.63, Yandеx 13.1, Opera 12.15, Internet Explorer 11, Firefox 23.0, Safari 5.1.4, эти свойства работают без префиксов.
На всякий случай, если кто то пользуется браузерами более ранних версий, привожу список префиксов.
-moz-box-shadow — значение для Mozilla Firefox 3.6 + ;
-webkit-box-shadow — Safari, Chrome, iOS, Android 2.1-3.0 ;
-o-box-shadow — значение для Opera 11.10 + ;
-ms-box-shadow — значение для IE10 + ;
Для text-shadow — аналогично.
Внешний вид тени (направление, цвет, размер, размывание), задается значениями. Рассмотрим их подробно, так как именно ими нам придётся оперировать, чтобы реализовать задуманный вид.
Итак, чтобы задать простую тень блоку, достаточно двух значений, которые зададут сдвиг тени вправо и вниз. Если написать эти значения со знаком минус, то сдвиг тени будет влево и вверх.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Как сделать тень CSS</title>
<style>
background: #fcdd76;
width: 300px;
height: 100px;
box-shadow: 4px 4px
}
</style>
</head>
<body>
<div></div>
</body>
</html>
Для текста тень задаётся аналогично.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Как сделать тень CSS</title>
<style type="text/css">
.blok{
background: #fcdd76;
width: 300px;
height: 100px;
box-shadow: 4px 4px;
}
padding: 40px 0 0 80px;
font-size: 24px;
text-shadow: 10px 10px;
font-weight: bold;
}
</style>
</head>
<body>
<div>
<p>Блок с тенью</p>
</div>
</body>
</html>
Следующим шагом зададим цвет для тени. Для этого нужно просто ввести в значение код цвета, причем можно использовать любой формат, от шестеричного до rgba (с прозрачностью)
box-shadow: -4px -4px #0ea8f4;
text-shadow: -10px -10px #94a7af;
Чтобы тень стала более соответствовать своему имени, можно размыть границы тени. Для этого в значение вводиться третий параметр.
box-shadow: 4px 4px 5px #0ea8f4;
По умолчанию, все браузеры отображают тень того же размера, что и объект её отбрасывающий. Можно её увеличить. Для этого в значения вводиться четвёртый параметр.
И если при этом обнулить сдвиг, и размывание, то получается довольно оригинальный эффект рамки вокруг блока, что очень хорошо смотрится в сочетании с border-radius
box-shadow: 0px 0px 0px 5px #0ea8f4;
border-radius: 10px;
К огромному сожалению, четвёртое значение для text-shadow, браузерами не поддерживается, поэтому растянуть тень для текста можно только при помощи сдвигов, и только в двух направлениях.
Делается это следующим образом: задаётся несколько значений теней, сдвиг у которых последовательно увеличивается на 1 пиксель. Каждая тень пишется через запятую.
text-shadow: 1px 1px #94a7af,
2px 2px #94a7af,
3px 3px #94a7af,
4px 4px #94a7af,
5px 5px #94a7af,
6px 6px #94a7af,
7px 7px #94a7af;
Можно сделать обводку текста тенью. В посте Анимация для шапки сайта у меня есть пример и набор теней необходимый для этого.
Если продолжить экспериментировать в этом направлении, то можно получить довольно таки оригинальные результаты. Ведь кроме сдвига у каждой тени можно менять цвет, и направление сдвига.
Можно изменить последовательность теней, от большей к меньшей, и в самой большой применить третье значение (размывание). Короче — простор для творчества.
Это же свойство — множество теней, отлично применяется к box-shadow, принимающего четвёртое значение (растяжение тени).
При помощи него можно сделать для блока очень красивую рамку. Например такую:
box-shadow: 0px 0px 0px 2px #f90914,
0px 0px 0px 7px #a7f9c9,
0px 0px 0px 9px #f90914,
0px 0px 5px 10px #ff4d00;
border-radius:10px;
Тут тоже простор для творчества. Кстати, все приведённые выше стили, можно подключать встроенным способом, то есть прописывать их прямо в html тег, с помощью атрибута style.
Хотя делать это нужно очень ограничено, только в нестандартных ситуациях. А лучше всего все стили выносить в отдельный файл.
Дальше ещё интереснее, так как обратимся к таким средствам CSS3, как псевдоклассы.
Псевдоклассы и псевдоэлементы не входят в html код страницы, поэтому у них и приставка «псевдо», но что касается стилей, то стили к ним можно применять так же, как к обычным элементам.
Сначала применим псевдокласс :hover. Он изменяет цвет элемента, при наведении на него курсора.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Как сделать тень CSS</title>
<style>
.blok{
background: #fcdd76;
width: 300px;
height: 100px;
box-shadow: 0px 0px 0px 5px #0ea8f4;
border-radius: 10px;
}
.blok:hover{
background: #fcdd76;
width: 300px;
height: 100px;
box-shadow: 0px 0px 0px 5px #f26522;
border-radius: 10px;
}
p{
padding: 40px 0 0 80px;
font-size: 24px;
text-shadow: 1px 1px #94a7af,
2px 2px #94a7af,
3px 3px #94a7af,
4px 4px #94a7af,
5px 5px #94a7af,
6px 6px #94a7af,
7px 7px #94a7af;
font-weight: bold;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
До наведения курсора:
При наведении курсора:
Далее обратимся к псевдоэлементам :before и :after, а так же свойству transform
При помощи псевдоэлементов :before и :after, можно добавить дополнительные стили до и после элемента.
Свойство transform, согласно своему названию, может вращать, сдвигать, наклонять и масштабировать элемент, а так же комбинировать эти действия.
Подробную информацию об этих средствах CSS, можно найти в интернете, у меня же практическое руководство, поэтому сразу перейдём к написанию кода.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Как сделать тень CSS</title>
<style>
.blok {
position: relative;
width: 30em; /*1em = font-size, в нашем случае - 20px*/
height: 10em;
padding: 0.5em; /*Сдвиг левой тени*/
background: #ffe5b4;
border-radius: 0.5em;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.7), 0 1px 4px rgba(0, 0, 0, 0.7);
/*Тень дублируется, для более чёткого отображения границы*/}
.blok:before,
.blok:after {
content:""; /*обязательная строка, для правильного отображения псевдоэлементов*/
position: absolute;
z-index: -5;
bottom: 1em;
width: 90%; /*Ширина тени относительно блока*/
height: 20%;
box-shadow: 0 15px 7px rgba(0, 0, 0, 0.7);
-webkit-transform: rotate(-3deg); /*поворот угла*/
-moz-transform: rotate(-3deg);
-ms-transform: rotate(-3deg);
-o-transform: rotate(-3deg);
transform: rotate(-3deg);
}
.blok:after {
right: 0.5em; /*Отступ тени от правого края*/
left: auto;
-webkit-transform: rotate(3deg); /*обратный поворот угла*/
-moz-transform: rotate(3deg);
-ms-transform: rotate(3deg);
-o-transform: rotate(3deg);
transform: rotate(3deg);
}
p {
font-size: 20px;
font-weight: bold;
padding-left: 9em;
text-shadow: -0.4em -0.4em #94a7af;
margin: auto;
}
</style>
</head>
<body>
<div>
<p>Блок с тенью</p>
</div>
</body>
</html>
Результат:
Вот такой получается вогнутый блок, теперь давайте сделаем выгнутый.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Как сделать тень CSS</title>
<style>
.blok {
position: relative;
width: 30em;
height: 9em;
padding: 1em;
margin: 2em 0.5em 4em;
background: #ffe5b4;
box-shadow: 0 1px 5px #464451;}
.blok:before,
.blok:after {
content: "";
position: absolute;
z-index: -2;
}
.blok:before {
top: 0px;
bottom: 0px;
left: 10px;
right: 10px;
box-shadow: 0px 1px 15px #464451;
border-radius: 120px / 15px;
}
p {
font-size: 20px;
font-weight: bold;
padding-left: 10em;
text-shadow: -0.4em -0.4em #94a7af;
margin: auto;
}
</style>
</head>
<body>
<div>
<p>Блок с тенью</p>
</div>
</body>
</html>
Результат:
Пока всё. Желаю творческих успехов.
Перемена
Две бывшие одесситки на Brighton Beach
— Фирочка! Вы слышали весь этот ужас?
— А какой именно?
— Ну, если выбрали Обаму, так значить придут негры и нас всех будут насиловать!
После долгой паузы…………
— Сима, во-первых, попритушите Ваши радостные глазки! Во-вторых, я
смотрю на вас и удивляюсь. Вы что, всему этому верите? Это же все их
предвыборные обещания!
Градиент CSS. Плавный переход от одного цвета к другому < < < В раздел > > > Прозрачные изображения и прозрачный текст CSS
Внутренняя тень текста с помощью CSS
Вот моя лучшая попытка:
.inner_shadow {
color:transparent;
background-color:white;
text-shadow: 0 0 20px rgba(198,28,39,0.8), 0 0 0 black;
font-family:'ProclamateHeavy'; // Or whatever floats your boat
font-size:150px;
}
<span>Inner Shadow</span>
Проблема в том, как обрезать тени, которые растекаются по краям !!! Я пробовал использовать webkit, используя background-clip: text, но webkit отображает тень над фоном, поэтому это не работает.
Создание текстовой маски с помощью CSS?
Без верхнего слоя маски невозможно создать настоящую внутреннюю тень на тексте.
Возможно, кому-то стоит порекомендовать W3C добавить background-clip: reverse-text , который прорезал бы маску через фон вместо того, чтобы вырезать фон, чтобы поместиться внутри текста.
Либо это, либо визуализируйте тень текста как часть фона и закрепите ее с помощью background-clip: text.
Я попытался абсолютно позиционировать идентичный текстовый элемент над ним, но проблема в background-clip: текст обрезает фон, чтобы он поместился внутри текста, но нам нужно обратное.
Я пробовал использовать text-stroke: 20px white; как для этого элемента, так и для элемента над ним, но обводка текста идет как внутрь, так и наружу.
Альтернативные методы
Поскольку в настоящее время нет возможности создать маску инвертированного текста в CSS, вы можете обратиться к SVG или Canvas и создать изображение для замены текста с тремя слоями, чтобы получить свой эффект.
Поскольку SVG является подмножеством XML, текст SVG по-прежнему будет доступен для выбора и поиска, и эффект может быть достигнут с меньшим количеством кода, чем Canvas.
Было бы труднее добиться этого с помощью Canvas, потому что у него нет dom со слоями, как у SVG.
Вы можете создать SVG либо на стороне сервера, либо как метод замены текста javascript в браузере.
Дальнейшее чтение:
SVG против Canvas:
http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Обрезка и маскирование с текстом SVG:
http://www.w3.org/TR/SVG/text.html#TextElement
Текстовые эффекты • Про CSS
В посте представлены некоторые эффекты на основе text-shadow
.
text-shadow
— это свойство, описывающее тень, отбрасываемую текстом. В отличие от box-shadow
, тень не обрезается фигурой, ей нельзя задать размер (только радиус размытия) и она не поддерживает параметр inset
, то есть нельзя сделать внутреннюю тень.
Тем не менее, используя несколько теней с различными параметрами можно сделать имитацию обводки (которую было бы проще получить, если бы тень поддерживала размер) и имитацию внутренней тени, что позволяет сделать вдавленный текст.
Сочетая тени, градиенты и псевдо-элементы можно сделать много интересного.
Проведите курсором над текстом примеров, чтобы увидеть эффекты при наведении.
Выпуклый текст
h2 {
text-shadow:
1px 1px 1px silver,
-1px 1px 1px silver;
color: white;
transition: all .5s;
}
h2:hover {
text-shadow:
-1px -1px 1px silver,
1px -1px 1px silver;
color: white;
}
Вдавленный текст
h2 {
text-shadow:
-1px -1px #000,
0 1px 0 #444;
color: #222;
transition: all 1s;
}
h2:hover {
text-shadow:
-1px -1px #000,
0 1px 0 #444;
color: #1A1A1A;
}
Размытие
h2 {
font-size: 50px;
font-weight: normal;
cursor: pointer;
text-shadow: 0 0 15px #999;
color: transparent;
transition: all .5s;
}
h2:hover {
text-shadow: 0 0 0 #333;
}
Контуры
h2 {
text-shadow:
1px 1px 0 orange,
1px -1px 0 orange,
-1px 1px 0 orange,
-1px -1px 0 orange;
color: white;
transition: all 1s;
}
h2:hover {
text-shadow:
1px 1px 0 yellowgreen,
1px -1px 0 yellowgreen,
-1px 1px 0 yellowgreen,
-1px -1px 0 yellowgreen;
}
h2 {
text-shadow:
-1px -1px #FFF,
-2px -2px #FFF,
-1px 1px #FFF,
-2px 2px #FFF,
1px 1px #FFF,
2px 2px #FFF,
1px -1px #FFF,
2px -2px #FFF,
-3px -3px 2px #BBB,
-3px 3px 2px #BBB,
3px 3px 2px #BBB,
3px -3px 2px #BBB;
color: steelblue;
transition: all 1s;
}
h2:hover {
color: yellowgreen;
}
Для создания контура вокруг текста можно воспользоваться SCSS-функцией.
Длинные тени
h2 {
text-shadow:
1px 1px 0 hsl(20,100%,50%),
2px 2px 0 hsl(20,100%,50%),
3px 3px 0 hsl(35,100%,50%),
4px 4px 0 hsl(35,100%,50%),
5px 5px 0 hsl(45,100%,50%),
6px 6px 0 hsl(45,100%,55%),
7px 7px 0 hsl(55,100%,60%),
8px 8px 0 hsl(55,100%,65%);
color: hsl(0,100%,40%);
transition: all 1s;
}
h2:hover {
text-shadow:
1px -1px 0 hsl(290,100%,40%),
2px -2px 0 hsl(290,100%,40%),
3px -3px 0 hsl(280,100%,60%),
4px -4px 0 hsl(280,100%,60%),
5px -5px 0 hsl(270,100%,75%),
6px -6px 0 hsl(270,100%,80%),
7px -7px 0 hsl(260,100%,85%),
8px -8px 0 hsl(260,100%,90%);
color: hsl(300,100%,30%);
}
Полосатая тень
h2 {
display: inline-block;
position: relative;
letter-spacing: .05em;
text-shadow:
1px 1px mediumturquoise,
-1px 1px mediumturquoise,
-1px -1px mediumturquoise,
1px -1px mediumturquoise;
color: white;
transition: all 1s;
}
h2:before {
content: "";
position: absolute;
top: 10px;
right: -15px;
bottom: -15px;
left: 0;
z-index: -1;
background: linear-gradient(
-45deg,
rgba(72, 209, 204, 0) 2px,
mediumturquoise 3px,
rgba(72, 209, 204, 0) 3px )
repeat;
background-size: 4px 4px;
}
h2:after {
content: attr(data-name);
position: absolute;
top: 2px;
left: 2px;
z-index: -2;
text-shadow:
1px 1px white,
2px 2px white,
3px 3px white,
4px 4px white;
color: white;
transition: all 1s;
}
h2:hover {
color: lemonchiffon;
}
h2:hover:before {
animation: 5s move_lines infinite linear;
}
h2:hover:after {
color: lemonchiffon;
text-shadow:
1px 1px lemonchiffon,
2px 2px lemonchiffon,
3px 3px lemonchiffon,
4px 4px lemonchiffon;
}
@keyframes move_lines {
100% {
background-position: 40px 40px;
}
}
Идея не моя, найдено тут: codepen.io/lbebber/pen/BzoHi
Живое подчеркивание
h2 {
display: inline-block;
text-shadow:
1px 1px 1px white,
1px -1px 1px white,
-1px 1px 1px white,
-1px -1px 1px white;
color: steelblue;
transition: all 1s;
}
h2:after {
content: "";
display: block;
position: relative;
z-index: -1;
width: 100%;
margin: auto;
border-bottom: 3px solid steelblue;
bottom: .15em;
transition: all 1s;
}
h2:hover:after {
width: 0%;
border-bottom-width: 1px;
}
Подводка
h2 {
text-shadow:
1px 1px white,
2px 2px #777;
color: #333;
transition: all 1s;
}
h2:hover {
text-shadow:
1px 1px white,
2px 2px tomato;
color: crimson;
}
Разъезжающийся текст
h2 {
overflow: hidden;
text-shadow:
0 0 tomato,
0 0 yellowgreen,
0 0 skyblue;
color: transparent;
transition: all 1s;
}
h2:hover {
text-shadow:
-400px 0 tomato,
400px 0 yellowgreen,
0 0 skyblue;
}
Как создавалась функция shadow spread в Figma
Начиная с сегодняшнего дня, вы можете настроить в Figma размер тени для прямоугольников, эллипсов, фонов фреймов и фонов компонентов, совсем как с помощью параметра CSS box-shadow.
Первоначально я планировал добавить эту функцию во время проведенного недавно мероприятия Maker Week, когда каждый сотрудник компании изучал проект, выходящий за рамки своих повседневных обязанностей. То, что казалось простой функцией, которую я мог бы сделать за несколько дней, превратилось в неделю алгоритмических идей, разборов спецификации W3C и уточнение решений, используемых в продуктах. В этой статье я расскажу о том, как нам удалось найти компромисс для этого (на первый взгляд) простого пользовательского запроса.
Существует много возможностей для формирования надежной веб-платформы проектирования для команд, вместе создающих продукты. Мы предоставляем систему, которая помогает вам разрабатывать и понимать ценность сложных дизайн-систем, обеспечивать совместную работу в реальном времени для дизайнеров, разбросанных по всему миру и даже совершенствовать старые инструменты, такие как перо. Вы можете спросить: тогда почему до сих пор нет поддержки изменения размера тени, базовой функции CSS box-shadow? Хотя прошло уже 958 дней с тех пор, как пользователь в Spectrum впервые попросил добавить ее. Неужели нам так сложно сделать тень, просто … больше?
Если вы зададите этот вопрос графическому инженеру, ответ, на самом деле, будет ошеломляющим. Значение размера тени spread представляет собой расстояние, на которое можно расширить или сжать тень во всех направлениях. Чтобы понять сложность этого момента, мы начнем с того, как мы рисуем тени. Ниже представлено несколько простых теней:
7 дней дизайн-перезагрузкиМощнейние спикеры, самое дружелюбное дизайн-комьнити и желание делать клевый дизайн.
Скидка 10% по промокоду UXPUB
Как видите, форма теней выглядят знакомо. Чтобы создать подобную тень, мы копируем геометрию объекта, заливаем его одним цветом, делаем его размытым и визуализируем под самим узлом.
Может показаться, что рендеринг тени со значением spread может быть таким же простым, как масштабирование геометрии тени. Это так для прямоугольника, но не для более сложного объекта – скажем, логотипа Figma, в котором полно дыр:
Если мы будем руководствоваться определением shadow spread – расширение тени на определенное количество пикселей наружу (или внутрь) от фигуры во всех направлениях, то получим примерно такой результат:
Но никто не сказал мне этого до того, как в прекрасный майский день во время Maker Week я решил заняться созданием этой функции. Осознав ошибочность этого подхода, я решил разобраться. Это не ракетостроение, подумал я. Мы можем выяснить, как визуализировать тени 2D-фигур.
Это правда, что есть несколько интересных алгоритмических способов решения этой проблемы, но ни один из них не вписывался в нашу существующую систему рендеринга. Также можно использовать неалгоритмический способ – используя штрихи для эмуляции теней – но я быстро понял, что это тоже не вариант. Мы обрабатываем определенные углы вершин в штрихах иначе, чем нужно для shadow spread, и в нашем прототипе рендерера нет кода генерации штрихов. Каким-то образом нам нужно было найти способ заставить эту функцию работать без добавления тонны сложного кода в две разные кодовые базы рендеринга.
Фреймворк для определения приоритетов
Если есть одна вещь, которая мне нравится больше, чем отладка ошибок рендеринга, это чтение спецификаций об интернет-технологиях. (Спросите меня обо всех странных вещах, которые я узнал о GIF89 в прошлом году, добавляя в Figma поддержку GIF). Я опросил коллег каких предположений касательно размера тени мы придерживались. Мы знаем, что сегодня пользователи Figma внедряют обходные пути и добавляют документацию для передачи проекта разработчикам, когда речь идет о значениях shadow spread. Если мы хотим облегчить передачу проекта разработчикам, то наши ограничения должны определяться CSS. Нужно ли нам рисовать идеальную тень для лого Figma? Можем ли мы сделать это в CSS?!
На самом деле, не можем. Особенность параметра box-shadow заключается в том, что он работает только для рендеринга теней блоков (и других подобных объектов, которые включают эллипсы, если вы правильно настроили радиусы углов). box-shadow не будет отображать тень логотипа Figma, как копию логотипа, но как блок.
(Кроме того: на каждом этапе этого процесса кто-то говорил мне: «на самом деле, значения размера тени поддерживаются в filter: drop–shadow()», и указывал на страницу MDN, которая по ошибке утверждала, что значения размера тени еще не поддерживались браузерами. К сожалению, это не правда, что явно указано в спецификации W3C).
Мы провели дискуссию с нашими дизайнерами. Они были уверены, что в большинстве вариантов использования будет достаточно функции shadow spread для прямоугольников и эллипсов. Кроме того, подкрепленный идеей, что соответствие CSS должно мотивировать наши решения, мы решили, что не имеет значения, можем ли мы сделать логотип в форме Figma. Мы решили безжалостно расставить приоритеты: по крайней мере, мы будем делать то, что умеет CSS.
Для этого мы решили реализовать CSS-подобные параметры shadow spread только для фигур, к которым будет применен параметр box-shadow: прямоугольники, эллипсы, фон фрейма и фоновые компоненты. Казалось этого можно добиться просто, генерируя большую или меньшую версию исходного узла. Это не просто растягивание узла, так как это нарушило бы закругленные углы. Тем не менее, достаточно просто генерировать новые геометрии прямоугольников в обоих наших механизмах рендеринга.
Вверху: тень, создаваемая простым растяжением геометрии объекта; внизу: тень, созданная путем создания нового закругленного прямоугольникаПрепятствия
Конечно, это не было так просто, как мы ожидали. В этом плане было несколько проблем: как создать правильные эллипсы? (Тень эллипса больше не будет определенно эллиптической; наш код генерации эллипса не генерирует не эллипсы, а простые преобразования эллипса в любом направлении сохраняют свои эллиптические свойства). Как отображать закругленные углы, когда эффект spread shadow был применен к прямоугольнику с закругленными углами? (Спецификация W3 определяет, как общее правило о преобразовании угловых радиусов, так и конкретную формулу, которая будет использоваться для больших значений spread shadow). Как отображать shadow spread на узлах только для обводки?
Мы решили некоторые из этих проблем с помощью проверенного временем метода: нажимать кнопки в CodePen и смотреть, что делают браузеры. Интересно, что браузеры не создают эллиптические тени, они просто создают больший эллипс. Решив подражать CSS, мы тоже это делаем.
Эффект становится более выраженным, когда оси эллипса расходятся:
Что еще более удивительно, после следования кубическому правилу W3C для угловых радиусов теней с большими значениями shadow spread (тщательно продуманное правило!), сравнение наших результатов с CodePen показало, что браузеры вообще не реализуют это. Чтобы создать тень для прямоугольника с закругленными углами, браузеры – а теперь и Figma – просто добавляют или вычитают значение shadow spread и исходный радиус угла.
Но CodePen не помог бы в определении shadow spread только для узлов обводки, поскольку наш подход уже значительно отличается от CSS. Даже полностью прозрачная заливка в CSS влияет на их собственные тени и маскирует их (но не другие тени). В Figma используется подход, близкий к физическому рендерингу, позволяющий пользователю видеть тени сквозь прозрачные и полупрозрачные заливки.
Ниже те же прямоугольники (заливки с нулевой непрозрачностью, с обводками и тенями) в CSS (слева) и Figma (справа):
Хотя легко узнать, как визуализировать тень для узла с заливкой (внизу слева), вы можете представить, как применить shadow spread для обводки несколькими способами:
A. Начните обводку с помощью параметра spread, оставив обводку постоянной
B. Добавьте spreadна внешнюю сторону ширины обводки.
C. Добавьтеspread к ширине штриха, отцентрированный так, чтобы тень распределялась по обе стороны
D. Добавьте параметр spread к каждому краю ширины обводки, в конечном итоге добавив 2 * spread к ширине обводки.
Изучив варианты, мы пришли к варианту D: мы подумали, что, когда вы переключаете видимость заливки объекта, внешний след тени должен оставаться прежним, что исключает вариант C. Из оставшихся вариантов D, похоже, больше всего соответствует идее shadow spread: тень, вытянутая вдоль каждой точки с помощью параметра spread.
Создание новой функции не всегда так просто, как кажется. При интерпретации запроса функции важно подумать о мотивах этого запроса и внимательно рассмотреть компромиссы, сделанные дизайнерами, работавшими до нас. В этом случае, пройдя извилистое путешествие по исследованиям, мы с радостью представляем широко востребованную функцию, которая, как мы надеемся, облегчит жизнь дизайнеров и разработчиков. Проверьте файл нашей игровой площадки, чтобы увидеть возможности новой функции shadow spread!
box-shadow — CSS: каскадные таблицы стилей
Свойство CSS box-shadow
добавляет эффекты тени вокруг рамки элемента. Вы можете установить несколько эффектов через запятую. Тень блока описывается смещениями по осям X и Y относительно элемента, радиусом размытия и распространения и цветом.
Свойство box-shadow
позволяет отбрасывать тень от кадра практически любого элемента. Если для элемента с тенью блока указан border-radius
, тень блока принимает те же закругленные углы.Порядок z-порядка нескольких теней блока такой же, как и нескольких теней текста (первая указанная тень находится сверху).
Генератор блочной тени — это интерактивный инструмент, позволяющий генерировать блочную тень
.
тень коробки: нет;
box-shadow: 60–16 пикселей бирюзовый;
box-shadow: 10px 5px 5px черный;
box-shadow: 2px 2px 2px 1px rgba (0, 0, 0, 0,2);
box-shadow: вставка 5em 1em золото;
box-shadow: 3px 3px красный, -1em 0 0,4em оливковый;
box-shadow: наследовать;
box-shadow: начальный;
box-shadow: вернуться;
box-shadow: отключено;
Укажите одиночную тень блока, используя:
- Два, три или четыре
<длина>
значений.- Если указаны только два значения, они интерпретируются как значения
<смещение-x>
и<смещение-y>
. - Если задано третье значение, оно интерпретируется как
<радиус размытия>
. - Если дано четвертое значение, оно интерпретируется как
<распространение-радиус>
.
- Если указаны только два значения, они интерпретируются как значения
- Необязательно:
вставка
ключевое слово. - Необязательно, значение
<цвет>
.
Чтобы указать несколько теней, укажите список теней, разделенных запятыми.
Значения
-
вставка
- Если не указано (по умолчанию), предполагается, что тень является падающей тенью (как если бы прямоугольник был поднят над содержимым).
Наличие ключевого словаinset
изменяет тень на одну внутри кадра (как если бы содержимое было вдавлено внутри рамки). Вставные тени рисуются внутри границы (даже прозрачные), над фоном, но под содержимым. -
<смещение-x>
<смещение-y>
- Это два значения
<длина>
для получения информации о возможных единицах.
Если оба значения равны0
, тень помещается за элементом (и может создавать эффект размытия, если установлено -
<радиус размытия>
Это третье значение
<длина>
.Чем больше это значение, тем больше размытие, поэтому тень становится больше и светлее. Отрицательные значения не допускаются. Если не указано, это будет0
(край тени резкий). В спецификации не содержится точного алгоритма расчета радиуса размытия, однако он уточняется следующим образом:… для длинного прямого края тени это должно создать цветовой переход по длине расстояния размытия, которое перпендикулярно и центрируется на краю тени, и которое колеблется от полного цвета тени в конечной точке радиуса внутри тени до полного прозрачный в конечной точке за ее пределами.
-
<радиус распространения>
- Это четвертое значение
<длина>
. Положительные значения заставят тень расширяться и увеличиваться в размерах, отрицательные значения заставят тень сжиматься. Если не указано, это будет0
(тень будет того же размера, что и элемент). -
<цвет>
- См. Возможные ключевые слова и обозначения в значениях
Если не указано, по умолчанию используется
Интерполяция
Каждая тень в списке (обработка none
как список нулевой длины) интерполируется через компонент цвета (как цвет), а также x, y, размытие и (при необходимости) распространение (как длину) составные части. Для каждой тени, если обе входные тени являются или не являются , вставкой
, то интерполированная тень должна соответствовать входным теням в этом отношении. Если какая-либо пара входных теней имеет одну вставку
, а другую — не вставку
, весь список теней не интерполируется.Если списки теней имеют разную длину, то более короткий список дополняется в конце тенями, цвет которых — , прозрачный
, все длины — 0
, и чья вставка
(или нет) соответствует более длинному списку.
нет | <тень> #где
<тень> = вставка? && <длина> {2,4} && <цвет>?
где
<цвет> =
| | | | <шестнадцатеричный цвет> | <имя-цвета> | текущий цвет | <цвет устаревшей системы> , где
= rgb (<процент> {3} [/ ]?) | rgb (<число> {3} [/ <альфа-значение>]?) | rgb (<процент> # {3}, <альфа-значение>?) | rgb (<число> # {3}, <альфа-значение>?)
= rgba (<процент> {3} [/ <альфа-значение>]?) | rgba (<число> {3} [/ <альфа-значение>]?) | rgba (<процент> # {3}, <альфа-значение>?) | rgba (<число> # {3}, ?)
= hsl ( [/ ]?) | hsl (<оттенок>, <процент>, <процент>, <альфа-значение>?)
= hsla (<оттенок> <процент> <процент> [/ <альфа-значение>]?) | hsla (<оттенок>, <процент>, <процент>, <альфа-значение>?) , где
<альфа-значение> = <число> | <процент>
<оттенок> = <число> |
Установка трех теней
В этом примере мы включаем три тени: внутреннюю тень, обычную падающую тень и тень 2 пикселя, которая создает эффект границы (вместо этого мы могли бы использовать контур
для эта третья тень).
HTML
Можешь застрелить меня своими словами,
Можешь порезать меня глазами,
Ты можешь убить меня своей ненавистью,
Но все равно, как воздух, поднимусь.
& mdash; Майя Анжелу
CSS
blockquote {
отступ: 20 пикселей;
тень коробки:
вставка 0 -3em 3em rgba (0,0,0,0.1),
0 0 0 2px rgb (255,255,255),
0.3em 0.3em 1em rgba (0,0,0,0.3);
}
Результат
Установка нуля для смещения и размытия
Когда x-offset
, y-offset
и blur
равны нулю, тень блока будет сплошным контуром равного размера со всех сторон. Тени отрисовываются задом наперед, поэтому первая тень располагается поверх последующих теней. Когда border-radius
установлен на 0, как это установлено по умолчанию, углы тени будут, ну, углами.Если бы мы поставили border-radius
любого другого значения, углы были бы скруглены.
Мы добавили поле размером с самую широкую тень блока, чтобы гарантировать, что тень не перекрывает соседние элементы и не выходит за границу содержащего прямоугольника. Тень блока не влияет на размеры модели блока.
HTML
Привет, мир
CSS
п {
box-shadow: 0 0 0 2em # F4AAB9,
0 0 0 4em # 66CCFF;
маржа: 4em;
заполнение: 1em;
}
Результат
Таблицы BCD загружаются только в браузере
CSS свойство box-shadow
Пример
Добавить тени к разным элементам
box-shadow: 5px 10px;
}
# example2 {
box-shadow:
5px 10px # 888888;
}
Дополнительные примеры «Попробуйте сами» ниже.
Определение и использование
Свойство box-shadow
прикрепляет одну или несколько теней к элементу.
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Числа, за которыми следует -webkit- или -moz-, указывают первую версию, которая работала с префиксом.
Имущество | |||||
---|---|---|---|---|---|
тень | 10.0 4.0 -webkit- | 9,0 | 4,0 3,5 -моз- | 5,1 3,1 -webkit- | 10,5 |
Синтаксис CSS
тень коробки: нет | h-смещение v-смещение размытие цвет распространения | вставка | начальный | наследование;
Примечание: Чтобы прикрепить более одной тени к
добавьте список теней, разделенных запятыми (см. пример «Попробуйте сами»
ниже).
Значения свойств
Значение | Описание | Играй |
---|---|---|
нет | Значение по умолчанию.Тень не отображается | Играй » |
смещение по горизонтали | Обязательно. Горизонтальное смещение тени. Положительное значение ставит тень на правой стороне поля, отрицательное значение помещает тень на левая часть коробки | Играй » |
v-образное смещение | Обязательно. Вертикальное смещение тени. Положительное значение ставит тень под рамкой, отрицательное значение помещает тень над рамкой | Играй » |
размытие | Необязательно.Радиус размытия. Чем выше число, тем более размытым тень будет | Играй » |
спред | Необязательно. Радиус распространения. Положительное значение увеличивает размер тень, отрицательное значение уменьшает размер тени | Играй » |
цвет | Необязательно. Цвет тени. Значение по умолчанию — цвет текста. Посмотрите на CSS Color Values полный список возможных значений цвета. Примечание: В Safari (на ПК) параметр цвета является обязательным. Если не указать цвет, тень вообще не отображается. | Играй » |
вставка | Необязательно. Изменяет тень от внешней (исходной) тени на внутреннюю | Играй » |
начальный | Устанавливает для этого свойства значение по умолчанию. Читать о начальных | Играй » |
наследовать | Наследует это свойство от своего родительского элемента.Читать о наследовать |
Совет: Подробнее о допустимых значениях (единицы длины CSS)
Другие примеры
Пример
Добавить эффект размытия к тени:
# example1 {
box-shadow: 10px 10px 8px # 888888;
}
Пример
Определите радиус распространения тени:
# example1 {
box-shadow: 10px 10px 8px 10px # 888888;
}
Пример
Определить несколько теней:
# example1 {
box-shadow: 5px 5px синий, 10px 10px
красный, 15px 15px зеленый;
}
Пример
Добавьте ключевое слово вставки:
# example1 {
box-shadow: 5px 10px inset;
}
Пример
Изображения, брошенные на стол.Этот пример демонстрирует, как создавать «поляроидные» изображения и вращать фото:
div.polaroid {
width: 284px;
отступ: 10px 10px 20px 10px;
граница: сплошная 1px
#BFBFBF;
цвет фона: белый;
box-shadow: 10px 10px 5px #aaaaaa;
}
связанные страницы
Учебник CSS: закругленные углы CSS
Ссылка на HTML DOM: свойство boxShadow
CSS3 Box Shadow, только верхний / правый / нижний / левый и все · GitHub
CSS3 Box Shadow, только верхний / правый / нижний / левый и все · GitHubМгновенно делитесь кодом, заметками и фрагментами.
CSS3 Box Shadow, только верх / правый / нижний / левый и все
<стиль> | |
.ящик { | |
высота: 150 пикселей; | |
ширина: 300 пикселей; | |
поле: 20 пикселей; | |
граница: сплошная 1px #ccc; | |
} | |
. Верх { | |
box-shadow: 0 -5px 5px -5px # 333; | |
} | |
.правый { | |
box-shadow: 5px 0 5px -5px # 333; | |
} | |
. Дно { | |
box-shadow: 0 5px 5px -5px # 333; | |
} | |
.слева { | |
box-shadow: -5px 0 5px -5px # 333; | |
} | |
.все { | |
box-shadow: 0 0 5px # 333; | |
} | |
Расширенное использование box-shadow и border-radius
Это выпуск # 14 из серии, посвященной современным решениям CSS для проблем, которые я решал в течение последних 14 с лишним лет работы фронтенд-разработчиком .
В этом выпуске рассматривается расширенное использование box-shadow
и border-radius
и завершается демонстрация целевой страницы, использующей эти свойства для улучшения представления изображения.
Вы узнаете:
- расширенный синтаксис
border-radius
, и когда использовать какой тип единиц для установки значений - как создать несколько слоев
box-shadow
- о
box-shadow
значениевставка
- как «взломать»
box-shadow
со вставкой
Обзор
border-radius
# Дети в наши дни никогда не будут иметь дело с созданием gif для каждого угла div, который вы хотите, чтобы он выглядел закругленным 😂 Действительно, выпуск и возможная поддержка border-radius
были одной из самых важных вех в CSS.
Напоминаем, как его часто используют:
border-radius: 50%;
Что для квадратного элемента приведет к появлению круга.
Или уменьшите масштаб, чтобы получить лишь небольшую округлость, до острых углов, например, для кнопки или карточки, где вы могли бы использовать:
border-radius: 8px;
Один из способов сделать это немного дальше — использовать два значения, где первое значение задает верхний левый и нижний правый, а второе значение устанавливает верхний правый и нижний левый:
border-radius: 20% 50%;
Whiiiich… вроде как лимон?
Теперь, учитывая те же значения, но другой размер div, эти результаты будут сильно различаться:
Мы также можем установить все четыре угла:
border-radius: 3vw 4vw 8vw 2vw;
Но подождите — это еще не все!
Существует супер-расширенный синтаксис, который позволяет вам определять как горизонтальный, так и вертикальный радиус, по которому будет закругляться каждый угол. В то время как по умолчанию закруглены очень круглые, добавление дополнительного радиуса изменяет «обрезку», которая возникает для создания угла, позволяя получить модные формы «капли»:
Оцените игровую площадку border-radius от Jhey с панелью конфигурации и предварительным просмотром в реальном времени для создания расширенного синтаксиса стилей
border-radius
.
Есть еще несколько способов определить синтаксис, вы можете проверить их в документации MDN.
Агрегаты для
border-radius
# Обратите внимание, что мы использовали несколько различных единиц измерения: %
, пикселей
и vw
, который является единицей измерения «ширина области просмотра».
Процент значений относятся к размеру элемента, что означает меньшую предсказуемость, если ожидается, что элемент будет разных размеров. В примере 50%
, когда элемент больше не квадратный, он начинает казаться более эллиптическим.
Абсолютные единицы , такие как px
или rem
, предпочтительнее, если вы хотите получить согласованные результаты не на основе элемента, а на основе, возможно, проектных спецификаций.
Относительные единицы , такие как единицы просмотра или em
, могут быть полезны, если вам нужна согласованность, но также и элемент масштаба:
- Единицы просмотра
- будут вычислять, что будет больше на «настольном компьютере» и меньше на «мобильном устройстве», но сохранит округлый внешний вид.
-
em
будет варьироваться в зависимости от размера шрифта
Обзор
box-shadow
# Лично, когда он получил достойную поддержку, то, что сделало box-shadow
самым захватывающим для меня, было то, что модели появлялись со страницы гораздо более естественным способом 🙏
И какое-то время они были критически важными для того, что мы называем «скевморфным дизайном».И в прошлом году они вернулись к «неуморфному дизайну».
Были ли вам эти новые условия? Вот хороший обзор, сравнивающий каждый с примерами от UX Collective.
Но то, что я обычно использую box-shadow
в наши дни, — это просто тонкий намек на высоту для таких вещей, как кнопки или карты:
box-shadow: 3px 4px 5px 0px rgba (0, 0, 0, 0,38);
Допустимо опустить радиус размытия
и радиус размытия
, что приводит к более резкой тени из-за потери размытия.Тень также не будет выходить за пределы значений смещения, поскольку разброс предназначен для масштабирования за пределы размеров элемента.
В приведенном выше примере мы по существу дали тени «источник света», который был немного выше и слева от элемента, который «отбрасывал» тень немного вправо и ниже.
Вместо этого вы можете установить смещение равным 0 для тени, которая равна вокруг элемента, хотя требуется как минимум blur-radius
. Если также предоставляется spread-radius
, это применит масштаб к тени, чтобы расширить ее за пределы размеров элемента:
тень коробки: 0 0 0.25em 0,25em rgba (0, 0, 0, 0,25);
Мне нравится использовать box-shadow
для создания настраиваемого визуального состояния : focus
на кнопках. В отличие от border
, box-shadow
не , а изменяет вычисленные размеры элементов, то есть добавление или удаление его не приводит к смещению его или элементов вокруг него из перекомпоновки. Посмотрите эпизод о кнопках, чтобы увидеть этот метод.
Уникальной особенностью box-shadow
является возможность применять кратное:
box-shadow: 2px 4px 0 4px желто-зеленый, 4px 8px 0 8px розовый, 8px 10px 0 12px темно-синий;
«Порядок наложения» таков, что первый набор находится «сверху» или визуально ближе всего к элементу, а затем вниз.Вот почему -радиус распространения
должен быть увеличен, иначе «нижние» слои не будут видны (кроме случаев, когда смещение не перекрывается).
Мы также можем отразить box-shadow
на внутри элемента, добавив значение вставки
:
box-shadow: вставка 0 0 12px 4px rgba (0, 0, 0, 0.8);
Эти значения будут применять очень буквальную «вставку» тени, когда элемент кажется «утопленным» в странице:
box-shadow
Взломанные образы # Два альтернативных способа использования вставки.
теней для изображений.
Ключ находится в порядке наложения , а факт box-shadow
помещен на поверх изображений, примененных через background-image
.
Виньетка
Первый — это «виньетка», представляющая собой технику фотографии, при которой края фотографии плавно переходят в фон. Это помогает выделить объект фотографии, особенно если объект расположен в центре.
Однако свойство inset
нельзя напрямую использовать в
, поскольку оно считается «пустым» элементом, а не элементом контейнера.
Вместо background-image
к контейнеру применяется следующий CSS:
. Контейнер виньетки {
ширина: 30vmin;
высота: 30вмин;
box-shadow: вставка 0 0 4vmin 3vmin rgba (0, 0, 0, 0.5);
}
Вот сравнение, где к левому изображению применена виньетка, а к правому — нет.
Мы использовали vmin
единиц, чтобы box-shadow
масштабировался относительно общего размера изображения, который также был установлен в vmin
.Это связано с невозможностью установить box-shadow
с использованием процентов, что немного затрудняет установку значений относительно элемента. Таким образом, хитрость внутри хака состоит в том, чтобы использовать единицы просмотра для установки ожидаемого размера элемента, чтобы иметь более предсказуемые результаты для box-shadow
по размеру окна просмотра.
Хотели бы вы, чтобы подсказки CSS были в вашем почтовом ящике? Присоединяйтесь к моему информационному бюллетеню, чтобы получать обновления статей, советы по CSS и внешние ресурсы!
Цветной экран изображения
Я нашел эту технику, когда использовал background-image
, но также хотел цветной «экран» — что означает необходимость помещения полупрозрачной цветной заливки поверх изображения.Это полезный метод, помогающий защитить контраст любого текста, размещенного над фоновыми изображениями, а также создать визуальную согласованность между набором изображений, не связанных друг с другом.
Мое предыдущее решение, которое использовалось в течение многих лет, было дополнительным, абсолютно позиционированным : до
на содержащем элементе с примененным к нему цветом экрана как background-color
.
Вот новое решение inset
box-shadow
:
box-shadow: вставка 0 0 0 100vmax rgba (102, 76, 202, 0.65);
И сравнение с экраном слева и без справа:
Взлом поймал? Я упоминал, что проценты недопустимы, но поскольку единицы просмотра, мы устанавливаем spread
на 100vmax
, что составляет , вероятно, для покрытия любого элемента, если ваш элемент не превышает double max-width или max- высота области просмотра.
Подождите — почему двойной ? Поскольку спред
создается из всех сторон элемента, поэтому он как минимум вдвое превышает значение vmax
.Вы можете проверить это, используя указанное выше значение и установив для вашего контейнера как минимум width: 100vw; height: 100vh
и посмотрите, в какой точке середина контейнера не закрыта.
Если вы используете его для чего-то большего, чем, например, изображение героя, просто увеличьте его по мере необходимости, например, до 200vmax
.
Если кому-то известно о снижении производительности из-за этого, дайте мне знать!
Демо №
Демонстрация идет немного дальше и показывает, как использовать object-fit
на изображениях, чтобы заставить их вести себя как background-image
, при этом сохраняя семантику изображения, что отлично при использовании alt
свойство необходимо (спойлер: вы должны идти по этому маршруту большую часть времени для доступности).
Кроме того, к заголовку h2
применено text-shadow
, которое анимировано на : hover
заголовка
. Основное различие между box-shadow
и text-shadow
заключается в том, что text-shadow
не имеет свойства spread
.
Он также сочетает в себе методы, показывая border-radius
в сочетании с box-shadow
для изображений содержимого. И изображения содержимого показывают, как box-shadow
можно анимировать, отведя затухание виньетки на : наведите курсор на
для эффекта выделения.
Дополнительный трюк в анимации box-shadow
заключается в повторном предоставлении значений вставки , чтобы гарантировать, что при обратном переходе затухания используется наш полупрозрачный черный вместо белого. Это связано с тем, что
box-shadow
в большинстве браузеров (кроме Safari) по умолчанию имеет значение текущего цвета, если он не указан явно, а для элементов списка установлен цвет : #fff
.
Bonus : Моя любимая «Позиция : абсолютный убийца
» с использованием сетки CSS и присвоением всех элементов одной и той же области сетки
- возможно, это будет в следующем эпизоде и / или видео с яйцеголовым покрытием cover
Стефани Эклс (@ 5t3ph)
Использование box-shadow для создания границы
Вы когда-нибудь спрашивали себя, почему так много разработчиков, даже разработчики внешнего интерфейса, склонны избегать использования CSS.Разработчики очень часто проявляют энтузиазм, когда им нужно сделать что-то новое с помощью таких фреймворков, как Angular, React, Vue.js ... или при изучении новой технологии или языка, но когда мы говорим о CSS, они испытывают гораздо меньший энтузиазм. И я думаю, что знаю почему! В CSS нет стандартов. Часто есть много способов сделать что-то одно, и я должен признать, что это может расстраивать, потому что вы даже не знаете, хорошо или плохо то, что вы делаете. И моя сегодняшняя статья представляет вам одну из самых простых вещей, которые вы можете сделать в CSS: , добавив границу к блоку .Очевидно, это просто, но я представлю вам (надеюсь) новый способ сделать это ...
Использование свойства границы
Итак, добавить границу к блоку довольно просто, если вы используете свойство border
. Начнем с первого базового примера с рисования небольшого квадрата и добавления к нему красной границы. Я добровольно добавляю контент в div
с небольшим отступом, он понадобится для следующей статьи:
Граница
div {
ширина: 100 пикселей;
высота: 100 пикселей;
отступ: 5 пикселей;
нижнее поле: 10 пикселей;
}
.граница{
граница: сплошной красный 1px;
}
Теперь предположим, что вам нужно добавить какой-то стиль, когда курсор мыши находится над квадратом, например, усиливая границу. Давайте сделаем наше первое решение со свойством border:
div {
ширина: 100 пикселей;
высота: 100 пикселей;
отступ: 5 пикселей;
}
.граница{
граница: сплошной красный 1px;
&: hover {
граница: сплошной красный цвет 3px;
}
}
Вы видите, что происходит, когда ваша мышь наводит курсор на поле? Ваш контент продвигается вперед, и рендеринг не очень красивый.
Коробка-тень
Это свойство очень полезно, когда вам нужно добавить тень к элементу. Вы часто используете это свойство, когда вам нужно выделить коробку из фона, например:
Но знаете ли вы, что это свойство можно использовать только для рисования границ? Это сложнее, чем просто использовать свойство border
, но вы сможете решить некоторые странные проблемы, подобные той, которую мы видели ранее. Итак, вот спецификация свойства box-shadow
:
box-shadow: вставка | смещение-x | смещение-у | радиус размытия | радиус распространения | цвет
- inset: определяет, будет ли тень находиться внутри или вне кадра.Вы можете опустить это свойство.
- offset-x: Вы можете установить длину эффекта тени. Вы можете указать отрицательные значения для рендеринга тени слева.
- offset-y: Вы можете установить длину эффекта тени. Вы можете указать отрицательные значения для визуализации тени наверху.
- blur-radius: Определяет длину размытия, чтобы тень становилась больше и светлее. Это не то, что мы будем использовать в нашем примере.
- spread-radius: используйте это свойство, чтобы расширить (с положительными значениями) или сузить (с отрицательными значениями) тени.
- color: Установите цвет тени!
Итак, вот небольшой обзор рисования границ с помощью свойства box-shadow
:
box-shadow: 0 1px 0 0 красный; / * Нижняя граница * /
box-shadow: 0 -1px 0 0 красный; / * Верхняя граница * /
box-shadow: -1px 0 0 0 красный; / * Граница слева * /
box-shadow: 1px 0 0 0 красный; / * Граница справа * /
box-shadow: 0 0 0 1px красный; / * Все границы с использованием свойств спреда * /
Итак, имея это в виду, теперь мы можем использовать box-shadow
для решения нашей предыдущей проблемы.Итак, я добавил новый прямоугольник и нарисовал границы с помощью свойства box-shadow
:
Тень коробки
.тень {
box-shadow: 0 0 0 1px красный;
}
Теперь добавим случай hover
:
.shadow {
box-shadow: 0 0 0 1px красный;
&: hover {
box-shadow: 0 0 0 3px красный;
}
}
Теперь вы можете заметить, что ваш контент не продвигается вперед, когда вы наводите указатель мыши над полем. Разве вы не находите, что рендеринг намного лучше?
Заключение
Это иллюстрация того, что в CSS у вас так много возможностей.Использование границы
просто и может удовлетворить большинство ваших вариантов использования, но иногда будут случаи, подобные приведенному выше, когда вам понадобится что-то лучшее, и box-shadow
может решить ваши проблемы. Это просто пример, есть и другие случаи, когда может быть полезно использование box-shadow
. Например, если вам нужно более одной границы, вам может помочь box-shadow
.
Вы можете найти образец кода здесь: https://codepen.io/michelre/pen/EoPMGv
16 CSS Text Shadow Effects
Коллекция отобранных вручную бесплатных HTML и CSS text shadow effect примеров кода.
- Текстовые эффекты CSS
- Примеры CSS box-shadow
Автор
- Филдинг Джонстон
О коде
Трехмерный мультяшный текст с тенью текста CSS
Игра с CSS text-shadow
и шрифтом Google «Luckiest Guy».
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Лиам Иган
О коде
Смесь 3D текста SCSS
Это простой миксин SCSS, который создает трехмерный блочный текст с текстовыми тенями
.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Эрин Э. Салливан
О коде
Анимированная тень текста
Забавная CSS-анимация, которая создает отскок, имитируя разделение RGB во время процесса.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Мартин Пикод
Сделано с
- HTML / CSS (SCSS) / JavaScript
О коде
Тень текста с учетом направления
С учетом направления text-shadow
, использование переменных CSS для создания перспективы и трехмерного светового эффекта на тексте.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Даниэль Гонсалес
О коде
Groovy CSS-эффект
Эффект шрифта 1960-х годов с использованием свойства CSS text-shadow
вместе с функцией SASS и миксинами для сохранения кода DRY.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Нурай Йемон
О коде
Анимация текста в стиле Netflix с помощью CSS
Текстовая анимация в стиле Netflix с CSS и функцией SCSS, чтобы иметь длинную тень текста .
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
О коде
Необычная тень текста
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
О коде
CSS тень текста
Современный эффект тени для текста с помощью CSS text-shadow
.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Алекс Мур
О коде
Pretty Shadow
Красивая тень текста.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Дарио Корси
О коде
Variable Longshadow с градиентами Mixin
Этого не должно быть. Но теперь вы можете определять длинные тени с разными цветами и размахами с помощью одного микшина Sass.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Эрик Юнг
О коде
Неоновые эффекты
Neon текстовая тень
эффектов.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Нгуен Хоанг Нам
О коде
Потрясающая тень текста
Эффект плоской и простой тени для текста.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Маюр Эльбхар
О коде
Текст-тень
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
О коде
Микс с градиентом длинных теней
Примесь Sass (SCSS) для быстрой генерации длинных теневых градиентов.Подходит как для text-shadow
, так и для box-shadow
.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Хорхе Эпуньян
О коде
CSS3 Эффекты тени текста
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Автор
- Лукас Беббер
О коде
CSS пунктирная тень
Чистая хипстерская типографская пунктирная тень на CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: -
Лучший генератор теней для боксов • Brand Glow Up
Увеличьте красоту и выразительность вашего блока или границы, используя тени блока!
Как дизайнер, создание тени блока может занять много времени. Вам необходимо запомнить синтаксический код, и если в вашем коде есть единственная ошибка, есть шанс, что ваша тень блока не будет выглядеть так, как вам хотелось бы.
Простым, но экспоненциально полезным решением этой проблемы является генератор тени блока CSS. Этот генератор мгновенно поможет вам создать тень коробки, автоматически генерируя для нее коды.
Хотя существует множество генераторов теней, я настоятельно рекомендую CSSmatic. Вы можете создать тень коробки по этой ссылке www.cssmatic.com/box-shadow.
Конечно, они предлагают не только решение box shadow, но и текстуру шума , радиус границы и генератор градиента .
Когда дело доходит до тени коробки, вы можете легко создать ее через их веб-сайт. Когда вы посещаете их сайт, вы найдете настраиваемые элементы в левой части страницы, а панель предварительного просмотра находится справа.
Первый настраиваемый элемент на левой панели - это длина по горизонтали. Этот элемент позволит вам указать длину тени слева или справа от вашего поля. С другой стороны, длина по вертикали выполняет ту же функцию, только она используется для указания того, насколько далеко будет тень в вертикальной плоскости.
Далее будет радиус размытия. По мере увеличения значения радиуса размытия тень становится более блеклой. Радиус распространения позволит вам определить размер тени. Вы можете изменить цвет тени и рамки с помощью параметров Shadow Color и Box Color. Цвет изменит непрозрачность тени.
Панель предварительного просмотра покажет вам изменение кода, внешний вид тени и окна. Это удобный способ проверить дизайн тени блока при вводе различных параметров и значений.
CSSmatic разработан freepik и tumbr.it. Это некоммерческий веб-сайт, созданный для помощи разработчикам в их дизайне.
В заключение, вы всегда можете использовать CSSmatic для создания тени блока. Вам не придется тратить бесчисленные часы и усилия на создание тени блока с помощью CSSmatic.
.