standardisierte KlassenNamen / site-unabh. CSS-Layouts
milky
- css
0 Sven Rautenberg0 milky0 Sven Rautenberg0 milky
0 Tim Tepaße0 wahsaga
Hi @all,
Gibt es sowas wie genormte CSS-KlassenNamen, so daß man FertigLayouts (*.css)
ganz einfach auf eine Seite anwenden kann, sofern man diese standardisierten
KlassenBezeichner für die einzelnen Bereiche (<div>s oder <td>s) angegeben
hat?
Wenn man ersthaft versucht Layout und Inhalt einer Seite zu trennen, sollten
dann doch normalerweise so CSS-Klassen wie .nav, .content oder .title
herauskommen. Und meine Frage ist schlicht, ob sich irgendwer schonmal
überlegt hat, welche KlassenNamen am sinnvollsten sind und auf den meisten
Seiten wiederkehren.
So austauschbare FertigLayouts gibt es ja für die ganzen PortalScripte ala
PhpNuke zur genüge, nur sind diese Layouts untereinander furchtbar
inkompatibel, wenn es nicht zumindest einen kleinen Satz von einheitlichen
CSS-Namen gibt.
Hat hier im Forum schonmal irgendwer was von einer Liste der sinnvollsten
Klassennamen oder so gehört? Ich würde gern in einem meiner Projekte
solche FertigLayouts verwenden, wenn es denn so eine Art Standard gibt.
Mir ist natürlich klar das auch solche CSS-Dateien dann trotzdem noch
feinangepaßt werden müssen (für einzelne Elemente die nicht ganz in das
Schema passen); aber irgendeine Richtlinie für nützliche und
wiederverwendbare CSS-Bezeichner fänd ich einfach toll.
MsF,
milky
Moin!
Mir ist natürlich klar das auch solche CSS-Dateien dann trotzdem noch
feinangepaßt werden müssen (für einzelne Elemente die nicht ganz in das
Schema passen); aber irgendeine Richtlinie für nützliche und
wiederverwendbare CSS-Bezeichner fänd ich einfach toll.
Verstehe ich deine Aussage bezüglich der PHPNuke...Seitenlayouts in der Hinsicht richtig, dass du im Prinzip nur die CSS-Dateien jeweils austauschen wollen würdest, um das Design zu wechseln?
Sorry, aber das wird wohl kaum funktionieren. Denn CSS-Dateien (und die dazugehörigen HTML-Seiten) können durchaus schon mal ziemlich komplexe Selektoren enthalten. Wenn die CSS-Dateien austauschbar wären, müßten die damit formatierten HTML-Seiten im Prinzip identisch bleiben. Jedenfalls wären die von mir bislang für Seiten erstellten CSS-Dateien allesamt ganz ultimativ inkompatibel zueinander. Das liegt unter anderem daran, dass ich nicht nur gewisse Klassennamen einsetze, sondern auch gewisse Klassennamen _in_ gewissen anderen Klassennamen enthalten sein müssen, damit die Formatierung funktioniert. Außerdem kannst du mit CSS natürlich keine <img>-Bilder austauschen, weshalb du dich ohnehin auch an die HTML-Dateien dranmachen mußt.
Summa summarum würde ich behaupten, dass dein Wunsch zwar einleuchtend erscheint, aber vollkommen an der Realität vorbeigeht. Das Übertragen eines Designs funktioniert bestenfalls für ganz allgemeine Formatierungen (Farbe, Schriftart) von einzelnen, festgelegten HTML-Elementen (deren Namen man natürlich kennt). Klassennamen oder ID-Namen hingegen sind immer Zeichen von individueller Formatierung - und die läßt sich eben meist nicht einfach kopieren, ohne dass die zugehörigen HTML-Elemente ebenfalls kopiert werden.
- Sven Rautenberg
Hey;
Verstehe ich deine Aussage bezüglich der PHPNuke...Seitenlayouts in der Hinsicht richtig, dass du im Prinzip nur die CSS-Dateien jeweils austauschen wollen würdest, um das Design zu wechseln?
Ganz genau. Es müssen aber nicht die Layouts von PhpNuke sein, sondern eben
nur ganz triviale CSS-Dateien, weil zu den NukeLayouts ja noch eine ganze
Menge mehr gehört als nur CSS (dort werden die Seiten ja als Tabellen
zusammengeschustert via Smarty oder so).
Es ist mir schon klar, daß man über CSS nur begrenzt Bilder einfügen kann
(oder das dann nur in einigen wenigen Browsern funktioniert), und mit
Sicherheit läßt sich nur mit CSS (alos völlig ohne Tabellen) auch nicht
völlig zufriedenstellend eine mit Nuke vergleichbare Seitenstruktur
basteln,
Sorry, aber das wird wohl kaum funktionieren. Denn CSS-Dateien (und die
dazugehörigen HTML-Seiten) können durchaus schon mal ziemlich komplexe
Selektoren enthalten. Wenn die CSS-Dateien austauschbar wären, müßten die
damit formatierten HTML-Seiten im Prinzip identisch bleiben.
Ja was du schreibst leuchtet mir alles ein, man kann mit so superallgemeinen
KlassenDefinitionen, nach denen ich gefragt hatte, nicht jeden kleinen Pups
und auch nicht jede beliebige Seite fix und fertig gestalten lassen. Aber
ich habe ja auch tatsächlich nur gefragt, ob für diese verdammt oft
wiederkehrenden FormatierungsAufgaben (Seitentitel, Navigation,
interne/externe Links, HGFarbe, Textfarbe, Schriftgröße, HGBild, etc.)
irgendwo sinnvolle Klassennamen empfohlen werden.
nicht nur gewisse Klassennamen einsetze, sondern auch gewisse Klassennamen
_in_ gewissen anderen Klassennamen enthalten sein müssen, damit die
Klar gibt es die komplexen Verschachtelungen von CSS-Definitionen, aber
die kann man ja neben so einer allgemeinen austauschbaren .css,
noch in eine zweite (site-spezifische) .css packen.
Meine Frage von vorhin, war eigentlich viel mehr, ob es neben dem
eigentlichen CSS-Standard noch eine irgendeine Empfehlung gibt, wie
man sinnvolle Klassennamen findet; oder ob jemand mal eine Liste
zusammengetragen hat, mit der man wirklich Layouts und Inhalt trennen
kann, und das kompatibel mit anderen Seiten. - Also praktisch eine Anwendung
von CSS, wie auch XHTML eine Anwendung von XML ist.
Aber Danke erstmal und Grüße,
milky
Moin!
Ja was du schreibst leuchtet mir alles ein, man kann mit so superallgemeinen
KlassenDefinitionen, nach denen ich gefragt hatte, nicht jeden kleinen Pups
und auch nicht jede beliebige Seite fix und fertig gestalten lassen. Aber
ich habe ja auch tatsächlich nur gefragt, ob für diese verdammt oft
wiederkehrenden FormatierungsAufgaben (Seitentitel, Navigation,
interne/externe Links, HGFarbe, Textfarbe, Schriftgröße, HGBild, etc.)
irgendwo sinnvolle Klassennamen empfohlen werden.
Deine angeblich so superallgemein immer wieder auftretenden Formatierungsaufgaben sind in Wirklichkeit gar nicht so superallgemein und simpel formatiert.
Paradebeispiel ist "Navigation". Das ist vermutlich der komplexeste Anwendungsfall von CSS, den man sich vorstellen kann.
Andererseits: "Seitentitel" schreibt man üblicherweise in <h1> bis <h6> rein. Sollte man jedenfalls so machen. Und dann mit CSS zurechtformatieren, vollkommen ohne Klassennamen.
Links sind logischerweise mit a:link etc formatierbar, auch ohne Klassennamen. Hintergrundfarbe, Textfarbe, Schriftgröße, HG-Bild hängen alle davon ab, dass man sie einem Element (vielleicht <body>) zuweist, sind also nichts, was man einzeln in CSS fassen könnte.
Und aus noch einem Grund ist dein Anliegen vollkommen abwegig: Es gibt Millionen Menschen, die mittlerweile in der Lage sind, CSS zu verwenden. Da das W3C (nur das wäre dazu in der Lage) aber bezüglich Klassen- und ID-Namen keinerlei Vorgaben gemacht hat außer der Menge der erlaubten Zeichen, dürfte es schlicht unmöglich sein, die Welt hier auf einen einheitlichen Nenner zu bringen. Denn Seitenschreiber verwenden gerne sprechende Namen. Dazu wird unter Umständen gerne die eigene Landessprache verwendet, und was im jeweiligen Zusammenhang dann wirklich als "sprechend" verstanden wird, ist auch unterschiedlich.
Oder als kurze Antwort: Nein, es gibt keine Vorgaben, und es wird sie auch nie geben.
- Sven Rautenberg
Hallo;
(Ich will hier wirklich nicht stenkern, oder irgendwem auf die Nervern
fallen. Echt nicht!)
Ich will nochmal kurz ein paar Beispiele nennen, wo ich meine, daß sie auf
vielen Seiten immer wieder mal vorkommen:
Paradebeispiel ist "Navigation". Das ist vermutlich der komplexeste Anwendungsfall von CSS, den man sich vorstellen kann.
So einen NavigationsBereich zu fromatieren ist warscheinlich noch das
leichteste, was man machen kann, denn die sind fast immer gleich aufgebaut -
nämlich ein Bereich (meistens <td>) und dann ein paar Verweise drinne.
.nav { border; background; }
.nav a, .nav * a { font; color; background; }
Bei Nuke und Co hast du immer solche Navigationsboxen, und dann vielleicht
noch eine Überschrift drinne (also <h4> oder <big><b> oder <th> oder sowas,
aber das könnte man ja alles auf einmal abfangen).
Und meiner Meinung nach spielt es in diesem Beispiel überhaupt keine Rolle
ob dieser Navigationsbereich in einem <td> steht oder in einem <div> oder
die CSS-Klasse in einem <p> referenziert wird. Wichtig für den Austausch
dieser CSS-Defintion wäre nur der KlassenName - wie wird der am häufigsten
genannt .nav, .navigation, .index, .inhalt oder .links ?
Und aus noch einem Grund ist dein Anliegen vollkommen abwegig: Es gibt Millionen Menschen, die mittlerweile in der Lage sind, CSS zu verwenden. Da das W3C (nur das wäre dazu in der Lage) aber bezüglich Klassen- und ID-Namen keinerlei Vorgaben gemacht hat außer der Menge der erlaubten Zeichen, dürfte es schlicht unmöglich sein, die Welt hier auf einen einheitlichen Nenner zu bringen. Denn Seitenschreiber verwenden gerne sprechende Namen. Dazu wird unter Umständen gerne die eigene Landessprache verwendet, und was im jeweiligen Zusammenhang dann wirklich als "sprechend" verstanden wird, ist auch unterschiedlich.
Genau darum ging es mir, hätte irgendwer eine Empfehlung abgegeben (das sich
das w3c hüten wird, ist mir schon klar) welches die besten Namen für
CSS-Klassen sind, dann wäre so ein LayoutAustausch schon machbar (auch wenn
damit natürlich nicht jede Seite ins kleinste Detail formatiert werden
könnte: .produkt, .projekt oder .download).
Mein Problem war tatsächlich, daß PhpNuke & Co alle ihre eigene Suppe kochen,
womit ich dann keine so ohne weiteres wiederverwenbare .css finden kann
(wenn dort absichtlich so wenig einprägsame CSS-Namen wie ".selcom",
".storycat" oder ".footmsg_l" verwenden). Tatsächlich war Nuke überhaupt ein
dummes Beispiel, weil dort mehr mit TabellenFarben und so gearbeitet wird.
Also meinetwegen, von so einem KlassenNamenStandard hat also noch niemand
was gehört. Damit bin ich zwar jetzt nicht zufrieden, aber wenigstens
informiert ;)
Also Danke für eure Antworten,
milky
Hallo milky,
Und meiner Meinung nach spielt es in diesem Beispiel überhaupt keine Rolle
ob dieser Navigationsbereich in einem <td> steht oder in einem <div> oder
die CSS-Klasse in einem <p> referenziert wird. Wichtig für den Austausch
dieser CSS-Defintion wäre nur der KlassenName - wie wird der am häufigsten
genannt .nav, .navigation, .index, .inhalt oder .links ?
Ich zum Beispiel habe in letzter Zeit immer wieder gerne Navigationen als
geordnete Listen erstellt und diese dann mittels CSS in die horizontale
gebracht. Einen Text für diese Vorangehensweise findest Du hier:
http://www.alistapart.com/stories/taminglists/
Ich tue dies wegen der größeren semantischen Repräsentation von Listen
als Navigationsmenü und als kleine Vorbereitung auf <nl> in XHTML 2, dessen
propagiertes Standarderscheinen ich nicht mag.
Ist diese meine Verhaltensweise in Deinen Gedankengängen auch enthalten?
Ich vermute nicht. Also muß man nachbessern, da in Deinen generischen
Klassen nur Mindestformatierungen [1] enthalten sein können oder aber extrem
komplizierte Selektoren, die noch in der Praxis versagen. Und wenn man
eh schon nachbessern muß, dann kann man auch gleich die Mindestformatierungen
nach eigenem Gusto erstellen. Viel Aufwand ist das nicht.
Bitte versteh mich nicht falsch. Mir ist Dein Vorschlag recht sympatisch,
aber was Du über Klassen machen willst, dafür gibt es meist passende
HTML-Elemente. Und Du kriegst selten ein so generisches Layout hin, daß
es noch angemessen komplex für die Bedürfnisse von Seitenerstellern und
angemessen simpel für die Gesamtheit der Seitenersteller ist. Deswegen
sehe ich keine Praktikabilität in Deinem Vorschlag.
[1] Wie zum Beispiel die W3C Core Styles, auf die ich im anderen Posting
verlinkt habe.
Hallo milky,
Gibt es sowas wie genormte CSS-KlassenNamen, so daß man FertigLayouts
Daß es gerade bei komplexen Klassenstrukturen sowas nicht geben kann, hat Dir
Sven ja schon gut erläutert. Ich kann mich daran nur anschließen.
Was es gibt, sind Stylesheets, die bestimmte, gebräuchliche HTML-Elemente
formatieren. Großartige strukturelle Layouts kriegt man damit nicht hin,
aber zumindest eine Grundformatierung. Das W3C hat einige solche Core
Styles im Angebot.
http://www.w3.org/StyleSheets/Core/
So austauschbare FertigLayouts gibt es ja für die ganzen PortalScripte ala
PhpNuke zur genüge, nur sind diese Layouts untereinander furchtbar
inkompatibel, wenn es nicht zumindest einen kleinen Satz von einheitlichen
CSS-Namen gibt.
na gott sei dank sind sie das.
diese dämlichen phpnuke/ (wasweissichnochalles)-seiten sehen sowieso schon alle so uniform und absolut austauschbar aus - dass man deren designs jetzt auch noch untereinander portieren könnte, kann sich ein auch nur halbwegs an sowas wie einem individuellen design interessierter mensch wohl kaum wirklich wünschen.