Gibt es eine Möglichkeit, den Schatten nur auf den Boden fallen zu lassen? Ich habe ein Menü mit 2 Bildern nebeneinander. Ich möchte keinen richtigen Schatten, weil er das richtige Bild überlappt. Ich verwende dafür keine Bilder, daher gibt es eine Möglichkeit, sie nur unten abzulegen:
box-shadow-bottom: 10px #FFF;
o.ä?
-moz-box-shadow: 0px 3px 3px #000;
-webkit-box-shadow: 0px 3px 3px #000;
box-shadow-bottom: 5px #000;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000')";
/* For IE 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000');
box-shadow-bottom
die nicht vorhanden sind und von niemandem unterstützt werden. Informationen zu legitimen Box-Shadow-Techniken finden Sie unter nicolasgallagher.com/css-drop-shadows-without-images/demo .filter
funktionieren auch in IE8 und IE9. In-ms-filter
diesem Fall keine Notwendigkeit .Antworten:
UPDATE 4
Wie Update 3, jedoch mit modernem CSS (= weniger Regeln), sodass keine spezielle Positionierung auf dem Pseudoelement erforderlich ist.
UPDATE 3
Alle meine vorherigen Antworten haben zusätzliches Markup verwendet, um diesen Effekt zu erzielen, der nicht unbedingt benötigt wird. Ich denke, dies ist eine viel sauberere Lösung ... der einzige Trick besteht darin, mit den Werten herumzuspielen, um die richtige Positionierung des Schattens sowie die richtige Stärke / Opazität des Schattens zu erhalten. Hier ist eine neue Geige, die Pseudoelemente verwendet :
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
CSS
UPDATE 2
Anscheinend können Sie dies mit nur einem zusätzlichen Parameter für das Box-Shadow-CSS tun, wie alle anderen gerade betont haben. Hier ist die Demo:
http://jsfiddle.net/K88H9/821/
CSS
Dies wäre eine bessere Lösung. Der zusätzliche Parameter, der hinzugefügt wird, wird wie folgt beschrieben:
AKTUALISIEREN
Schauen Sie sich die Demo unter jsFiddle an: http://jsfiddle.net/K88H9/4/
Ich habe ein "Schattenelement" erstellt, das sich hinter dem eigentlichen Element verbirgt, für das Sie einen Schatten haben möchten. Ich habe die Breite des "Schattenelements" um das Zweifache des von Ihnen angegebenen Schattens genau so breit gemacht wie das eigentliche Element. dann habe ich es richtig ausgerichtet.
HTML
CSS
Ursprüngliche Antwort
Ja, Sie können dies mit derselben Syntax tun, die Sie angegeben haben. Der erste Wert steuert die horizontale Positionierung und der zweite Wert steuert die vertikale Positionierung. Stellen Sie also einfach den ersten Wert
0px
und den zweiten auf den gewünschten Versatz wie folgt ein:Weitere Informationen zu Boxschatten finden Sie in den folgenden Abschnitten:
Ich hoffe das hilft.
quelle
box-shadow: 0 2px 4px #000000
ist ein Unschärfewert. Siehe hier http://jsfiddle.net/K88H9/7/ . Sie werden jedoch feststellen, dass links und rechts vom Element ein wenig Unschärfe auftritt, wo dies in Hristos Lösung nicht der Fall ist.box-shadow-bottom
, obwohl kreativ, existiert nicht wirklich.Verwenden Sie einfach den Spread-Parameter, um den Schatten kleiner zu machen:
Live-Demo: http://dabblet.com/gist/a8f8ba527f5cff607327
Um keinen Schatten an den Seiten zu sehen, muss der (absolute Wert des) Ausbreitungsradius (4. Parameter) mit dem Unschärferadius (3. Parameter) übereinstimmen.
quelle
box-shadow:0 8px 4px -6px
und Sie sehen nur den unteren Schatten!Wenn Sie eine feste Farbe auf dem Hintergrund haben, können Sie den Seitenschatteneffekt mit zwei Maskierungsschatten ausblenden , die dieselbe Hintergrundfarbe und Unschärfe = 0 haben. Beispiel:
Beachten Sie, dass der schwarze Schatten der letzte sein muss und eine negative Streuung (-3px) aufweist, um zu verhindern, dass er sich über die Ecken hinaus erstreckt.
Hier die Geige (ändern Sie die Farbe der Maskierungsschatten, um zu sehen, wie es wirklich funktioniert).
quelle
transparent
Farbe für die Maskierungsschatten zu verwenden, nein?Ich denke, das ist es, wonach du suchst?
quelle
Es ist immer besser, die technischen Daten zu lesen . Es gibt keine
box-shadow-bottom
Eigenschaft, und wie Lea betont, sollten Sie die Eigenschaft ohne Präfix immer unten nach den Präfixen platzieren.So ist es:
quelle
Wie wäre es einfach mit einem enthaltenden Div, dessen Überlauf auf "Ausgeblendet" und etwas Polsterung unten eingestellt ist? Dies scheint die einfachste Lösung zu sein.
Es tut mir leid zu sagen, dass ich selbst nicht daran gedacht habe, sondern es woanders gesehen habe .
Wie von Jorgen Evens gesagt .
quelle
padding-bottom
(sagen wir 5px) können Sie auch ein Negativmargin-bottom
(von -5px) festlegen, um den hinzugefügten Speicherplatz zu kompensieren.Sie können auch
clip-path
alle überlaufenden Kanten ausschneiden (ausblenden), außer die, die Sie anzeigen möchten:Siehe Clip-Pfad (MDN) . Die Argumente dafür
polygon
sind der Punkt oben links , der Punkt oben rechts , der Punkt unten rechts und der Punkt unten links . Indem Sie die Unterkante auf200%
(oder eine beliebige Zahl größer als100%
) einstellen , beschränken Sie Ihren Überlauf nur auf die Unterkante.quelle
Ich brauchte auch einen Schatten, aber nur unter einem Bild und setzte leicht links und rechts ein. Das hat bei mir funktioniert:
Das Element, auf das dies angewendet wird, ist ein seitenweites Bild (980 x 300 Pixel).
Wenn es beim Herumspielen an den Einstellungen hilft, werden sie wie folgt ausgeführt:
horizontaler Schatten, vertikaler Schatten, Unschärfeabstand, Streuung (dh Schattengröße) und Farbe.
quelle
Es ist besser, Schatten nachzuschlagen:
Dieser Code wird derzeit im Stackoverflow-Web verwendet.
quelle
Dieser Codestift (nicht von mir) zeigt eine supereinfache Möglichkeit, dies und die anderen Seiten für sich zu tun:
https://codepen.io/zeckdude/pen/oxywmm
quelle
Wenn Ihr Hintergrund fest ist (oder Sie ihn mit CSS reproduzieren können), können Sie den linearen Farbverlauf folgendermaßen verwenden:
Dadurch wird am unteren Rand des Elements ein Farbverlauf von 5 Pixel erzeugt, von Schwarz bei 30% Deckkraft bis vollständig transparent. Der Rest des Elements hat einen weißen Hintergrund. Wenn Sie die letzten beiden Farbstopps des linearen Verlaufs ändern, können Sie den Hintergrund natürlich vollständig transparent machen.
quelle
Sie können auch einfach einen Farbverlauf auf der Unterseite erstellen - dies war hilfreich für mich, da sich der gewünschte Schatten auf einem Element befand, das bereits halbtransparent war, sodass ich mir keine Gedanken über Ausschnitte machen musste:
Passen Sie einfach die Eigenschaften "unten" und "Höhe" an und stellen Sie Ihre rgba-Werte so ein, wie Sie möchten, dass sie sich oben / unten im Schatten befinden
quelle
Sie können das so machen:
Allgemeine Syntax:
Beispiel: Wir wollen nur einen unteren Kastenschatten mit roter Farbe machen.
Um dies zu tun, müssen wir alle Seitenoptionen festlegen, wobei wir die Schattenoptionen des unteren Felds festlegen müssen, und alle anderen so leer wie folgt festlegen:
quelle
Aktualisieren Sie auf jemand anderem seine Antwort transparente Seiten anstelle von Weiß, damit es auch auf anderen Farbhintergründen funktioniert.
quelle
inneren Schatten
quelle