Style Sheets von anderen Modulen und Basis-Themes überschreiben
Jedes Modul, sei es nun Drupal Core oder aus dem contrib-Bereich wird eine Standardausgabe mitbringen. Diese enthält den eigentlichen HTML Code und zusätzliche style sheets. Die auf Erweiterbarkeit ausgelegte Struktur von Drupal ermöglicht dem Themer, sämtliche an den Browser ausgelieferten Inhalte nach eigenen Vorstellungen zu verändern. Hierzu gehört auch die Standardausgabe der Module, die ähnlich den themebaren Funktionen und Templates überschrieben werden kann. Überschreiben meint hierbei jedoch nicht die direkte Änderung der mitgelieferten Stylesheets, vielmehr können die Änderungen innerhalb des eigenen Themes vorgenommen werden.
Überschreiben von Stylesheets aus Modulen (Core und Contrib)
Um ein Modul-Stylesheet zu überschreiben muss es zuerst in der .info Datei des Themes registriert werden. Im folgenden wir die "system-menus.css" Stylesheetdatei beispielhaft dargestellt. Sie befindet sich in "modules/system/system-menus.css". Mit dem folgenden Eintrag in der .info Datei des Themes wird die Orginialdatei ignoriert und zukünftig durch die Theme-eigene Datei ersetzt:
stylesheets[all][] = system-menus.css
Wenn ein Module-Stylesheet überschrieben werden soll muss die Datei im Theme-Verzeichnis vorhanden und korrekt geschrieben sein. Sollte die Datei nicht vorhanden sein, wird das zu überschreibende Stylesheet deaktiviert (was auch seit Drupal 6.3 so bewusst umgesetzt ist).
Noch ein paar Anmerkungen:
- Wenn Core-CSS Dateien überschrieben werden, lädt das System die "style.css" nicht mehr. Aus der "style.css" benötigte Standardwerte müssen also explizit gesetzt werden.
- Die Medientypangabe der überschreibenden Einträge müssen mit dem Original übereinstimmen.
- Innerhalb der Stylesheet-Datei verlinkte Inhalte müssen überarbeitet werden. Besonders die Angaben zu "url()" und "@import" sollten lieber doppelt geprüft werden, ob sie auf die richtige Quelle verweisen.
- Die Reihenfolge in der die Stylesheets im HTML Kopf geladen werden wird durch das überschreiben geändert. Möglicherweise könnte dies Änderungen bei anderen CSS Definitionen nach sich ziehen.
- Einige Stylesheets werden dynamisch geladen und nur bei Bedarf hinzugefügt. Das Überschreiben dieser Stylesheets in der .info Datei führt dazu, dass sie bei jedem Aufruf automatisch geladen werden.
- Sollte nur einige kleine Anpassungen an den Originaldateien notwendig sein, bietet es sich an diese Änderungen mit CSS Selektoren zu überschreiben und nicht die komplette Datei.
Nach diesen Änderungen ist das Löschen des Caches notwendig. Dies kann unter Verwalten -> Einstellungen -> Leistung geschehen, indem der Button "Cache leeren" am unteren Ende der Seite geklickt wird.
Überschreiben der Stylesheets eines Basis-Themes
Die folgende Anmerkungen gelten für Sub-Themes. Um die Weitergabe des Basis-Theme Stylesheets an das Sub-Theme zu verhinden kann es erneut in der .info Datei des Sub-Themes definiert werden:
stylesheets[all][] = masterStyle.css
Hier greift die selbe Methodik wir auch im vorhergehenden Absatz; Existiert die Datei innerhalb des Sub-Themes wird sie geladen. Existiert sie nicht, führt die Aufnahme in der .info Datei zum Ignorieren der Stylesheet des Basis-Themes.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Woche 17 Stunden
vor 1 Woche 17 Stunden
vor 1 Woche 21 Stunden
vor 1 Woche 1 Tag
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen
vor 1 Woche 3 Tagen
vor 1 Woche 5 Tagen
vor 2 Wochen 1 Tag