Ankündigung

Einklappen
Keine Ankündigung bisher.

CSS Ober/Unterklassen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSS Ober/Unterklassen

    Hallo,

    ich möchte gerne in meinem Style-Sheet Bereiche über- und unterordnen, finde dazu aber nichts und weiß auch nicht, ob das so geht, hätte aber eine Vermutung, dass *wenn* es geht, dann so:


    PHP-Code:
    .OBERKLASSE {
       .
    UNTERKLASSE {width:100px}

    weil es gibt ja so Konstrukte wie
    PHP-Code:
    @MEDIA TRALLALA {
    .
    KLASSE {width:100px;}


    Hintergrund ist sich folgendes...

    Ich habe ganz viele Klassen, die ich wiederum mit anderen (mehreren) Klassen zusammen führen möchte...

    Beispiel

    PHP-Code:
    .OBERKLASSE1, .OBERKLASSE2, .OBERKLASSE3 {

      .
    unterklasse.unterklasse2.unterklasse3 {width:100px}
      .
    unterklasse4.unterklasse5.unterklasse6 {float:left}
      .
    unterklasse7.unterklasse8.unterklasse9 {background-color:#ff0000}

    (nochmal zur Verdeutlichung, die UNTERKLASSEN PRO REIHE GEHÖREN ZUSAMMEN, das machts ja so Tricky!, keine KOMMA-Separierung)


    Alle Oberklassen 1, 2 und 3 haben diese Unterklassen 1-9 und die Unterklassen müssen immer das gleiche machen die bei allen anderen.

    Nun könnte man die Oberklassen natürlich weg lassen um es zu globalisieren,
    was würde sich aber dann negativ auf andere Oberklassen auswirken, die wiederum auch diese Unterklassen haben aber nicht davon beeinflusst werden sollen...

    Jetzt werden sicher wieder einige sagen, benenn die Klassen um, aber es geht einfach nicht.
    Es geht hier teilweise direkt um H1-H4 Elemente (im Bereich der Unterklassen) und die Oberklassen sind auch festgelegt.

    Hat jemand eine Idee, wie man sowas hier besser gruppiert / in CSS übersichtlicher gestaltet?

    Das hier ist das Beispiel für ein Konstrukt, wie es in realistischer Form existiert, was ich aber kleiner machen möchte.
    So würde es zwar Technisch funktionieren,ist aber doch echt viel mit Redundanz:
    PHP-Code:
    .OBERKLASSE1 .unterklasse.unterklasse2.unterklasse3,
    .
    OBERKLASSE2 .unterklasse.unterklasse2.unterklasse3,
    .
    OBERKLASSE3 .unterklasse.unterklasse2.unterklasse3 {width:100px}

    .
    OBERKLASSE1 .unterklasse4.unterklasse5.unterklasse6,
    .
    OBERKLASSE2 .unterklasse4.unterklasse5.unterklasse6,
    .
    OBERKLASSE3 .unterklasse4.unterklasse5.unterklasse6 {float:left}

    .
    OBERKLASSE1   .unterklasse7.unterklasse8.unterklasse9,
    .
    OBERKLASSE2   .unterklasse7.unterklasse8.unterklasse9,
    .
    OBERKLASSE3   .unterklasse7.unterklasse8.unterklasse9 {background-color:#ff0000} 

    In wirklichkeit siehts noch viel Schlimmer aus, weil bei den Unterklassen auch noch Opperatoren wie :hover und :nth-child(odd) etc. hinzu kommen,
    das wird einfach total unübersichtlich wenn man das für alle Oberklassen wiederholen muss...


    Schöne Grüße


















  • #2
    Ich komme nicht nach. Hast du kein konkretes Beispiel anstelle dieses Ober-Unter-Gefasels?
    [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

    Kommentar


    • #3
      TL;DR
      Hast du dir mal SCSS angesehen? Kaum jemand macht heute noch in normalem CSS rum...
      http://sass-lang.com

      Da kannst du auch Bereiche so verschachteln, wie du es oben beschrieben hast (und noch vieles mehr).

      Kommentar


      • #4
        Hallo,
        erstmal vielen Dank.
        Ich setze ein Web Content Management System ein, da ist kein SCSS eingebunden. Ich höre davon auch um ehrlich zu sein zum ersten mal...

        ch hab es lediglich zu OBER/UNTERKLASSE Übersetzt, weil die Klassennamen URLs/Namen enthalten, die ich hier nicht posten möchte.

        Kommentar


        • #5
          Zitat von IceEagle
          Hallo,
          erstmal vielen Dank.
          Ich setze ein Web Content Management System ein, da ist kein SCSS eingebunden. Ich höre davon auch um ehrlich zu sein zum ersten mal...

          ch hab es lediglich zu OBER/UNTERKLASSE Übersetzt, weil die Klassennamen URLs/Namen enthalten, die ich hier nicht posten möchte.
          Wundert mich, dass du davon noch nichts gehört hast. Viele große Css-Frameworks wie Foundation oder Bootstrap bringen immer auch SCSS oder LESS Quellen mit.

          SCSS (Sass) ist ein CSS Prä-Prozessor. Damit erzeugst du CSS aus (deinen) SCSS-Quelldateien. Nebenbei hast du dann noch die Möglichkeit den CSS-Output zu komprimieren. Das ist auch völlig unabhängig von der Umgebung, wo das erzeugte CSS genutzt werden soll. Du kannst dann auch noch Variablen (z.B. für Farben) und Mixins sowie viele andere schöne Dinge benutzen, die dann für das CSS aufgelöst und vervielfacht werden. Das müsstest du sonst alles von Hand machen. Außerdem kannst du deine CSS-Definitionen über mehrere Dateien verteilen. Sass macht dann wieder eine große CSS-Datei draus.

          Viele Browser unterstützen CSS-Sourcemaps. Das heißt, dass dir zu .css-Dateien noch .map Dateien erzeugt werden und dir im HTML-Inspektor deines Browsers die korrekte Stelle angegeben wird, wo die Definition deiner CSS-Regeln im SCSS-Quellcode ist.

          Ach so: Deine bestehenden .css-Dateien kannst du in .scss umbenennen und via SCSS wieder zu .css übersetzen. Du wirst also nichts aufwändig umschreiben müssen.

          Ich habe das Thema jetzt auch nur grob angeschnitten. Da gibt es dann ja noch Compass und co .

          Kommentar


          • #6
            Danke, das klingt für mich sehr nützlich, wenn es um meine Projekte geht, die fern ab eines WCMS sind, aber wenn man sowas wie ein WCMS nutzt. was die CSS selbst einbindet, verwaltet und komprimiert...
            Es gibt da ein gewisses Konstrukt über die gesamte Seite mit den Namen der Klassen und IDs...

            Jedenfalls zurück zu meiner Problematik, gibt es im klassischen HTML5/CSS eine Syntax mit der ich das so gruppieren kann, wie auch bei diesen @MEDIA-Angaben?

            Kommentar


            • #7
              Nein, wird es auch nicht. Ich nutze verschiedene (W)CM-Systeme und mit allen ist das möglich. Selbst mit contao.

              Kommentar


              • #8
                Das mit Deinen "Ober- und Unterklassen" sieht schon recht abenteuerlich aus. CSS selber arbeitet über die Vererbung von Eigenschaften schon so, wie Du das beschreibst.

                Du kannst ja mal Deine Seite fiddlen. Ich denke, dass Deine dargestellte CSS stark optimiert werden kann...

                Schau Dir das mal an: https://jsfiddle.net/02j3uLhv/

                Kommentar

                Lädt...
                X