Есть ли способ использовать две тени CSS3 для одного элемента?


157

Я пытаюсь воспроизвести стиль кнопок в макете Photoshop, в котором есть две тени. Первая тень - это внутренняя тень от более светлого прямоугольника (2 пикселя), а вторая - тень от самой кнопки (5 пикселей).

введите описание изображения здесь

В фотошопе это легко - Inner Shadow и Drop Shadow. В CSS я, видимо, могу иметь одно или другое, но не оба одновременно.

Если вы попробуете приведенный ниже код в браузере, вы увидите, что box-shadow переопределяет вставку box-shadow.

Вот тень вставки:

box-shadow: inset 0 2px 0px #dcffa6;

И это то, что я хотел бы для тени на кнопке:

box-shadow: 0 2px 5px #000;

Для контекста, вот мой полный код кнопки (с градиентами и все):

button {
    outline: none;
    position: relative;
    width: 160px;
    height: 40px;
    font-family: 'Open Sans', sans-serif;
    color: #fff;
    font-weight: 800;
    font-size: 12px;
    text-shadow: 0px 1px 3px black; 
    border-radius: 3px;
    background-color: #669900;
    background: -webkit-gradient(linear, left top, left bottom, from(#97cb52), to(#669900));
    background: -moz-linear-gradient(top, #97cb52, #669900);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#97cb52', endColorstr='#669900');
    box-shadow: inset 0 2px 0px #dcffa6;
    box-shadow: 0 2px 5px #000;
    border: 1px solid #222;
    cursor: pointer;
}

Ответы:


407

Вы можете разделить запятыми тени:

box-shadow: inset 0 2px 0px #dcffa6, 0 2px 5px #000;

6
Также отметим, что первая объявленная тень относится к следующим ( -ым
web-tiki

Вы пропускаете радиус действия между прочим; это может иметь большое значение. Также непрозрачность на тени действительно может иметь значение. Вы можете играть с тенями, если вы откроете инструменты разработки здесь, в моей записи в блоге. fullstack.life/css3-multiple-box-shadows.html
fullstacklife

17

Тени от ящиков могут использовать запятые для создания нескольких эффектов, как и для фоновых изображений (в CSS3).


Хотя вы можете применить несколько теней, применение встроенных теней, как я обнаружил, является особым случаем. (Но тогда этот случай применим только к изображениям).
JayC

В самом деле? Я сейчас на мобильном, поэтому не могу проверить; но я не слышал об этом раньше ... Я посмотрю на это завтра, после работы. = /
Дэвид говорит восстановить Монику

Если вы хотите вставить тень на изображение, вы должны установить элемент или псевдоэлемент сверху. Это может быть сложно.
JayC
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.