Czy istnieje sposób na użycie dwóch cieni pól CSS3 na jednym elemencie?


156

Próbuję odtworzyć styl przycisku w makiecie programu Photoshop, która ma dwa cienie. Pierwszy cień to wewnętrzny jaśniejszy cień ramki (2px), a drugi to cień poza samym przyciskiem (5px).

wprowadź opis obrazu tutaj

W Photoshopie jest to łatwe - Inner Shadow i Drop Shadow. W CSS najwyraźniej mogę mieć jedno lub drugie, ale nie oba naraz.

Jeśli wypróbujesz poniższy kod w przeglądarce, zobaczysz, że cień pola przesłania wstawkę cień pola.

Oto cień pola wstawionego:

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

A oto, co chciałbym dla cienia na przycisku:

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

W kontekście, oto mój pełny kod przycisku (z gradientami i wszystkim):

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;
}

Odpowiedzi:


406

Możesz oddzielić cienie przecinkami:

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

6
Wspomnij także, że pierwszy zadeklarowany cień jest jednym z następujących jsfiddle.net/webtiki/s9pkj
— web-tiki

Przy okazji brakuje ci promienia spead; to może mieć duże znaczenie. Również krycie cienia naprawdę może mieć znaczenie. Możesz bawić się cieniem pudeł, jeśli otworzysz narzędzia programistyczne tutaj, na moim blogu. fullstack.life/css3-multiple-box-shadows.html
— fullstacklife

16

Cienie pól mogą używać przecinków, aby mieć wiele efektów, tak jak w przypadku obrazów tła (w CSS3).


Chociaż można zastosować wiele cieni, odkryłem, że stosowanie cieni wstawianych jest szczególnym przypadkiem. (Ale to chyba dotyczyło tylko obrazów).
— JayC,

Naprawdę? Jestem teraz na telefonie komórkowym, więc nie mogę sprawdzić; ale nie słyszałem o tym wcześniej ... Zajrzę się tym jutro, po pracy. = /
— David mówi, że przywróć Monice

Jeśli chcesz wstawić cień na obrazie, musisz ustawić element lub pseudoelement na wierzchu. To może być trudne.
— JayC,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.