relative Schriftgröße von sub oder sup und deren Nachkommen in IE

8

Versuchen Sie es mit dem " Eric Meyer Reset " Ich bin über ein Problem gestolpert, das die font-size:100% declaration, um die Schriftgröße aller geeigneten Elemente zurückzusetzen. font-size:100% bedeutet, dass die Elemente die font-size -Eigenschaft ihrer Eltern erben sollten, aber dies ist nicht der Fall mit den Elementen <sub> und <sup> und ihren Nachkommen in IE (getestet in 6,7,8 und 9).

Zum Beispiel (oder dieses Live-Beispiel auf einem Spielplatz ):

%Vor%

Es scheint nur ein weiterer Implementierungstrick zu sein, den IE auf Webdesignern spielt, da dies nicht der einzige Fehler dieser Elemente ist. Meine Vermutung ist, dass IE ein eigenes festverdrahtetes Styling auf die Elemente <sub> und <sup> anwendet, was ihren Inhalt zusätzlich zu Sub- / Superskripten kleiner macht, aber ich finde keine Möglichkeit, dieses Verhalten zurückzusetzen, wenn überhaupt existiert überhaupt.

// Bitte antworten Sie direkt auf dieses Problem, Vorschläge wie "Verwenden Sie ein UA-spezifisches Stylesheet" mögen Ihr Gefühl, hilfreich zu sein, aber nicht das Thema erfüllen :-) ..EDIT: Ok, diese Bitte hat sich endlich gegen mich gewandt, aber ich wollte hier wenigstens eine Antwort zu diesem Thema geben.

BEARBEITEN: Es sieht aus wie IE (alle Versionen bis IE9) multipliziert die Schriftgröße der <sub> und <sup> und ihre Nachkommen mit einem variablen Koeffizienten (etw zwischen 0.6 - 0.8 abhängig von der Schriftgröße).

Die Argumentation folgt: Wenn eine feste Größe (zB font-size:15px ) auf das <sup> -Tag und alle seine Nachkommen gesetzt wird, haben alle die Schriftgröße um 10px (≅ 0,7 × 15px). Wenn jedoch stattdessen eine relative Größe festgelegt wird (z. B. font-size:100% ), wird der Koeffizienteneffekt vom <sup> -Element an seine Nachkommen weitergegeben. Daher hat der Nachfolger der ersten Ebene eine Schriftgröße von etwa 70% (≅ ) 0,7 × 100% seines <sup> Elternteils), der Nachfolger der zweiten Stufe hat eine Schriftgröße von etwa 50% (θ 0,7 × 0,7 × 100% von sein <sup> Vorgänger) und so weiter. Diese Propagierung bricht ab, wenn font-size:inherit verwendet wird, da das Element genau die gleiche Größe wie das Elternelement haben muss - dies funktioniert für die Nachkommen des Elements <sup> , aber das <sup> -Element selbst erhält immer noch eine kleinere Schrift Größe von IE als sein Elternelement hat.

Die Koeffiziententheorie :-), die an IE teilnimmt, kann auf diesem Beispiel gesehen werden. Vergleichen Sie dies auch mit einem der "standardkonformen" Browser.

    
Adam 24.07.2011, 01:19
quelle

2 Antworten

2

Es scheint so, als ob die einzige "Lösung", die die font-size:100% reset-Deklaration im Stylesheet belassen und trotzdem akzeptable Sub- / Superscripts haben soll, bisher entweder:

ist
  • Verwenden Sie ein anderes Element zum Formatieren der Unter- / Hochgestellten, z. %Code%. Definitiv keine gute Idee im Hinblick auf die Semantik → eliminiert .
  • Benutze ein UserAgent-spezifisches Stylesheet, bedingungslose Kommentare im besten Fall (worüber ich mir Sorgen machte, weil ich sie bisher nicht für IE ≥ 7 benutzen musste) und redigiere jeden Nachkommen neu, um den "Koeffizienten" zu kompensieren Wirkung "→ es ist es nicht wert: -) .
  • Lass es so, wie es ist, damit jeder sehen kann, dass IE seine eigenen Regeln hat (idealerweise / naiv könnte dies sie zwingen, es in der nächsten Version zu reparieren) und <span> verwenden, um mindestens die Nachkommen von font-size:inherit oder% zu haben co_de% wird standardmäßig in IE ≥ 8 → akzeptiert .
  • gleich groß sein

Lösung # 2 , das wird den Trick (sicher, dass es verbessert werden kann, aber nur das Konzept):

%Vor%

vorausgesetzt, Sie streben keine maximale Leistung an (siehe <sub> Leistungsproblem der Auswahl ).

    
Adam 24.07.2011, 14:12
quelle
0

Ich habe es nicht getestet, aber es funktioniert so weit:

%Vor%     
Cypher 11.05.2015 15:10
quelle