milky: standardisierte KlassenNamen / site-unabh. CSS-Layouts

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

  1. 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

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. 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

      1. 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

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
        1. 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

          1. 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.

            • Tim
  2. 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/

    • Tim
  3. 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.