Est-il possible de n'avoir en quelque sorte qu'une ombre de boîte en médaillon d'un côté d'un div? Notez que je parle ici d'une boîte-ombre en médaillon , pas de la boîte-ombre extérieure normale.
Par exemple, dans le JSFiddle suivant, vous verrez que l'ombre incrustée apparaît sur les 4 côtés, à des degrés divers.
Comment puis-je l'afficher UNIQUEMENT en haut? Ou au plus UNIQUEMENT en haut et en bas?
JSFiddle: http://jsfiddle.net/ahmadka/KFrun/
.box {
-webkit-box-shadow: inset 0px 5px 10px 1px #000000;
box-shadow: inset 0px 5px 10px 1px #000000;
}
.text {
padding: 20px;
}
<div class="box">
<div class="text">
Lorem ipsum ....
</div>
</div>
Réponses:
C'est ce que vous recherchez. Il a des exemples pour chaque côté que vous voulez avec une ombre.
Voir l'extrait pour plus d'exemples:
Afficher l'extrait de code
la source
L'astuce est un deuxième
.box-inner
intérieur, qui est plus large que l'original.box
, et lebox-shadow
est appliqué à cela.Ensuite, ajoutez plus de rembourrage pour
.text
compenser la largeur ajoutée.Voici à quoi ressemble la logique:
Et voici comment cela se fait en CSS:
Utilisez la largeur maximale pour
.inner-box
ne pas.box
élargir etoverflow
pour vous assurer que le reste est coupé:110% est plus large que le parent qui est 100% dans le contexte d'un enfant (devrait être le même lorsque le parent
.box
a une largeur fixe, par exemple). Les marges négatives compensent la largeur et provoquent le centrage de l'élément (au lieu de masquer uniquement la partie droite):Et ajoutez un peu de remplissage sur l'axe X pour compenser le plus large
.inner-box
:Voici un violon qui fonctionne.
Si vous inspectez le violon, vous verrez:
la source
div
pour cacher l'ombre ... jsfiddle.net/KFrun/19Un peu tard, mais une réponse en double qui ne nécessite pas de modifier le remplissage ou d'ajouter des div supplémentaires peut être trouvée ici: Vous avez un problème avec le fond de l'encart box-shadow uniquement . Il dit: "Utilisez une valeur négative pour la quatrième longueur qui définit la distance de propagation. Ceci est souvent négligé, mais pris en charge par tous les principaux navigateurs"
Du violon du répondeur :
la source
Cela vient un peu près.
la source
essayez-le, peut-être utile ...
ci-dessus
CSS
car vous avez une ombre de boîte en bas.vous pouvez en rouge plus ici
la source
Ce n'est peut-être pas exactement ce que vous recherchez, mais vous pouvez créer un effet très similaire en utilisant
rgba
en combinaison aveclinear-gradient
:Cela crée un dégradé linéaire du noir avec une opacité de 50% (
rgba(0,0,0,.5)
) à transparent (rgba(0,0,0,0)
) qui commence à être parfaitement transparent à 30% du haut. Vous pouvez jouer avec ces valeurs pour créer l'effet souhaité. Vous pouvez l'avoir d'un côté différent en ajoutant une valeur deg (linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 30%)
) ou en changeant les couleurs. Si vous voulez des ombres vraiment complexes comme des angles différents sur différents côtés, vous pouvez même commencer à superposerlinear-gradient
.Voici un extrait de code pour le voir en action:
la source
Inset Box Shadow uniquement sur la face supérieure?
la source