Heim >Web-Frontend >js-Tutorial >Ein einfacher CSS-Drop-Cap
Sie können den Drop-Cap-Effekt, den wir im neuen Blogs-Design verwenden, sowie das obere Erst-Line-Upper, das die meisten Browser anzeigen, nicht nicht bemerkt haben (außer Safari, aus Gründen, die ich in einem Moment erklären werde).
Es gibt einige hackige Methoden, um diesen Effekt zu implementieren, aber das sauberste und am meisten wartbare CSS ist mit den: Erstgeschichte und: Erstline-Pseudoklasse.
Dieser Ansatz bedeutet kein zusätzliches Markup, keine Bilder und keine Notwendigkeit, über den Inhalt zu wissen - unabhängig von dem ersten Buchstaben und der ersten Zeile wird der Effekt angewendet.
Hier ist das CSS , das es geschehen lässt:
#post-content > p:first-child:first-line, #post-content > .ad:first-child + p:first-line { text-transform:uppercase; position:relative; font-size:0.95em; letter-spacing:1px; } #post-content > p:first-child:first-letter, #post-content > .ad:first-child + p:first-letter { letter-spacing:0; text-transform:uppercase; color:#628fbe; font-family:times,serif; font-size:3.5em; float:left; margin:0.13em 0.2em 0 0; line-height:0.7; }
Sie werden feststellen, wie zwei verschiedene Selektoren versuchen, den Effekt auf den ersten Absatz im Inhaltsbereich anzuwenden. Es musste flexibel genug sein, um das Vorhandensein oder das Fehlen eines Ad unmittelbar vor dem Absatz, der als
#post-content > p:first-of-type:first-line { } #post-content > p:first-of-type:first-letter { }
Das ist jedoch nicht so weitgehend unterstützt. Die Selektoren, die wir verwenden, bedeuten, dass wir Unterstützung für IE8 erhalten, die wir sonst nicht tun würden.
Für die Erstlinien-Oberzahlen erhalten wir leider keine Unterstützung für Safari. Es liegt nicht an den Selektoren-es unterstützt alle hier angegebenen Beispiele und wendet andere Eigenschaften innerhalb dieser Regeln an-, wendet die Texttransformierung einfach nicht an. Dies ist etwas, was mir in verschiedenen Situationen aufgefallen ist, in denen Safari die Transformation nicht ohne leicht zu Apparat anwendet. Ich habe gesehen, dass es nicht für ein
Für den Drop-Cap selbst können Sie sehen, dass es ziemlich einfach zu implementieren ist. Das bemerkenswerte Ding in dieser Regel ist die Kombination aus Rand und Linienhöhe, die den Buchstaben in Position bringt. Wenn wir diese beiden Eigenschaften weglassen, bekommen wir Folgendes:
Die Drop-Cap vor der Leitungshöhe wird angewendet.
Was Sie dort von links nach rechts sehen, ist Firefox, Opera und Safari. Und in der Tat ist es Firefox, das fälschlicherweise macht, während Opera und Safari es richtig machen-Firefox wendet immer noch die Zeilenhöhe des übergeordneten Absatzes auf den ersten Buchstaben an und ignoriert die schwere Schriftgröße, während die anderen Browser eine Linienhöhe anwenden, die der Schriftgröße des Briefes entspricht.
Wir können also den Unterschied zur Ausdehnung des Ergebniss zwischen Browsern nutzen-die Leitungshöhe progressiv reduzieren, was für Firefox keinen Unterschied macht, bis wir ein ähnliches Ergebnis in Opera und Safari (und IE8 ) erzielen:
Die Drop-Cap nach der Leitungshöhe wird angewendet.
Dann geht es einfach um das Hinzufügen von Margen, bis die vertikale Position richtig aussieht.
Es ist nicht das erste Mal, dass ich dieses Rendering -Verhalten in Firefox gesehen habe. Und da wir keine CSS -Hacks haben, die nur für Firefox gelten können, sind Unterschiede wie diese wirklich die einzige Möglichkeit, Browser -Optimierungen anzuwenden. Und wenn Browser-Optimierungen gehen, ist dieser völlig zukunftssicher-wenn Firefox jemals seine Implementierung festlegt und die richtige Linienhöhe anwendet, wird es wie die anderen in erster Linie ausgehen.
Es ist wirklich ironisch, dass wir jeden Browser außer Firefox reparieren sollten, wenn Firefox der einzige Browser ist, der es falsch macht! Aber so funktioniert unsere Branche - Firefox ist wie Ihr Missus "immer richtig".
Vorschaubild Kredit: Thoth
häufig gestellte Fragen (FAQs) zu CSS Drop CapDas obige ist der detaillierte Inhalt vonEin einfacher CSS-Drop-Cap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!