Wie kann ich hochgestellt werden, nur in CSS?
Ich habe ein Stylesheet, in dem ich die externen Links mit einem hochgestellten Zeichen markiere, aber es fällt mir schwer, das Zeichen richtig auszurichten.
Was ich aktuell habe, sieht folgendermaßen aus:
a.external:after {
font-size: 50%;
vertical-align: top;
content: "+";
}
aber es funktioniert nicht.
Natürlich würde ich den <sup>
-tag nur verwenden, wenn content
HTML zulässig wäre ...
content
HTML erlaubt wäre, würde die Trennung von Bedenken leiden.Antworten:
Sie können hochgestellt mit
vertical-align: super
(plus einer begleitendenfont-size
Reduzierung).Allerdings sollten Sie auf die anderen Antworten lesen hier, vor allem diejenigen , die durch paulmurray und cletus , für nützliche Informationen.
quelle
font-size
reduziert werden, um den tatsächlichen hochgestellten Effekt zu erzielen.Ehrlich gesagt sehe ich keinen Sinn darin, hochgestellt / tiefgestellt nur in CSS zu arbeiten. Es gibt kein praktisches CSS-Attribut dafür, nur eine Reihe von selbst erstellten Implementierungen, darunter:
oder mit vertikaler Ausrichtung oder ich bin sicher, andere Möglichkeiten. Die Sache wird langsam kompliziert:
Der zweite Punkt ist hervorzuheben. In der Regel ist hochgestellt / tiefgestellt kein Styling-Problem, sondern ein Hinweis auf die Bedeutung.
Randnotiz: Es lohnt sich, diese Liste von Entitäten für gebräuchliche mathematische hochgestellte und tiefgestellte Ausdrücke zu erwähnen , obwohl sich diese Frage nicht darauf bezieht.
Die Sub / Sup-Tags sind in HTML und XHTML. Ich würde nur diese verwenden.
Wie für den Rest Ihres CSS werden die Attribute: after pseudo-element und content nicht allgemein unterstützt. Wenn Sie dies wirklich nicht manuell in den HTML-Code einfügen möchten, ist eine Javascript-basierte Lösung Ihrer Meinung nach die nächstbeste Wahl. Mit jQuery ist dies so einfach wie:
quelle
Die CSS-Dokumentation enthält branchenübliches CSS-Äquivalent für alle HTML-Konstrukte. Das heißt: Die meisten Web - Browser in diesen Tagen nicht explizit behandeln
SUB
,SUP
,B
,I
und so weiter - sie ( ein bisschen sorta) in umgewandeltSPAN
Elemente mit entsprechenden CSS - Eigenschaften und die Rendering - Engine befasst sich nur mit diesem.Die Seite ist Anhang D. Standard-Stylesheet für HTML 4
Die Bits, die Sie wollen, sind:
quelle
line-height
. IMHO ist die einzige Möglichkeit, nicht zu vermasseln,line-height
zu verwenden,position:relative
wie von cletus vorgeschlagen: stackoverflow.com/a/501689/260080Ich habe an einer Seite mit dem Ziel gearbeitet, klar lesbaren Text zu haben, wobei hochgestellte Elemente den oberen und unteren Rand der Zeile NICHT verändern - mit den folgenden Beobachtungen:
Wenn Sie
line-height: 1.5em
beispielsweise einen Haupttext für Ihren Haupttext haben , sollten Sie die Zeilenhöhe Ihres hochgestellten Textes verringern, damit er korrekt angezeigt wird. Ich habe benutztline-height: 0.5em
.Funktioniert
vertical-align: super
auch in den meisten Browsern gut, aber in IE8 wird der Rest dieser Zeile nach unten gedrückt, wenn ein hochgestelltes Element vorhanden ist. Also habe ich stattdessenvertical-align: baseline
zusammen mit einem Negativ verwendettop
undposition: relative
den gleichen Effekt erzielt, der in allen Browsern besser zu funktionieren scheint.Also, um zu den "hausgemachten Implementierungen" hinzuzufügen:
quelle
http://htmldog.com/articles/superscript/ Im Wesentlichen:
Funktioniert in der Praxis gut, soweit ich das beurteilen kann.
quelle
Folgendes stammt aus der internen Datei html.css von Mozilla Firefox:
In Ihrem Fall wäre es also etwas wie:
quelle
Dies ist eine weitere saubere Lösung:
Auf diese Weise können Sie weiterhin Sup / Sub- Tags verwenden, aber Sie haben ihr idiöses Verhalten korrigiert, um die Höhe der Absatzzeilen immer zu erhöhen .
Jetzt können Sie also Folgendes tun:
Und Ihre Absatzzeilenhöhe sollte nicht durcheinander geraten.
Getestet auf IE7, IE8, FF3.6, SAFARI4, CHROME5, OPERA9
Ich habe mit a getestet
p {line-height: 1.3;}
(das ist eine gute Zeilenhöhe, es sei denn, Sie möchten, dass Ihre Linien zu eng bleiben) und es funktioniert immer noch, da "-0.6em" eine so kleine Menge ist, dass auch bei dieser Zeilenhöhe der Unter- / Untertext passt und nicht über einander gehen.Ich habe ein Detail vergessen, das relevant sein könnte. Ich verwende immer DOCTYPE in der ersten Zeile meiner Seite (insbesondere verwende ich HTML 4.01
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
). Daher weiß ich nicht, ob diese Lösung gut funktioniert, wenn sich der Browser aufgrund eines Mangels an DOCTYPE oder eines DOCTYPE, der den Standard- / Fast-Standard-Modus nicht auslöst, im Quirk-Modus (oder nicht im Standardmodus) befindet.quelle
Wenn Sie die Schriftgröße ändern, möchten Sie möglicherweise die Verkleinerung mit dieser Regel beenden:
quelle
Ich bin nicht sicher, ob dies zusammenhängt, aber ich habe mein Problem mit
²
HTML-Entitäten gelöst , da ich keine anderen HTML-Tags innerhalb eines<label>
Tags hinzufügen konnte . Die Idee war also, ASCII-Codes anstelle von CSS- oder HTML-Tags zu verwenden.quelle
Überprüfen Sie: http://www.cssdesignpatterns.com/Chapter%2012%20-%20ALIGNING%20CONTENT/Vertical-aligned%20Content/example.html
wenn es so aussieht, als ob Sie "vertikal ausrichten: Text oben" möchten
quelle
Die CSS-Eigenschaft
font-variant-position
wird derzeit geprüft und ist möglicherweise die Antwort auf diese Frage. Ab Anfang 2017 wird dies jedoch nur von Firefox unterstützt.Siehe MDN .
quelle
Verwandte oder möglicherweise nicht verwandte, die Verwendung von hochgestelltem Text als HTML-Element oder als span + css im Text kann zu Problemen bei der Lokalisierung führen - in Lokalisierungsprogrammen.
Zum Beispiel sagen wir mal „3 rd Party - Software“:
Wie können Übersetzer "rd" übersetzen? Sie können es für mehrere kyrrilische Sprachen leer lassen, aber was ist mit anderen exotischen oder RTL-Sprachen?
In diesem Fall ist es besser, hochgestellte Zeichen zu vermeiden und einen vollständigen Wortlaut wie "Software von Drittanbietern" zu verwenden. Oder, wie hier in anderen Kommentaren erwähnt, Pluszeichen in hochgestelltem Text über jQuery hinzufügen.
quelle
quelle
Hier ist die genaue Art und Weise, wie sup verwendet:
Fand dies über Google Chrome Inspect Element.
quelle