Wikipedia:Technik/Skin/CSS/TemplateStyles
TemplateStyles
Die TemplateStyles ermöglichen es, HTML-Elementen innerhalb unserer Wikitext-Seiten und darin verwendeten Selektoren eigene CSS-Definitionen zuzuweisen.
Es müssen Namenskollisionen zwischen diesen speziell definierten Selektoren (wie etwa in class=""
angesprochen) und den projektweiten, von MediaWiki sowie von Tools verwendeten Bezeichnern vermieden werden. Die Anwender in der deutschsprachigen Wikipedia muss deshalb unverwechselbare, selbsterkärende Präfixe für Selektoren definieren, die auch unten einzutragen sind.
Bis auf Weiteres wirken sich TemplateStyles auf den gesamten Inhaltsbereich aus, in dem die Vorlagen eingebunden sind. Die dort deklarierten CSS-Anweisungen dürfen also keinen Einfluss auf irgendein anderes Element in der Seite haben, für das sie nicht ausdrücklich bestimmt sind.
Konventionen für Bezeichner
[Quelltext bearbeiten]Die Klassenbezeichner beginnen mit einem thematischen Schlüsselwort (Präfix) sowas-
oder einer Wortgruppe dies-und-das-
, an die sich mit einem Bindestrich die einzelnen Klassennamen für dieses Anwendungsgebiet anschließen.
- Das Schlüsselwort kann zum Beispiel der Titel der genutzten Vorlage sein; es könnte aber auch für eine ganze Gruppe von Vorlagen gelten oder überhaupt keinen Bezug zu einzelnen Vorlagen haben.
- Aus dem Schlüsselwort muss sich unmittelbar entnehmen lassen, worum es thematisch gehen wird, und soweit möglich sich auch erraten lassen, welche Vorlage oder Modul involviert ist.
- Für die Schlüsselworter gelten folgende Einschränkungen:
- Keine Schlüsselwörter für Domänen wie
mw
,dewiki
,commons
,meta
,wiki
usw. - Keine Allerweltsbegriffe, die leicht weltweit von jemand anders verwendet werden könnten; etwa: abbr align bottom cell center clear color column coordinate file first geo help image lang left line media name right row script size space style table template text title toc tool tooltip top.
- Keine Abkürzungen – ausgenommen solche, die sich allgemein einfach erschließen; etwa
isbn
. - Bezeichner der Lua-Bibliotheksmodule, aus mw.libs sowie Cloud/Helferlein (bzw. toolforge) sind grundsätzlich als bereits vergeben zu betrachten; und werden nach diesem Schema längst benutzt. Groß- und Kleinschreibung sind dabei zu ignorieren.
- Keine aus dem Projekt oder MediaWiki bereits bekanntgewordenen Klassenbezeichner.
- Groß- und Kleinschreibung oder das Einfügen eines Bindestrichs sind für die Bearbeiter nicht als bedeutungstragend zu erkennen und gelten deshalb nicht als signifikanter Unterschied.
- Maximale Kompatibilität wird über reine Kleinschreibung erreicht. Unterstreichungsstriche
_
sollten nicht genutzt werden. Zur textlichen Gliederung sind ASCII-Bindestriche-
zu verwenden. Deutsche Umlaute usw. sind zwar heutzutage technisch möglich; traditionell werden jedoch nur ASCII-Kleinbuchstaben, Ziffern und-
benutzt, um mit allen Software-Anwendungen problemlos zusammenzuarbeiten.
- Keine Schlüsselwörter für Domänen wie
- Die Schlüsselbegriffe sind in der Tabelle unten zu registrieren.
- Die Schlüsselbegriffe bilden eine Art Namensraum, der mindestens projektweit, aber auch global eindeutig und unverwechselbar sein muss. Konflikte mit gleichen Bezeichnern in der MediaWiki-Software, in globalen Lua-Modulen, Skripten usw. müssen weitgehend auszuschließen sein.
- Deutschsprachige Begriffe vermeiden internationale Konflikte.
- Zu kurze Schlüsselbegriffe und Abkürzungen provozieren Namenskollisionen auch mit anderen Projekten.
- In der Regel wird es sich um Klassen handeln. Sollten im Einzelfall einmal einzelne Elemente dekoriert werden, gilt dies für deren Selektor (also über
id=
angesprochen) sinngemäß.
Während sich alle Klassenbezeichner den gleichen reglementierten und eindeutigen Schlüsselbegriff teilen, schließen nach einem Bindestrich frei zu vergebende aufgabenspezifische Unterbezeichner an; etwa sowas-link
sowas-table
sowas-help
.
id=
laufen immer Gefahr, mit einer gleichnamigen Überschrift zu kollidieren und auf diese einzuwirken; und sei es diejenige Überschrift, die in einer Dokumentation diesen Bezeichner erklären soll.
- Aus diesem Grund ist es global in den Wikis üblich geworden, für die Dekoration eines einzelnen Elements keinen Selektor mehr zu definieren, der über
#
ein einzelnes Element in der Seite ansprechen soll. - Vielmehr sollte eine Klasse (abgeleitet von dem reservierten Beginn) eingeführt werden, die dann nur genau ein einziges Element enthält. Das hat für die Dekoration mittels CSS und für Skripte genau die gleiche Wirkung, ist jedoch unempfindlich gegen generierte Überschriften.