En CSS3, si box-shadow et border-radius sont utilisés directement sur les images, le navigateur ne peut pas les restituer correctement. Mais si vous utilisez l'image comme image d'arrière-plan, le navigateur de styles ajouté peut bien la restituer. Je vais vous présenter comment utiliser l'ombre de la boîte, le rayon de la bordure et la transition pour créer différents effets de style d'image.
Problème
En regardant la démo, nous pouvons remarquer que nous avons défini border-radius et inline box-shadow pour la première rangée d'images. Firefox restitue le rayon de bordure de l'image, mais ne restitue pas l'ombre de la boîte en ligne. Les deux effets ne sont pas rendus dans Chrome et Safari.
.normal img {
border: solid 5px #000;
-webkit-border-radius: 20px;
-moz-border-radius: 20px
border-radius: 20px; : encart 0 1px 5px rgba(0,0,0,.5);
-moz-box-shadow : encart 0 1px 5px rgba(0,0,0,.5); encart 0 1px 5px rgba(0,0,0,.5);
}
effet Firefox
:
chrome/safari
Solution de contournement
Pour que border-radius et inline box-shadow fonctionnent correctement, nous devons convertir l'image en image d'arrière-plan . Méthode dynamique
Afin de terminer ce travail de manière dynamique, nous devons utiliser jquery pour ajouter un wrapper d'image d'arrière-plan à chaque image. Le code js suivant ajoute un package span à chaque image. Le chemin de l'image d'arrière-plan de span est le chemin de l'image. Le code est relativement simple, je pense qu'il n'est pas nécessaire de l'expliquer. Si vous n'êtes pas sûr, vous pouvez vérifier directement l'API jquery.
Sortie
Le code ci-dessus affichera les résultats suivants :
Copiez le code
Cercle image
Ajoutez que nous utilisons border-radius pour obtenir l'effet d'images circulaires, l'effet est le suivant :
css :
Copier le code
}
Style de carte
Ce qui suit est une image de style carte, utilisant plusieurs ombres de boîte en ligne.
css :
Copier le code