Viewport-Einheiten sind Dinge wie 10vw (10 % der Viewport-Breite) oder 2vh (2 % der Viewport-Höhe). Manchmal nützlich, da sie sich immer auf den Viewport beziehen. Kein Cascading oder Einfluss durch Elternelemente.
Es gibt auch vmin, das ist das kleinere von vw und vh, und vmax, das ist das größere. Diese Werte können für alles verwendet werden, das einen Längenwert benötigt, genau wie px oder em oder % oder was auch immer.
Werfen wir einen Blick auf ein winziges Designmuster, das vmin nutzt.
Ein Header-Block!
Wenn wir die padding eines <header> wie folgt setzen
header {
padding: 10vmin 1rem;
}
Wir erhalten eine feste Polsterung (1rem) an den Außenseiten, sodass zum Beispiel Text, der darin gesetzt ist, die Ränder nie berührt. Wir erhalten auch einen Header, der seine Größe auf eine Weise anpasst, die sich je nach Bildschirmfläche angemessen anfühlt.





Die Skalierung basierend auf dem *Minimum* der beiden Fensterdimensionen scheint richtig zu sein, anstatt sie nur nach Breite oder Höhe zu skalieren.
Hier ist ein Video
Ich hatte einmal einen Anwendungsfall für die Verwendung von vw zur Definition einer Höhe, um das Seitenverhältnis eines Hintergrundbildes beizubehalten. Es war sehr CSS-tricky und praktisch, die beste Art von CSS-tricky.
Hast du dafür einen CodePen oder ähnliches? Das klingt interessant!
Es ist im Grunde der Trick, der für responsive Einbettungen von YouTube und Ähnlichem verwendet wird.
Anstelle eines Prozentwerts funktioniert auch vw (da es sich um einen Prozentwert des Viewports und nicht des Elternelements handelt).
Es gibt einen Pen zum Spielen: http://codepen.io/ovlb/pen/mWMmey
Das ist großartig! Danke!
Schön! Das sieht nach einer großartigen Alternative zur Verwendung von Media Queries aus. Das gleiche grundlegende Ergebnis mit weniger CSS.
Das ist ziemlich cool.
Es gibt einen kleinen Nachteil, wenn auf einigen mobilen Browsern, auf Chrome für Android und Mobile Safari (glaube ich), beim Scrollen die Adressleiste verschwindet, sich die Viewport-Größe ändert, was zu einer weiteren Seitenlayout-Änderung führt und alles nach unten schiebt, da der Viewport nun etwas größer ist. Es ist nicht das Schlimmste, aber es ist ein kleiner Ruckler.
Das sollte kürzlich behoben worden sein, siehe: https://bugs.chromium.org/p/chromium/issues/detail?id=428132
Mann, wie habe ich
vminübersehen? Ich brauchte es und habe am Ende eine Media-Query geschrieben, die entwedervwodervhje nachorientation: portraitoderorientation: landscapeverwendet hat. Dumm von mir. Schön! :)Danke mann, das ist großartig. Ich suche schon seit Monaten danach
Ich spiele gerne mit vmin herum.
Es gibt einige schöne Tricks, wenn man damit arbeitet.
Hier sind zwei Beispiele, die ich gemacht habe.
Erstellung eines quadratischen Elements mit vmin
http://codepen.io/julianlengfelder/pen/jVJdwW
Responsive Schlagzeilen mit vmin:
http://codepen.io/julianlengfelder/pen/ObKGRy
Sehr schöne Technik! Ich liebe vmin und die gesamte Viewport-Familie.