Es gibt Werte in CSS, die dazu dienen, Dinge in Bezug auf den Viewport (die Größe des Browserfensters) zu skalieren. Sie werden als Viewport-Einheiten bezeichnet, und es gibt eine Reihe von ihnen, die leicht unterschiedliche (aber alle nützliche) Funktionen haben. Eine Einheit entspricht 1 % einer der Achsen des Viewports. Diese können für responsives Design nützlich sein, d. h. für das Gestalten von Websites, die auf verschiedenen Bildschirmgrößen gut aussehen und den ihnen zur Verfügung stehenden Platz nutzen.
Mit Viewport-Einheiten kann man vieles machen, aber lassen Sie uns eine im Besonderen betrachten: Typografie.
Es lohnt sich, unseren neueren Beitrag Simplified Fluid Typography für praktische, geklemmte, viewportbasierte Typengrößen zu lesen.
Warum ist das großartig?
Es gibt viele Gründe. Hier sind zwei.
- Es gibt eine angenehme Zeilenlänge für das Lesen von Text auf Bildschirmen. Ich möchte keinen Sturm im Wasserglas entfachen, aber sagen wir, sie liegt bei etwa 80 Zeichen. Diese Einheiten ermöglichen es Ihnen, sie perfekt einzustellen und diese Erfahrung auf jede Bildschirmgröße skalieren zu lassen.
- Sie ermöglichen es Ihnen, die Größenbeziehung beispielsweise eines typografischen Headers und des zugehörigen Inhalts eng zu koppeln. Wie bei Ihrem klassischen Trent Walton-Stil-Blogbeitrag.
Wie sie funktionieren
Eine Einheit bei jedem der drei Werte entspricht 1 % der Viewport-Achse. „Viewport“ == Browserfenstergröße == window-Objekt. Wenn der Viewport 40 cm breit ist, dann ist 1vw == 0,4 cm.
Für die Verwendung mit font-size ist es wohl ein „Buchstabe“, der diese Größe annimmt, aber wie wir wissen, ist die Breite eines Buchstabens bei nicht-monospazierten Schriften eher willkürlich. Ich finde, man muss einfach mit den Werten herumspielen, um es so zu bekommen, wie man es möchte. Was im Grunde das ist, was wir sowieso tun, richtig?
1vw= 1 % der Viewport-Breite1vh= 1 % der Viewport-Höhe1vmin=1vwoder1vh, je nachdem, welcher Wert kleiner ist1vmax=1vwoder1vh, je nachdem, welcher Wert größer ist
Verwendung
Kinderleicht.
h1 {
font-size: 5.9vw;
}
h2 {
font-size: 3.0vh;
}
p {
font-size: 2vmin;
}
Demo
Hier ist ein Video von einem einfachen Layout, das vw-Einheiten für font-size verwendet.
Schauen Sie sich die Demo selbst an (siehe Browser-Unterstützung).
Oder hier ist ein GIF für eine super einfache Kopfzeile.

Fehler!
Die Unterstützung ist in Chrome 20+ / Safari 6+ vorhanden, aber sie versagt in einer eher signifikanten Weise. Wenn die Browserfenstergröße geändert wird, passt sich die Schriftart nicht an die neue Viewport-Größe an. Die Spezifikation besagt:
Wenn die Höhe oder Breite des Viewports geändert wird, werden sie entsprechend skaliert.
Ich habe es gemeldet. Vielleicht keine große Katastrophe, da es ziemlich genau nur uns Design-Nerds gibt, die Browserfenster vergrößern und verkleinern, aber trotzdem. Die Schriftart passt sich beim Neuladen einer Seite an.
Um dieses Problem zu beheben (Größenänderung ohne Seitenaktualisierung ermöglichen), müssen Sie ein „Repaint“ des Elements auslösen. Ich habe jQuery verwendet und einfach den (in diesem Fall irrelevanten) z-index-Wert jedes Elements bearbeitet, was den Repaint auslöst.
causeRepaintsOn = $("h1, h2, h3, p");
$(window).resize(function() {
causeRepaintsOn.css("z-index", 1);
});
UPDATE: Machen Sie sich darüber keine Sorgen mehr und erzwingen Sie definitiv keine Repaints. Dieses Problem mit der Größenänderung ist in Chrome 34+ und Safari 7+ behoben. Es ist nicht üblich, die Viewport-Größe auf mobilen Geräten zu ändern, daher bin ich mir nicht sicher, ob dieser Fehler sie jemals beeinträchtigt hat.
Browser-Unterstützung
IE 10+, Firefox 19+, Chrome 34+, Safari 7+, Android 4.4+, iOS 6+ – Unterstützt
Chrome 20-34, Safari 6 – Unterstützt, aber mit Repaint-Problem
Es gibt noch ein paar andere spezifische browserübergreifende Merkwürdigkeiten, dokumentiert auf Can I Use.
Nicht nur font-size
Zur Klarstellung, dies sind nur Einheiten. Genau wie em, px, was auch immer. Sie können sie für alles verwenden, nicht nur für font-size.
Ich denke, font-size ist der überzeugendste Anwendungsfall, da Dinge wie margin, padding und width bereits auf die Größe des Browserfensters reagieren können, indem sie %-Einheiten verwenden. Es gibt jedoch den Fall, dass ein tiefer verschachteltes Element auf die Größe des Browserfensters reagieren muss und nicht auf die Größe seines direkten Elternelements.
Sofort verwenden
Native Nutzung
Sie möchten zumindest einen Fallback bereitstellen.
h1 {
font-size: 36px; /* Some tweener fallback that doesn't look awful */
font-size: 5.4vw;
}
Testen der Unterstützung
Modernizr hat noch keinen Test dafür veröffentlicht, aber Sie können ihn selbst testen, indem Sie ein Wegwerfelement verwenden, das Sie in CSS auf eine schmale Breite setzen, dann aber in JavaScript auf 100vw zurücksetzen, und dann messen, ob die Breite gleich window.width ist. So etwas wie:
var testEl = $("#vw-test");
testEl.css({
width: "100vw"
});
if (testEl.width() == window.innerWidth) {
// Supported
} else {
// Not Supported
};
Hier ist dieser Test auf CodePen, aber beachten Sie, dass er nur in der Vollbildansicht funktioniert, da die Berechnung sonst aufgrund von iFrame-Problemen fehlerhaft sein kann.
Funktionalität mit FitText.js nachahmen
Diese Idee, die Gesamtbreite eines Headers mit der Breite seines Elternelements zu verknüpfen, ist genau das, was FitText.js tut. Nur tut es das durch ausgefeiltes JavaScript und Mathematik und spans und so weiter. Theoretisch könnten Sie den Test ausführen und Modernizr.load verwenden, um FitText.js zu laden, wenn keine Unterstützung erkannt wird.
Weitere Informationen
- David Storey: Responsive viewport units
Sehr schön! Das ist ein Schritt nach vorne für Web-Typografie-Layouts.
Das habe ich vor ein paar Tagen gemacht.
onresize=onload=function(){document.body.style.fontSize=window.innerWidth+”px”}
Das funktioniert, aber wie stoppt man es bei einer Mindestgröße, da es auf kleineren Bildschirmen zu klein wird?
Ich habe auch eine Demo gemacht.
http://maloweb.com/snippets/responsivestuff.html
Das ist eine ziemlich interessante Idee, aber könnte man nicht fast dasselbe mit Media Queries erreichen?
Ja, aber es würde abgehackt aussehen. Mit Übergängen ist es nicht so schlimm, aber man braucht dann viele Media Queries und das bedeutet viel mehr CSS-Ballast, mit dem man umgehen muss.
Ich freue mich darauf, dies verwenden zu können.
Das scheint auf Safari 5.2 (Beta 3) [Version 5.2 (7536.6.1)] zu funktionieren.
Wenn man eine Zeilenlänge von 80 Zeichen unabhängig von der Bildschirmgröße beibehält, wird die Lesbarkeit auf kleineren Bildschirmen nicht zum Problem?
Wenn ich diese Seite auf meinem Handy anschaue, habe ich etwa 40 Zeichen pro Zeile, und das ist klein genug, ich kann mir nicht vorstellen, den Inhalt lesen zu können, wenn er so skaliert würde, dass er 80 Zeichen pro Zeile passt.
Sicher, aber ich denke, der Nutzen liegt in diesen „Zwischen“-Media Queries oder wenn der Kunde ein Stickler ist.
Andernfalls haben Sie absolut Recht, das wird einfach wieder zum Geräte-Zoom.
Wahr, aber ich denke, er sprach eher von z. B. 1800 Pixel breiten Bildschirmen, bei denen man etwa 250 Zeichen pro Zeile hätte, was sehr schwer zu lesen wäre.
Das war ein so dummes Beispiel dafür, wie man das benutzt – unleserlich winzige Schriftarten auf einem kleinen Bildschirm oder gigantische auf einem großen Bildschirm – bitte verwenden Sie das nicht für etwas anderes als Überschriften!
Nebenbei bemerkt, wie wirkt sich das dann aus, wenn der Benutzer die Bildschirm-Schriftart absichtlich neu einstellt?
VW und VH funktionieren auch in IE9, obwohl es VM anstelle von VMIN verwendet.
Das ist viel zu cool!
Ich frage mich, wie man das mit einem Slider zum Ändern der Schriftgröße auf der Website zum Laufen bringt.
Was für ein Krückstock! Wenn man schon auf jQuery zurückgreift, um eine Stilwahl zu implementieren, sollte sie viel mehr Browser unterstützen.
Das ist gut, aber die Zeilenzeichenlänge ist nicht das einzige Problem bei der Lesbarkeit von Text. Auch die tatsächliche physische Zeilenlänge ist wichtig. Es kann schwieriger sein, Text zu lesen, wenn das Auge eine größere Distanz zurücklegen muss, um zum Anfang der nächsten Zeile zu gelangen. Ich würde gerne Websites sehen, die beim Ändern der Browserbreite zwischen ein- oder zweispaltigen Layouts wechseln können.
Patrick hat Recht. Das größere Problem für die Lesbarkeit ist, wie stark sich der Augapfel in seiner Höhle drehen muss, um den Text zu lesen. Auf großen Bildschirmen wird diese Technik das Lesen sehr schnell erschweren. Und auf kleinen Bildschirmen (wie jemand erwähnte) wird der Text viel zu klein zum Lesen sein.
Das soll nicht heißen, dass es keine Bereiche gibt, in denen dies nützlich sein wird, aber ich glaube nicht, dass es die Lesbarkeit wesentlich verbessern wird.
Hallo,
Du hast Recht, ich habe dieses Problem auch gesehen....
Das ist ein großartiger Beweis dafür, dass die responsiven Designtechniken, die wir mit CSS entwickelt haben, jetzt von der CSS-Entwicklergemeinschaft einverleibt und nativ verbessert werden!
Ironisch, wie der IE jetzt im CSS3-Rennen vorne liegt...
Ich kann es kaum erwarten zu sehen, welche Anwendungen die Leute dafür und für
calcfinden werden.Hat jemand einen Polyfill für die Unterstützung von Chrome (Viewport-Einheiten und calc) gefunden?
Ich möchte es jetzt benutzen lol.
Liebe neue CSS3-Specs.
und ich stimme Julian zu, IE10 macht große Fortschritte.
Aufregend!!
Die Demo sieht so aus, als würde sie in Chrome 19 Beta funktionieren. Kann das noch jemand bestätigen?
mit 20.0.1122.0 Canary skaliert es reibungslos.
em’s?
Warum nicht die Schriftgröße (und alles andere) in ems verwenden?
Spielen Sie einfach mit der Basisschriftgröße und Sie erhalten im Grunde das gleiche Ergebnis. Vorerst kann JS die Arbeit in wenigen Zeilen erledigen, calc() könnte dies in naher Zukunft tun.
Der Vorteil von ems ist, dass es einfach ist, Min/Max-Grenzen festzulegen. Stellen Sie sich vor, Sie entwickeln etwas in vh oder vw auf einem 23-Zoll-Bildschirm, und dann was ist mit demselben auf einem 6-Zoll-Smartphone, bedeutet das, wir bekommen ein 4x kleineres Element. Also wird alles, was auf dem Desktop eine lesbare Größe von 24px hat, zu 6px „verstecktem Text“?
Oder fehlt mir etwas?
Ein Wort – Einfachheit. Ems sind großartig für solche Dinge, aber generell ist es viel einfacher, Pixel zu verwenden.
Für einige Entwickler lohnt sich jedoch der zusätzliche Aufwand.
Ich meinte eher ems vs vhs, anstatt px vs alle relativen Dinge.
Mein Punkt war eher, dass wir durch die Verwendung von ems und Basisschriftgröße eine nicht-lineare Skalierung erreichen könnten, wie z. B. auf großen Bildschirmen langsamer und auf kleinen schneller größer werden.
Übrigens, sind px nicht inzwischen auch eine Art responsive? Ich meine, wenn man 12px Schrift auf einem iPhone Retina Display einstellt, wird es definitiv nicht genau 12px sein, sondern entsprechend der DPI hochskaliert...
Sehr schön.
Sehr cool, ich sehe wirklich einen Bedarf an responsiven Textgrößen, die nicht von der Kaskade beeinflusst werden...
Interessante Demo, aber sie sollte mit Vorsicht verwendet werden. Ich sehe den Nutzen hauptsächlich für die Skalierung von Überschriften, für Fließtext sollte sie nicht verwendet werden.
1em = 16px, die Standard-Schriftgröße des Browsers ist eine perfekt lesbare Größe. Auch größere Größen können je nach verwendeter Schriftart gut funktionieren.
Ich stoße oft auf responsive Websites, die die Schriftgröße von Fließtexten auf 14px oder sogar weniger im mobilen Layout reduzieren.
Größere Zeilenbreite + verringerte Schriftgröße = sehr schlechte Lesbarkeit, insbesondere da es normalerweise keine Werkzeuge gibt, die Schriftgröße in einem mobilen Browser zu erhöhen.
Nur meine 5 Cent.
Das ist ein großartiges neues Werkzeug in der beeindruckenden CSS3-Spezifikation.
Es gibt viele Fälle, in denen die Verwendung dieser Funktion nicht angemessen ist, aber Sie müssen nicht jeden Job mit Ihrem 1 glänzenden neuen Schraubendreher erledigen. Machen Sie weiter mit px, %, (em, ex, ch, rem, cm, mm, in, pt, pc, px).
Ich würde gerne sehen, wie es auf dem iPhone funktioniert. Wird 1vh 1 % der Bildschirmhöhe oder der Viewport-Höhe sein?
Endlich :) Es war irgendwie zu erwarten, dass etwas wie das angesichts des Hypes um responsives Design „Mainstream“ werden würde :) Für mich ist es etwas überfällig, froh, dass es da ist.
Ich kann es kaum erwarten, bis das vollständig unterstützt wird.... in ein paar Jahren :_ (
Es ist fantastisch...
...jeden Tag wird das Web ein kleines bisschen besser!
> Für die Verwendung mit font-size ist es wohl ein „Buchstabe“, der diese Größe annimmt, aber wie wir wissen, ist die Breite eines Buchstabens bei nicht-monospazierten Schriften eher willkürlich.
Ich vermute, dass der em den Buchstaben darstellt, der diese Größe annimmt. Ich bin sicher, Sie könnten das mit einem Lineal und einer Lupe herausfinden!
Ich denke, wir können das (nicht ganz) so machen, indem wir em anstelle von px verwenden, ist das nicht so?
Ems sind tatsächlich relativ zu anderen Schriftgrößen, Jimba. Es gab keine CSS-Möglichkeit, eine Schriftgröße relativ zur Größe ihres Containers zu machen.
Tolle Technik, allerdings sehe ich hier ein Problem: Die Schriftgröße wird für kleine Geräte zu winzig. Denn wenn ich einen Text mit einer Größe von 13px habe, ist er für ein Breitbildgerät groß genug, aber auch für ein Mobilgerät passend.
Aber wenn der Text entsprechend der Bildschirmgröße skaliert wird, wird er auf einem schmalen Bildschirm schließlich 8px oder etwas Ähnliches sein. Sie müssen die Schriftgröße dort also immer noch anpassen. Ich kann mich hier irren, aber das ist das Erste, was mir in den Sinn kam, als ich Ihr Video sah.
Ich freue mich zu sehen, dass sich dies zu einem flüssigeren Design entwickelt. Die Popularität des festen Designs in den letzten Jahren war quälend! Designer erkennen endlich, dass Viewports nicht alle gleich groß sind, und das Gestalten, als ob die Seite auf Papier wäre, ist für viele Benutzer einschränkend und frustrierend.
Was ist mit
min-font-size?Mit JavaScript ist es möglich.
http://blog.evolya.fr/public/divers/demo-textsize/demo-textsize.html
(Im Quellcode)
Sie können viewport-relative Schriftgrößen verwenden, ohne das Design auf Geräten mit niedriger Auflösung zu beeinträchtigen.
Mit CSS-Media-Queries können Sie eine minimale Schriftgröße für Geräte mit niedriger Auflösung angeben.
body { font-size: 1vw; }
@media screen and (max-width: 1000px) {
body { font-size: 10px; }
}
Dadurch wird die Schrift auf 1 % der Viewport-Breite eingestellt.
z. B. bei 1280×1024 ist die Schriftgröße effektiv 12,8 px.
Aber wenn die Viewport-Breite 1000 px oder weniger beträgt, bleibt die Schriftgröße bei 10 px.
z. B. bei 800×600 ist die Schriftgröße 10 px und NICHT 8 px, wie man es von 1vw erwarten würde.
Wenn Sie einen Browser haben, der es unterstützt (ich benutze den Dev-Kanal von Google Chrome), können Sie es unten ausprobieren.
z. B. Verkleinern Sie das Fenster und schalten Sie zwischen Vollbild und Fenster-Modus um.
Ich benutze FitText in einem Blog und es funktioniert sehr gut (auch auf mobilen Geräten)! Aber das hier sieht vielversprechend aus! Danke für das Teilen...
Auf der FitText-Website steht:
„Oh, und wagen Sie es nicht, uns zu erwischen, wie Sie FitText für Fließtext verwenden. Dies ist nur für gigantische Anzeigetexte!“
Ich habe das geliebt kkkkkkk
Wann können wir es auf iOS oder Android verwenden?
Das habe ich vor ein paar Tagen gemacht.
onresize=onload=function(){document.body.style.fontSize=window.innerWidth+”px”}
Was ist damit?
Ich mag CSS3 und Kram, aber wann wird das in allen Browsern funktionieren...
Großartige Sache. Aber ich muss sagen, dass die Möglichkeiten, die mir für diese Einheit einfallen, weniger mit Typografie als vielmehr mit responsiver Animation und Grafik zu tun haben. Der größte Nachteil der Angabe einer Schriftgröße in etwas anderem als ems ist, dass sie fast sicherlich zu seltsamen Ergebnissen beim Benutzer-initiierten Zoomen führt. Dies ist nichts für Fließtext, Leute. Lasst uns nicht diesen Kaninchenbau hinabsteigen. Bleiben Sie bei ems und Media Queries.
Aber es ist großartig, die Breite eines schnieken animierten Elements in Bezug auf die Breite des Viewports angeben zu können und nicht nur in Bezug auf einen Prozentsatz seines Elternelements. Noch genialer ist, dass Sie mischen und anpassen können: Geben Sie sowohl die Höhe als auch die Breite eines Elements in Bezug auf nur die Viewporthöhe an, usw. Tonnen von responsiven Skalierungsmöglichkeiten hier.
Großartig! Danke. Habe es heute bei einem neuen Projekt implementiert. :)
Großartig. Es funktioniert in Chrome 19 :D
(das diese Woche veröffentlicht wurde)
Chris – wenn ich dies etwas genauer untersuche und mir die W3C-Spezifikation ansehe, fällt mir eine offensichtliche Lücke auf: Warum gibt es keine „vmax“-Einheit? Nur „vmin“?
Sobald die Leute sich wirklich mit diesen Dingen beschäftigen, werden Sie wissen, dass es Zeiten geben wird, in denen wir sie in unserem Werkzeugkasten haben wollen, wenn wir wirklich versuchen, sowohl für vertikale als auch für horizontale Bildschirme zu gestalten. Irgendeine Einsicht, warum das aus der Spezifikation weggelassen wurde? Hey – wenn Browser einen Vergleich nativ unterstützen können, warum können sie dann nicht den anderen unterstützen?
Eine schnelle Suche nach „vmax css“ ergibt keine Diskussion zu diesem Thema. Hmmm...
Ich benutze diesen Code und deklariere dann in EM.
Wirklich cool! Ich frage mich jedoch, warum Sie unterschiedliche Einheiten verwendet haben, z. B. vw und vh für h1- und h2-Elemente? Abhängig von der Ausrichtung Ihres Displays könnte die h2-Schriftgröße größer als die h1 werden, z. B. 1920×1080 vs. 1080×1920.
Mit Chrome Canary bemerkte ich nicht, dass sich die Schriftgröße nur auf die Änderung der Viewport-Breite und nicht auf die Viewport-Höhe reagierte, daher ist es möglicherweise kein Problem. Ich erwartete, dass die h2-Größe gleich bleiben würde, wenn sich die Viewport-Höhe nicht ändert, wenn sich der Viewport verengt. Danke.
Würden Sie die Dinge falsch machen, wenn Sie Header-Elemente (h1, h2 usw.) zur Größenbestimmung Ihrer Schrift verwenden? Semantisch würde das h1 verwendet werden, um die Bedeutung des Elements gegenüber einem h2 oder h3 anzuzeigen, nicht die erhöhte Schriftgröße.
Ja bitte.
Mit Modernizr 2.6.2 erhalten Sie die Tests
Modernizr.cssvhunitModernizr.cssvwunitModernizr.cssvmaxunitModernizr.cssvminunitHabe versucht, es zu verwenden – auf ein Problem gestoßen.
Auf dem Handy, wenn die Tastatur geöffnet ist, ändert sich die Bildschirmhöhe (Gerätehöhe?) und alles wird mit vh-Einheiten gequetscht. Keine Ahnung, wie man das behebt... noch nicht.
@Kseniya: Du kannst das mit dem folgenden Viewport-Tag beheben
Ich habe es auf StackOverflow gesehen: div-element-wont-stay-at-the-bottom-when-ios-7-virtual-keyboard-is-present
OK, es funktioniert mit vh vw... aber ich bekomme es nicht ohne manuelles Aktualisieren/Neuladen der Seite hin.
Wie kann ich das JQuery-Ding richtig zum Laufen bringen, damit ich keinen manuellen Refresh brauche und sich der Text gleichzeitig mit der Größenänderung des Fensters anpasst?
Hey Jeremy Lawson, vielen Dank für die Lösung, die du uns mit **Media Queries** gebracht hast, um eine Schriftgröße für kleine Geräte einzustellen.
Tatsächlich war das genau der erste Zweifel, der mir kam: Wenn "vw" heranzoomt, ist das okay für TV-Bildschirme, aber was ist mit kleinen Geräten? Haben wir dann sehr kleine Schrift?
Ich habe es auf Android getestet und keine Veränderung bemerkt. Jetzt weiß ich, dass es auf Android noch nicht funktioniert (noch...).
Es ist also großartig zu sehen, wie schnell sich Innovationen mit CSS3 und HTML5 entwickeln. Zuerst machten wir uns Gedanken über Smartphones und Tablets, jetzt sind die großen Fernseher und Smart-TVs an der Reihe!!
Wer eine reine JavaScript-Implementierung des Repaint-Skripts sucht, findet diese vielleicht nützlich
Die Verwendung von Viewport-Einheiten für Schriftgrößen hat ein Barrierefreiheitsproblem, da sie die Basisschriftgrößeneinstellung des Benutzers "überschreibt"! Und zumindest für Desktop-Browser bricht es auch die Zoom-Funktionalität des Browsers, was die Benutzerfreundlichkeit negativ beeinflusst!
Aber schon der erste Punkt sollte Grund genug sein, es niemals für Schriftgrößeneinstellungen zu verwenden.
Im Moment kann ich mir keinen vernünftigen Anwendungsfall vorstellen.
Besonders wenn es um Schriftgrößen geht, bräuchten wir eher Dinge wie 'min|max font-size' und 'font-size: fit'.
Und auch eine Option, Werte proportional zu definieren, z. B. um einen Abstand bei einem Link-Element festzulegen, der wächst, je kleiner die Schriftgröße ist.
Schön! Ich dachte, das sei nicht möglich, bis ich diesen Beitrag gesehen habe. Ich dachte an ein Bild anstelle von Text, um mein Schriftart-Logo zu ersetzen. :D Ich hoffe, dass Android-Geräte das auch bald unterstützen werden.
Du kannst den Chrome-Resize-Bug mit vm/vh mit reinem CSS beheben. Solange eine @keyframes-Animation aktiv ist, wird die UI neu gezeichnet...
@keyframes forceRepaint { 0% { z-index:1; } 100% { z-index:1; } }
p { animation:forceRepaint 60s infinite; }
Es ist wahrscheinlich erwähnenswert, dass das CSS für die Dauer-Neuzeichnung natürlich nicht für tatsächlichen Produktionscode geeignet ist und auch keine gute Praxis darstellt. Es ist einfach eine interessante Sache, die man mit CSS machen kann!
Android unterstützt es jetzt. Siehe: http://caniuse.com/viewport-units
Das ist großartig! Allerdings wünsche ich mir immer noch eine Möglichkeit, ähnlich wie bei Flexbox, aber auf Text angewendet, d.h. den Textinhalt eines Elements so zu skalieren, dass er vollständig in das übergeordnete Element passt.
Ich hatte noch keine Gelegenheit, das zu testen, aber ich denke, ich könnte den gleichen Effekt erzielen, indem ich jedes Zeichen in ein
spanpacke und danndisplay:flexauf das übergeordnete Element anwende. Wäre aber eher ein Hack..Wie kann ich vw und vh gleichzeitig verwenden, um sowohl die Höhe als auch die Breite von Schrift horizontal und vertikal gleichzeitig zu steuern, anstatt nur entweder die Breite oder die Höhe separat zu steuern?
Ich stelle fest, dass, wenn ich vw verwende, sich die Schriftgröße nicht ändert, wenn ich nur die Höhe des Viewports ändere (bis ich die Breite des Viewports ändere), und umgekehrt, wenn ich vh verwende und nur die Breite des Viewports ändere.
Bitte machen Sie so schnell wie möglich eine Notiz über den UNTERSCHIED mit einem TATSÄCHLICHEN IOS-Gerät (zumindest IOS7, das mein iPhone 5 hat).
IOS7 (vielleicht ab IOS5?) rendert alles doppelt so groß.
VW basieren auf den TATSÄCHLICHEN Pixeln des Bildschirms, d.h. 640, während IOS verlangt, dass wir alle Pixelgrößen so angeben, als hätte der Bildschirm 320.
Alles wird also doppelt so groß.
Sergio, gibt es also eine Möglichkeit, das Betriebssystem zu erkennen und dann eine Medienabfrage basierend darauf zu verwenden, um die Größe anzupassen?
Steve, Ja, das gibt es. Mit Media Queries kannst du die Auflösungen ansprechen, aber es berechnet die unterschiedlichen Kompensationen nicht für dich. Dann musst du die Größe für JEDE Auflösung anpassen, außer 1:1
Neue iPhones sind 2:1 (doppelte Auflösung von normalen Displays) und es gibt 1,25, 1,3...
Ich schätze, mein nächster Test wird mit einem .parent-Container sein, der die Größe auf VW setzt, und dann eine Regel, um ALLE seine direkten Kinder anzupassen: z.B.
Auf diese Weise muss ich nicht 5 Regeln für jede flexible Schriftgröße erstellen, die ich definiere (eine Hauptregel und 4 Kompensationen für jede Auflösung).
Hm... Habe das in einer Phonegap-App ausprobiert: Es funktioniert nicht.
Tatsächlich funktioniert es auf dem Desktop in Chrome, aber nicht, wenn die App in Phonegap gekapselt und auf dem Gerät (Android) getestet wird.
Es ist eine sehr vielversprechende Technologie, muss aber in verschiedenen Browsern und Webviews besser implementiert werden.
Wie wäre es mit
font-size: calc(1rem + 2vw);im Body, das ermöglicht einen sehr subtilen Skalierungseffekt. Es gibt wahrscheinlich eine bessere Mathematik, aber hat jemand calc im Zusammenhang mit vw erwähnt?Hallo,
Der Resize-Bug ist jetzt im WebKit Nightly behoben.
https://bugs.webkit.org/show_bug.cgi?id=87846
Hallo Cris,
Ich suche einen CSS-Hack, mit dem ich Schrift horizontal komprimieren kann, wenn ich sie im Internet prüfe, aber ich habe keine Idee dazu. Kannst du mir helfen? Das ist wie im Photoshop-Stil, um die Schriftgröße horizontal zu komprimieren, z. B. von 100 % auf 95 % oder 85 %.
Bitte hilf mir in dieser Hinsicht.