Ich versuche, eine Schriftart in einem Div so zu gestalten, dass sie auf das Browserfenster reagiert. Bisher hat es perfekt funktioniert, aber der Eltern-Div hat einen max-width
von 525px
. Wenn Sie die Größe des Browsers weiter ändern, wird die Größe der Schriftart nicht gestoppt. Ich habe mich gefragt, ob es so etwas wie min-font-size
oder max-font-size
gibt und ob es so etwas nicht gibt, ob es einen Weg gibt, etwas Ähnliches zu erreichen.
Ich dachte, dass die Verwendung von Prozentsätzen bei font-size
funktionieren würde, aber das Textstück wird nicht entsprechend dem übergeordneten div skaliert. Folgendes habe ich:
Das CSS für das übergeordnete div:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
Das CSS für den betreffenden Text:
.subText{
position:relative;
top:-55px;
left:15px;
font-family:"news_gothic";
font-size:1.3vw;
font-size-adjust:auto;
width:90%;
color:white;
z-index:1;
}
Ich habe eine ganze Weile im Internet gesucht, aber ohne Erfolg.
Antworten:
Nein, es gibt keine CSS-Eigenschaft für die minimale oder maximale Schriftgröße. Browser haben häufig eine Einstellung für die Mindestschriftgröße, die jedoch vom Benutzer und nicht vom Autor gesteuert wird.
Sie können
@media
Abfragen verwenden , um einige CSS-Einstellungen vorzunehmen, abhängig von der Bildschirm- oder Fensterbreite. In solchen Einstellungen können Sie beispielsweise die Schriftgröße auf einen bestimmten kleinen Wert einstellen, wenn das Fenster sehr eng ist.quelle
max-width:600px;
. Bin ich richtig oder habe ich die Informationen hinter dem Link nicht richtig verstanden?@media
auf das Browserfenster? Woher weiß es, dass meine Schriftgröße beispielsweise 20 Pixel betragen soll, wenn das übergeordnete Div- oder Browserfenster eine bestimmte Größe in px hat?@media (width:600px)
, wird das folgende Skript ausgeführt,@media
sobald die Browserbreite 600px entspricht.Sie können dies tun, indem Sie eine Formel verwenden und die Breite des Ansichtsfensters angeben.
Dadurch wird die minimale Schriftgröße auf 7 Pixel festgelegt und je nach Breite des Ansichtsfensters um 0,5 VW erhöht.
Viel Glück!
quelle
0
. Einige verschachteltecalc
s oder so?calc()
Anweisung wird verarbeitet, wenn LESS kompiliert und in einen einfachenpx
Wert aufgelöst wird. Die Größenänderung wird nicht neu berechnet. Ideen oder Gedanken?Es funktioniert gut mit CSS.
Ich habe die gleichen Probleme durchlaufen und sie wie folgt behoben.
Verwenden Sie eine feste "px" -Größe für die maximale Größe bei einer bestimmten Breite und darüber. Verwenden Sie dann für verschiedene kleinere Breiten ein relatives "vw" als Prozentsatz des Bildschirms.
Das Ergebnis unten ist, dass es sich auf Bildschirmen unter 960px anpasst, aber eine feste Größe darüber beibehält. Nur eine Erinnerung, nicht zu vergessen, das HTML-Dokument in der Kopfzeile hinzuzufügen:
Beispiel in CSS:
Ich hoffe es wird helfen!
quelle
Ich komme etwas spät hierher, ich bekomme nicht so viel Anerkennung dafür, ich mache nur eine Mischung der folgenden Antworten, weil ich gezwungen war, das für ein Projekt zu tun.
Um die Frage zu beantworten: Es gibt keine CSS-Eigenschaft . Ich weiß nicht warum, aber ich denke, es liegt daran, dass sie Angst vor einem Missbrauch dieser Eigenschaft haben, aber ich finde keinen Anwendungsfall, in dem es ein ernstes Problem sein kann.
Was auch immer, was sind die Lösungen?
Zwei Werkzeuge ermöglichen es uns , das zu tun: Medien - Anfragen am vw Immobilien
1) Es gibt eine "Narren" -Lösung, die darin besteht, für jeden Schritt, den wir in unserem CSS ausführen, eine Medienabfrage durchzuführen und die Schriftart von einem festen Betrag auf einen anderen festen Betrag zu ändern. Es funktioniert, aber es ist sehr langweilig und Sie haben keinen glatten linearen Aspekt.
2) Wie AlmostPitt erklärte, gibt es eine brillante Lösung für die Minima:
Das Minimum wäre hier 7px zusätzlich zu 0,5% der Ansichtsbreite. Das ist schon richtig cool und funktioniert in den meisten Fällen . Es ist keine Medienabfrage erforderlich, Sie müssen nur einige Zeit damit verbringen, die richtigen Parameter zu finden.
Wie Sie bemerkt haben, handelt es sich um eine lineare Funktion. Die grundlegende Mathematik zeigt Ihnen, dass zwei Punkte bereits die Parameter enthalten. Legen Sie dann einfach die gewünschte Schriftgröße in px für sehr große Bildschirme und für mobile Versionen fest und berechnen Sie dann, ob Sie eine wissenschaftliche Methode durchführen möchten. Dachte, es ist absolut nicht notwendig und du kannst es einfach versuchen.
3) Nehmen wir an, Sie haben einen sehr langweiligen Kunden (wie ich), der unbedingt möchte, dass ein Titel eine Zeile und nicht mehr ist. Wenn Sie die AlmostPitt-Lösung verwendet haben, treten Probleme auf, da Ihre Schriftart weiter wächst und Sie einen Container mit fester Breite haben (z. B. Bootstrap, der bei 1140 Pixel stoppt, oder etwas in großen Fenstern). Hier empfehle ich Ihnen, auch eine Medienabfrage zu verwenden. Tatsächlich können Sie nur die maximale Pixelgröße ermitteln, die Sie in Ihrem Container verarbeiten können, bevor der Aspekt unerwünscht wird (pxMax). Dies wird Ihr Maximum sein. Dann müssen Sie nur noch die genaue Bildschirmbreite finden, die Sie stoppen müssen (wMax). (Ich lasse Sie eine lineare Funktion selbst invertieren).
Danach einfach machen
Dann ist es perfekt linear und Ihre Schriftgröße wächst nicht mehr! Beachten Sie, dass Sie Ihre vorherige CSS-Eigenschaft (calc ...) nicht in eine Medienabfrage unter wMax einfügen müssen, da Medienabfragen als wichtiger angesehen werden und die vorherige Eigenschaft überschrieben wird.
Ich denke nicht, dass es nützlich ist, ein Snippet dafür zu erstellen, da Sie Probleme haben würden, es auf den gesamten Bildschirm zu schaffen, und es schließlich keine Raketenwissenschaft ist.
Ich hoffe, dies könnte anderen helfen, und vergessen Sie nicht, AlmostPitt für seine Lösung zu danken.
quelle
max(*a*px,, *b*vw)
? Weil ich in meinem Fall eine naive Addition nicht tolerieren kann, weil das Ergebnis zu groß ist, aber es klingt so, als würden Sie vorschlagen, dass ich a und b irgendwie über die naiven Beträge reduzieren könnte - ich habe Probleme, die Mathematik herauszufinden, und ich brauchen eine allgemeine Lösung, nicht nur einen bestimmten Fall.Dies wird tatsächlich in CSS4 vorgeschlagen
Arbeitsentwurf am W3C
Zitat:
Dies würde tatsächlich wie folgt funktionieren:
Dies würde wörtlich bedeuten, dass die Schriftgröße 5% der Breite des Ansichtsfensters beträgt, jedoch niemals kleiner als 10 Pixel und niemals größer als 18 Pixel.
Leider ist diese Funktion noch nirgendwo implementiert (nicht einmal auf caniuse.com).
quelle
Rucksack ist brillant, aber Sie müssen nicht unbedingt auf Tools wie Gulp oder Grunt usw. zurückgreifen.
Ich habe eine Demo mit CSS Custom Properties (CSS-Variablen) erstellt, um die minimalen und maximalen Schriftgrößen einfach zu steuern.
Wie so:
quelle
Ich habe damit einige reibungslose Ergebnisse erzielt. Es fließt reibungslos zwischen den 3 Breitenbereichen, wie eine kontinuierliche stückweise Funktion.
quelle
Mit Sass können Sie die minimalen und maximalen Schriftgrößen steuern. Hier ist eine brillante Lösung von Eduardo Boucas.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
quelle
Bitte beachten Sie, dass das Festlegen der Schriftgröße mit px aus Gründen der Barrierefreiheit nicht empfohlen wird :
"Das Definieren von Schriftgrößen in px ist nicht möglich, da der Benutzer die Schriftgröße in einigen Browsern nicht ändern kann. Beispielsweise möchten Benutzer mit eingeschränkter Sicht möglicherweise die Schriftgröße viel größer als die von einem Webdesigner gewählte Größe festlegen." (siehe https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Ein zugänglicherer Ansatz besteht darin,
font-size: 100%
im HTML- Code festzulegen , der die Standardeinstellungen für die Benutzergröße berücksichtigt, und dann beim Ändern der Größe (em
oderrem
) entweder Prozentsätze oder relative Einheiten zu verwenden , z. B. mit einer @ media-Abfrage.(Siehe https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
quelle
Ja, es scheint einige Einschränkungen durch einen Browser in SVG zu geben. Das Entwicklungstool beschränkt es auf 8000px; Das folgende dynamisch generierte Diagramm schlägt beispielsweise in Chrome fehl.
Versuchen Sie http://www.xn--dddelei-n2a.de/2018/test-von-svt/
quelle