Wie wird die Schriftgröße basierend auf der Containergröße festgelegt?
Ich habe einen Behälter, der eine % Breite und Höhe, so dass es Skalen in Abhängigkeit von äußeren Faktoren. Ich möchte die schriftart im inneren des Behälters zu einer Konstanten Größe im Verhältnis zu der Größe der Behälter. Gibt es eine gute Möglichkeit, dies zu tun mit CSS? Die font-size: x%
würde nur skalieren der schriftart nach dem original-Schriftgröße (die wäre 100%).
InformationsquelleAutor der Frage FurtiveFelon | 2012-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie in der Lage, dies zu tun mit CSS3 mithilfe von Berechnungen, jedoch wäre es wahrscheinlich sicherer sein, JavaScript zu verwenden.
Hier ist ein Beispiel: http://jsfiddle.net/8TrTU/
Mit JS ändern Sie die Höhe des Textes, dann einfach binden Sie diese gleiche Berechnung für ein resize-Ereignis aus, während die Größe so skaliert werden, während der Benutzer die Einstellungen vorgenommen werden, oder aber Sie erlaubt die änderung der Größe der Elemente.
InformationsquelleAutor der Antwort Matthew Riches
Wenn Sie möchten, um die schriftart-Größe als Prozentsatz der viewport-Breite, verwenden Sie die
vw
Einheit:Die andere alternative ist die Verwendung von SVG eingebettet in den HTML-Code. Es wird nur ein paar Zeilen. Die font-size-Attribut, um das element text wird interpretiert als "user units", etwa jene der viewport definiert. Also, wenn Sie definieren viewport 0 0 100 100 dann eine font-size von 1 Hundertstel der Größe der svg-element.
Und Nein, es gibt keine Möglichkeit, dies zu tun in CSS mithilfe von Berechnungen. Das problem ist, dass Prozentsätze verwendet für font-size, einschließlich der Prozentsätze innerhalb einer Berechnung, werden interpretiert im Hinblick auf die vererbten Schriftgröße, nicht die Größe der container. CSS könnte ein Gerät namens
bw
(box-Breite) für diesen Zweck, so könnte man sagendiv { font-size: 5bw; }
aber ich habe noch nie gehört, dass dies vorgeschlagen wird.InformationsquelleAutor der Antwort
Anderen js-alternative:
Beispiel
Oder wie es in torazaburo Antwortdie Sie nutzen könnten svg. Ich habe ein einfaches Beispiel als proof-of-concept:
SVG-Beispiel
InformationsquelleAutor der Antwort apaul
Es nicht erreicht werden, die mit css font-size
Davon aus, dass "externe Faktoren", auf die Sie sich beziehen könnte abgeholt werden durch media queries, könnten Sie Sie verwenden - Anpassungen wird wahrscheinlich begrenzt sein, um eine Reihe von vordefinierten Größen.
InformationsquelleAutor der Antwort o.v.
Ich verwendet Fittext auf einige meiner Projekte und es sieht aus wie eine gute Lösung, um ein problem wie dieses.
InformationsquelleAutor der Antwort ElvinD
Hier ist die Funktion:
Dann konvertieren Sie alle Ihre Dokumente zu child-element der Schriftgröße auf em oder %.
Dann fügen Sie so etwas wie dies, zu Ihrem code die Basis-Schriftgröße.
http://jsfiddle.net/0tpvccjt/
InformationsquelleAutor der Antwort tnt-rox
Die ich gegeben habe, eine detaillierte Antwort mitin dieser Antwort also ich nicht wiederholen Sie einfach meine Antwort hier.
vw
mit Bezug zu bestimmten container sizingIn der Zusammenfassung, allerdings ist es im wesentlichen eine Frage der factoring (oder Steuerung), was die container-Größe, wird mit Bezug auf die Ansichtsfenster, und dann arbeiten Sie heraus, die richtige
vw
sizing basiert auf, dass für die container, wobei der Geist dessen, was geschehen muss, wenn etwas ist dynamisch geändert werden.Also, wenn Sie wollten eine
5vw
Größe auf ein container auf 100% der viewport-Breite, dann ein zu75%
von der viewport-Breite, die Sie möchten wahrscheinlich, dass sein(5vw * .75) = 3.75vw
.InformationsquelleAutor der Antwort ScottS
Wenn Sie wollen, um es zu skalieren abhängig von der Elementbreite, können Sie mit dieser web-Komponente:
https://github.com/pomber/full-width-text
Überprüfen Sie die demo hier:
https://pomber.github.io/full-width-text/
Die Verwendung ist wie folgt:
InformationsquelleAutor der Antwort pomber
Können Sie auch versuchen, diese Reine CSS-Methode:
InformationsquelleAutor der Antwort Angie