Ich habe eine flüssige Website und das Menü ist 20% seiner Breite. Ich möchte, dass die Schriftgröße des Menüs richtig gemessen wird, damit sie immer zur Breite des Felds passt und niemals in die nächste Zeile umgebrochen wird. Ich habe überlegt, "em" als Einheit zu verwenden, aber es ist relativ zur Schriftgröße des Browsers. Wenn ich also die Auflösung ändere, bleibt die Schriftgröße gleich.
Versuchte auch Punkte und Prozentsätze. Nichts funktioniert so wie ich es brauche ...
Geben Sie mir bitte einen Hinweis, wie ich vorgehen soll.
css
measurement
barakuda28
quelle
quelle
<meta name="viewport" content="width=device-width" />
Sie können auchmax-width
anstelle vonmax-device-width
für ein "reaktionsschnelleres" Gefühl verwenden.Sie verwenden können
em
,%
,px
. In Kombination mitmedia-queries
Siehe diesen Link , um mehr über Medienabfragen zu erfahren. Außerdem hat CSS3 einige neue Werte für Dinge in Bezug auf die aktuelle Darstellungsgröße Sizing:vw
,vh
, undvmin
. Siehe Link dazu .quelle
vw
,vh
,vmin
Rocken diese Antwort.vmax
Neuer Weg
Es gibt verschiedene Möglichkeiten, dies zu erreichen.
CSS3 unterstützt neue Dimensionen, die sich auf den Ansichtsport beziehen. Aber das funktioniert nicht in Android.
3,2 vmax = größer als 3,2 vw oder 3,2 vh
siehe css-tricks.com / .... und siehe auch caniuse.com / ....
Alter Weg
Verwenden Medienabfrage , sondern erfordert die Schriftgrößen für mehrere Stützpunkte
Verwenden Sie die Abmessungen in % oder rem . Ändern Sie einfach die Grundschriftgröße, alles wird sich ändern. Im Gegensatz zu der vorherigen können Sie einfach die Hauptschriftart und nicht jedes Mal h1 ändern oder die Basisschriftgröße auf die Standardeinstellung des Geräts zurücksetzen und alle in em ruhen lassen.
"Root Ems" (rem) : Das "rem" ist eine skalierbare Einheit. 1rem entspricht der Schriftgröße des Körpers / HTML. Wenn beispielsweise die Schriftgröße des Dokuments 12pt beträgt, entspricht 1em 12pt. Root-Ems sind von Natur aus skalierbar, sodass 2em gleich 24pt, .5em gleich 6pt usw. wäre.
Prozent (%) : Die prozentuale Einheit ähnelt der „em“ -Einheit, abgesehen von einigen grundlegenden Unterschieden. In erster Linie entspricht die aktuelle Schriftgröße 100% (dh 12pt = 100%). Während Sie die Prozenteinheit verwenden, bleibt Ihr Text für mobile Geräte und für die Barrierefreiheit vollständig skalierbar.
siehe kyleschaeffer.com / ....
quelle
em
relativ zur Schriftgröße des Containers. Dies kann zu unerwartetem Verhalten führen, wenn für den Container auch die Schriftgröße festgelegtem
ist. Verwenden Sie diese Option, um die Größe relativ zur Dokumentschrift zu ermittelnrem
.Ich habe eine nette JS-Lösung entwickelt, die für vollständig ansprechendes HTML geeignet ist (dh HTML, das mit Prozentsätzen erstellt wurde).
Ich benutze nur "em", um Schriftgrößen zu definieren.
Die HTML-Schriftgröße ist auf 10 Pixel eingestellt:
Ich rufe eine Funktion zur Größenänderung von Schriftarten auf, wenn Dokumente bereit sind:
// Dies erfordert JQuery
quelle
Sie können dieses Tool ausprobieren: http://fittextjs.com/
Ich habe dieses zweite Tool nicht verwendet, aber es scheint ähnlich zu sein: https://github.com/zachleat/BigText
quelle
Ich bin mir nicht sicher, warum das so kompliziert ist. Ich würde dieses grundlegende Javascript machen
Wobei 12 12px bei 1280 Auflösung bedeutet. Hier entscheiden Sie den gewünschten Wert
quelle
Das hat bei mir funktioniert:
Hier ausführlich erklärt: https://css-tricks.com/books/volume-i/scale-typography-screen-size/
quelle
Ich habe eine Variante von https://stackoverflow.com/a/17845473/189411 erstellt
Hier können Sie die minimale und maximale Textgröße in Bezug auf die minimale und maximale Größe des Felds festlegen, für das Sie die Größe "aktivieren" möchten. Außerdem können Sie die Größe des dom-Elements überprüfen, das sich von dem Feld unterscheidet, in dem Sie die Textgröße anwenden möchten.
Sie ändern die Größe von Text zwischen 19 und 25 Pixel für das Element # Größe 2, basierend auf der Breite von 500 Pixel und 960 Pixel für das Element # Größe 2
Sie ändern die Größe von Text zwischen 13 und 20 Pixel für ein Element der Größe 1, basierend auf der Breite des Körperelements von 500 und 960 Pixel
Den vollständigen Code finden Sie unter https://github.com/kiuz/sandbox-html-js-css/tree/gh-pages/text-resize-in-range-of-text-and-screen/src
quelle
Es ist hilfreich, keine Medienabfragen zu verwenden, da hierdurch die Schriftgröße schrittweise skaliert werden kann.
Durch die Verwendung von
vw
Einheiten wird die Schriftgröße relativ zur Größe des Ansichtsfensters angepasst.Durch die direkte Konvertierung von
vw
Einheiten in Schriftgröße wird es schwierig, sowohl für mobile Auflösungen als auch für Desktops den Sweet Spot zu finden.Ich empfehle etwas wie:
Gutschrift: CSS im Detail
quelle
Ich hoffe das wird helfen. Ich verwende diese Formel für mein Phasenspiel.
quelle