appliquer l'ombre portée au bord-haut seulement?
Comment appliquer une ombre portée à un bord de bordure spécifique?
Par exemple, j'ai le code suivant:
header nav {
border-top: 1px solid #202020;
margin-top: 25px;
width: 158px;
padding-top:25px;
}
Je veux une ombre portée (1px 1px 1px #cdcdcd) appliquée uniquement à border-top.
Quelle est la meilleure façon d'y parvenir?
Modifier
C'est essentiellement ce que je cherche
div {
border-top: 1px solid #202020;
margin-top: 25px;
margin-left:25px;
width: 158px;
padding-top:25px;
-webkit-box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75);
-moz-box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75);
box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75);
}
Cependant, l'ombre semble être impactée par le rembourrage. Y a-t-il de toute façon pour attacher l'ombre à la bordure seule sans ajuster le rembourrage?
6 réponses
Quelque chose comme ça?
div {
border: 1px solid #202020;
margin-top: 25px;
margin-left: 25px;
width: 158px;
height: 158px;
padding-top: 25px;
-webkit-box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75);
-moz-box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75);
box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75);
}
<div></div> Si vous voulez appliquer l'ombre à l'intérieur de l'élément (inset) mais que vous voulez seulement qu'elle apparaisse d'un seul côté, vous pouvez définir une valeur négative au paramètre "spread" (5ème paramètre dans le deuxième exemple).
Pour le supprimer complètement, faites-le de la même taille que le flou des ombres (4ème paramètre dans le deuxième exemple) mais en tant que valeur négative.
Rappelez-vous également d'ajouter le décalage à la position y (3ème paramètre dans le deuxième exemple) afin que le suivant:
box-shadow: inset 0px 4px 3px rgba(50, 50, 50, 0.75);
Devient:
box-shadow: inset 0px 7px 3px -3px rgba(50, 50, 50, 0.75);
Vérifiez ce violon mis à jour: http://jsfiddle.net/FrEnY/1282/{[13] } et plus sur les paramètres box-shadow ici: http://www.w3schools.com/cssref/css3_pr_box-shadow.asp
La réponse simple est que vous ne pouvez pas. box-shadow s'applique uniquement à l'élément entier. Vous pouvez utiliser une approche différente et utiliser :: before en CSS pour insérer un élément haut de 1 pixel dans header nav et définir l'ombre de la boîte à la place.
Je trouve que l'utilisation de ces outils interactifs aide à visualiser ce qui se passe et ce qui est possible
Http://css3gen.com/box-shadow/
Http://www.cssmatic.com/box-shadow
Edit: consultez les autres outils pour expérimenter avec les autres générateurs et combinaisons. Je dois me rappeler parfois que juste parce que vous pouvez, ne signifie pas que vous devriez - il est facile de se laisser emporter!
Plusieurs ombres de boîte l'ont fait pour moi.
box-shadow:
inset 0 -8px 4px 4px rgb(255,255,255),
inset 0 2px 4px 0px rgba(50, 50, 50, 0.75);
.item .content{
width: 94.1%;
background: #2d2d2d;
padding: 3%;
border-top: solid 1px #000;
position: relative;
}
.item .content:before{
content: "";
display: block;
position: absolute;
top: 0px;
left: 0;
width: 100%;
height: 1px;
-webkit-box-shadow: 0px 1px 13px rgba(255,255,255,1);
-moz-box-shadow: 0px 1px 13px rgba(255,255,255,1);
box-shadow: 0px 1px 13px rgba(255,255,255,1);
z-index: 100;
}
Je suis comme utiliser quelque chose comme ça pour cela.