Existe uma maneira de usar duas sombras de caixa CSS3 em um elemento?


157

Estou tentando replicar um estilo de botão em uma maquete do Photoshop que possui duas sombras. A primeira sombra é uma sombra interna da caixa mais clara (2px) e a segunda é uma sombra projetada fora do próprio botão (5px).

insira a descrição da imagem aqui

No Photoshop, isso é fácil - Inner Shadow e Drop Shadow. Aparentemente, no CSS, posso ter um ou outro, mas não os dois ao mesmo tempo.

Se você tentar o código abaixo em um navegador, verá que a sombra da caixa substitui a sombra da caixa inserida.

Aqui está a sombra da caixa de inserção:

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

E é isso que eu gostaria para a sombra no botão:

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

Para o contexto, aqui está o meu código de botão completo (com gradientes e tudo):

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

Respostas:


407

Você pode separar sombras por vírgula:

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

6
Também menciona que a sombra primeiro declarada é para da uma (s) seguinte jsfiddle.net/webtiki/s9pkj
— web-tiki

Você está perdendo o raio da lança; isso pode fazer muita diferença. Também a opacidade na sombra realmente pode fazer a diferença. Você pode brincar com sombras de caixa se abrir as ferramentas de desenvolvimento aqui na entrada do meu blog. fullstack.life/css3-multiple-box-shadows.html
— fullstacklife

17

As sombras da caixa podem usar vírgulas para ter vários efeitos, assim como nas imagens de plano de fundo (em CSS3).


Embora você possa aplicar várias sombras, a aplicação de sombras embutidas , eu descobri, é um caso especial. (Mas esse caso só se aplica a imagens, eu acho).
— JayC

Realmente? Estou no celular no momento, então não posso verificar; mas eu não tinha ouvido isso antes ... vou investigar isso amanhã, depois do trabalho. = /
— David diz que restabelece Monica

Se você deseja uma sombra inserida em uma imagem, defina um elemento ou pseudoelemento por cima. Pode ser complicado.
— JayC
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.