531 Stimmen

CSS Box Shadow Nur unten

Wie kann ich das machen? Ich möchte, dass mein Element so aussieht, als hätte es eine schattierte Unterstreichung. Ich möchte den Schatten nicht für die anderen 3 Seiten.

1 Stimmen

Versuchen Sie auch diese Methode, wenn Sie einen monochromatischen Hintergrund haben

1139voto

Steve B Punkte 10608

Machen Sie das:

box-shadow: 0 4px 2px -2px grau;

Eigentlich ist es viel einfacher, wenn Sie den Blur-Wert (3. Wert) festlegen, setzen Sie den Spread (4. Wert) auf das negative davon.

9 Stimmen

Dies ist mit Abstand die beste Methode. Reines CSS3, ohne Hacks.

254 Stimmen

Nur für den Fall, dass jemand verstehen möchte, warum dies funktioniert: * Der erste Wert setzt den x-Offset der Lichtquelle auf 0. * Der zweite Wert setzt den y-Offset der Lichtquelle auf +4. * Der dritte Wert legt einen Unschärfeeffekt von 2px fest. (Macht den Schatten ungleichmäßig). * Der vierte Wert legt eine Ausbreitung von -2px fest. (Verkleinern Sie den Schatten um 2px.) Dadurch wird der Schatten 4px weniger breit sein als das Element, auf das Sie den Schatten werfen, setzen Sie also den letzten Wert auf 0, wenn Sie nur eine einfache Unterstreichung möchten.

5 Stimmen

Es hat bei mir unter Firefox 18.X nicht funktioniert. Was für mich funktioniert hat, war: box-shadow: inset 0 -4px 3px schwarz; Aber es erzeugt auch einen kleinen Schatten an den Seiten.. :_(

60voto

Yi Jiang Punkte 47864

Sie können zwei Elemente verwenden, eins innerhalb des anderen, und dem äußeren Element overflow: hidden und eine Breite geben, die der des inneren Elements entspricht, zusammen mit einem unteren Padding, so dass der Schatten an allen anderen Seiten "abgeschnitten" wird

#outer {
    width: 100px;
    overflow: hidden;
    padding-bottom: 10px;
}

#outer > div {
    width: 100px;
    height: 100px;
    background: orange;

    -moz-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    -webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
}

Alternativ können Sie das äußere Element floaten lassen, um es auf die Größe des inneren Elements zu reduzieren. Siehe: http://jsfiddle.net/QJPd5/1/

1 Stimmen

Diese Lösung ist fantastisch, wenn Sie den Schatten für die gesamte Fenstergröße anzeigen müssen.

0 Stimmen

Dies ist eine Lösung, die besser zu den Anforderungen der Frage passt. Sie erstreckt sich wirklich über den gesamten unteren Teil des Elements. Aus meiner Erfahrung heraus zeigt die als richtig markierte Antwort jedoch einen Schatten, der etwas kürzer als der untere Teil ist.

29voto

Neri Barakat Punkte 1415

Versuchen Sie das

-moz-box-shadow:0 5px 5px rgba(182, 182, 182, 0.75);
-webkit-box-shadow: 0 5px 5px rgba(182, 182, 182, 0.75);
box-shadow: 0 5px 5px rgba(182, 182, 182, 0.75);

Sie können es unter http://jsfiddle.net/wJ7qp/ sehen

3 Stimmen

Es funktioniert gut für mich mit 20px 0 20px 20px

12voto

Saeed Tavoosi Punkte 137

Probieren Sie das aus, um den box-shadow vollständig unter Kontrolle zu haben.

            div {
                width:300px;
                height:100px;
                background-color:yellow;
                box-shadow: 0 10px black inset,0 -10px red inset, -10px 0 blue inset, 10px 0 green inset;
           }

dies gilt auch für den äußeren box-shadow.

1 Stimmen

Wie erhält man mit dieser Technik eine Unschärfe?

0 Stimmen

Unterer Kastenschatten mit Unschärfe: box-shadow: 0 -6px 7px -7px grey inset;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X