Existe-t-il un moyen d'utiliser deux ombres de boîte CSS3 sur un élément?


157

J'essaie de reproduire un style de bouton dans une maquette de Photoshop comportant deux ombres. La première ombre est une ombre de boîte plus claire intérieure (2px) et la seconde est une ombre portée à l'extérieur du bouton (5px) lui-même.

entrez la description de l'image ici

Dans Photoshop, c'est facile - Ombre intérieure et Ombre portée. En CSS, je peux apparemment avoir l'un ou l'autre, mais pas les deux en même temps.

Si vous essayez le code ci-dessous dans un navigateur, vous verrez que le box-shadow remplace le box-shadow en médaillon.

Voici l'ombre de la boîte en médaillon:

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

Et voici ce que je voudrais pour l'ombre portée sur le bouton:

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

Pour le contexte, voici mon code de bouton complet (avec des dégradés et tout):

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

Réponses:


407

Vous pouvez séparer les ombres par des virgules:

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

6
Mentionnez également que la première ombre déclarée est sur l'une des suivantes jsfiddle.net/webtiki/s9pkj
web-tiki

Vous manquez le rayon de spead btw; cela peut faire toute la différence. L'opacité de l'ombre peut également faire une différence. Vous pouvez jouer avec les ombres de boîte si vous ouvrez les outils de développement ici sur mon entrée de blog. fullstack.life/css3-multiple-box-shadows.html
fullstacklife

17

Les ombres de boîte peuvent utiliser des virgules pour avoir plusieurs effets, tout comme avec les images d'arrière-plan (en CSS3).


Bien que vous puissiez appliquer plusieurs ombres, l'application d' ombres en médaillon , j'ai trouvé, est un cas particulier. (Mais alors ce cas ne s'appliquait qu'aux images, je suppose).
JayC

Vraiment? Je suis actuellement sur mobile, donc je ne peux pas vérifier; mais je n'avais jamais entendu ce rapport avant ... Je vais examiner cela, demain, après le travail. = /
David dit de réintégrer Monica

Si vous voulez une ombre incrustée sur une image, vous devez placer un élément ou un pseudo-élément au-dessus. Cela peut être délicat.
JayC
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.