CSS3 Box-shadow Größe – Prozent-Einheiten?
Ich bin an einem Projekt arbeiten, muss die Nutzung der CSS3-box-shadow-Eigenschaft.
Das ist in Ordnung, aber ich habe herausgefunden, dass die Ausbreitung Größe der Schatten kann nicht festgelegt werden, Prozentsatz der parent-Objekt.
Ich voll und ganz verstehen, dass box-shadow ist nicht Additiv, also es braucht nicht die Größe der Eltern als Referenz.
Aber angesichts der Tatsache, dass ich muss vollständig responsive Website mit Objekte skalieren flüssig (nicht nur auf break-Punkte), dies stellt ein problem dar – ich kann Schatten verbreitete Eigenschaft nur in absoluten Einheiten (em oder px).
Gibt es eine Lösung für dieses? Ich dachte über die Verwendung von inner container (für die Inhalte) innerhalb der container (für die "Schatten" – es ist ohne blur), aber dies erzeugt ein weiteres problem der vertikalen Zentrierung des inneren Behälters.
Irgendeine Lösung? Kein jQuery bitte, nur Reine CSS-Dateien.
Dank
InformationsquelleAutor der Frage Jozko Remen | 2012-12-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nach einem inset
box-shadow
könnte man eine radial-gradient hintergrund-imitieren das Verhalten. Also anstelle von -Würden Sie -
Unterstützung: FF16+, IE10+, Safari 5.1+
Ich finde keine endgültige Antwort auf, wenn Chrome gestartet, die Unterstützung der Eigenschaft, aber meine aktuelle version (39.0.2171.65) definitiv unterstützt.
ColorZilla ist ein ziemlich nützliches tool für die Erzeugung von radialen (unter anderem) Verläufe zusammen mit den erforderlichen Präfixe, wenn Sie sich entscheiden, diesen Weg gehen.
InformationsquelleAutor der Antwort shakyjake
Wahr. Sie können aber
font-size
auf das parent-Objekt, und definieren Sie dann die Größe des Objekts inem
s und der gleichenem
s zu definieren, diebox-shadow
Größe.Oder, wenn Ihre übergeordneten Objekt passiert, werden die Fenster, die Sie verwenden können,viewport-Einheiten:
vw
undvh
.InformationsquelleAutor der Antwort mik01aj
Haben Sie versucht, mit dem
rem
- Einheit (root em-Einheit)? Ich glaube, Sie kann dieses verwenden, um es skalieren flüssig.In der rem-Einheit ist immer relativ zum root-html-element, so wird es skaliert sich entsprechend, und Sie müssen nicht sorgen zu machen über die inneren Container oder etwas ähnliches. Es hat auch ziemlich Breite browser-Unterstützung an dieser Stelle.
Ich benutze es auf meine Projekte zu machen, diese besser, aber immer nach einem parameter bereits definiert durch px oder em so, dass es nicht würdevoll, nur im Falle. Zum Beispiel:
Hier ist ein toller Artikel erklärt alles, was Sie wissen müssen über dieses Gerät: http://snook.ca/archives/html_and_css/font-size-with-rem
InformationsquelleAutor der Antwort alex
Wollen Sie die box-shadow skaliert mit der Breite des Containers oder mit der Höhe des Containers? Man kann nicht wirklich geben Sie eine Höhe und Breite der Schatten, nur ein spread. Also, wenn Ihr container schrumpft um 10%, in der Breite aber nicht schrumpfen in der Höhe dann Ihr Schatten wird ein minus von 10% (wenn es möglich wäre), d.h. dein Schatten ist die Höhe skalieren, obwohl es wahrscheinlich nicht sollte.
Wenn Sie möchten, dass die box-shadow tatsächlich korrekt skaliert mit Bezug auf Höhe und Breite, Sie würde haben, um mehrere Schatten - eine für Höhe, eine für Breite.
Allerdings werden Sie nie in der Lage sein Maßstab die tatsächliche Schatten, nur der container der Schatten. So erstellen Sie einen container innerhalb deiner main-container und dann gebe es negative Margen und befestigen Sie die box-shadow. Allerdings wirst du bald feststellen, dass Ihr Schatten eigentlich wächst anstatt zu schrumpfen, wenn Ihnen die Skalierung des Containers nach unten.
Scheint ein bisschen übertrieben zu versuchen und zu skalieren, etwas, das nicht skalierbar ist, ohne die Verwendung von media queries oder jQuery.
Allerdings, wenn Sie schauen für skalierbare Grenzen, d.h. box-shadow ohne blur :P, dann suchen Sie nicht weiter:
http://jsfiddle.net/925r2/3/
InformationsquelleAutor der Antwort Cornelius