Peut CSS3 box-shadow:inset faire seulement un ou deux côtés? comme border-top?
Je m'interroge sur la prise en charge de côte interne spécifique d'ombres css3.
Je sais que cela fonctionne très bien sur les navigateurs pris en charge.
div { box-shadow:inset 0px 1px 5px black; }
Je suis juste curieux de savoir si il existe un moyen de parvenir à quelque chose comme:
div { box-shadow-top:inset 0px 1px 5px black; }
- Double Possible de Comment obtenir box-shadow sur la gauche & à droite uniquement, qui a des réponses plus détaillées et des explications.
Vous devez vous connecter pour publier un commentaire.
C'est ce qui a fonctionné pour moi:
Exemple: http://jsfiddle.net/23Egu/
box-shadow: inset 1px -4px 9px -6px;
pour un fond d'ombre.box-shadow: inset 4px 1px 9px -6px;
côté Droit de l'ombre:box-shadow: inset -4px 1px 9px -6px;
Je ne pense pas que votre vraiment besoin
box-shadow-top
parce que si vous définissezoffsetx
à 0 etoffsety
pour toute valeur positive ne reste que l'ombre est sur le dessus.si vous voulez avoir de l'ombre sur le haut et de l'ombre dans le fond, vous ne pouvez tout simplement utiliser deux divs:
si vous voulez vous débarrasser de l'ombre sur les côtés utilisation
rgba
au lieu dehex
de la couleur et de définir plusoffsety
:de cette façon, vous donner de l'ombre plus opacité de sorte que les côtés de rester caché et avec plus de décalage de vous recevoir moins d'opacité
exemple complet:
box-shadow-top
pourrait donner. modifier Mais c'est la façon dont j'ai l'habitude de le faire aussi =)rgba
au lieu dehex
de la couleur et de définir plusoffsety
: box-shadow: 0 5px 5px rgba(0,0,0,.5) de cette façon, vous donner de l'ombre plus opacité de sorte que les côtés de rester caché et avec plus de décalage de vous recevoir moins d'opacitébox-shadow:inset 0 1px 5px black, inset 0 -1px 5px black;
à l'aide de
:before
etafter
éléments réguliers ombres coupe de paroverflow:hidden
sur le parent de la boîte, comme dans cet exemple: http://dabblet.com/gist/2585782CSS
HTML
Vous pouvez utiliser un dégradé d'arrière-plan pour un travail autour de dans la plupart des cas:
SCSS(avec boussole) exemple:
Cela fonctionne très jolie 🙂
Ici est un codepen en l'illustrant:
http://codepen.io/poopsplat/pen/cGBLy
Pour la même ombre, mais uniquement sur le haut :
D'avoir de l'ombre dans une direction que vous avez à nier le "flou" de paramètre avec la "propagation" des paramètres, puis réglez le "h-pos" et/ou "v-pos" paramètres par cette même valeur.
Il ne fonctionne pas avec en face de la frontière ou de la triple frontière. Vous devez ajouter une définition.
Plus d'exemples ici : http://codepen.io/GBMan/pen/rVXgqP
Non, pas directement, mais vous pouvez rogner les pièces que vous ne voulez pas en mettre dans un div avec
overflow: hidden
:http://jsfiddle.net/Vehdg/
J'ai juste eu ce problème moi-même. La solution que j'ai trouvé était avec plusieurs box-ombre (une pour chaque côté que vous voulez que votre ombre). Voici la définition:
Ici est de savoir comment penser:
Ici vous pouvez voir mon cas avec box-shadow sur trois côtés (gauche, haut, droite et bas est avec la même couleur que l'arrière-plan pour créer l'effet que je voulais - sur le côté gauche et le droit d'aller tout le chemin vers le bas)
https://codepen.io/cponofrei/pen/eMMyQX
Vous pouvez obtenir un seul côté, ombre interne par le réglage de votre div
overflow:hidden
et en ajoutant de l'ombre les éléments le long de la frontière.Définir une ombre interne sur le haut et le bas des frontières d'une division:
HTML
CSS
inset
et faire preuve de créativité en utilisant les valeurs de la box-shadow css. N'oubliez pas que vous pouvez empiler boîte-ombres sur le même élément. Donc, on pourrait utiliser quelque chose comme @Jakobud dit dans un commentaire ci-dessus:box-shadow:inset 0 1px 5px black, inset 0 -1px 5px black;
une Autre manière, qui n'est que légèrement moins offensif que d'ajouter inutile de balisage, est d'utiliser:before
et:after
sélecteurs. Mais pourquoi le faire si vous pouvez le faire directement par la sélection et le style de l'élément d'origine.box-shadow
est pour tous les quatre côtés. Vous ne pouvez pas changer cela (encore?). Le 4 tailles dans lebox-shadow
définition sontOffsetX
,offsetY
,Blur
etSpread
.Inset/Outset
,OffsetX
,OffsetY
,BlurRadius
,SpreadRadius
etColor
. Comme d'autres l'ont souligné, vous pouvez spécifier un côté comme cettebox-shadow: inset 0 8px 6px -6px black;
Plusieurs zone d'ombres a fait le tour pour moi.
http://jsfiddle.net/kk66f/