Deaktivieren von Drupal CSS für bestimmte Regionen
Eingetragen von codab (16)
am 11.03.2012 - 12:40 Uhr in
am 11.03.2012 - 12:40 Uhr in
Hallo liebe Drupal-Gemeinde,
ich möchte gerne die Standard-CSS für eine bestimmte Region deaktivieren. Beispiel:
Ich habe in der page.tpl.php folgenden Code eingefügt:
<nav class="navbar"> <!--navbar-fixed-top-->
<div class="navbar-inner">
<div class="container-fluid">
<div class="nav-collapse">
<?php print render($page['navbar']); ?>
</div><!--/.nav-collapse -->
</div>
</div>
</nav>
Nun möchte ich aber nicht, dass die Region "navbar" von den drupaleigenen CSS überschrieben wird. Also Drupal fügt die Klasse "region region-navbar" und weitere Klassen hinzu und die möchte ich gerne deaktivieren.
Welche Möglichkeiten habe ich, ohne mein CSS noch mehr erweitern zu müssen? Kann ich die CSS über die template.php für bestimmte Regionen ausschalten oder habt ihr da noch andere einfache Möglichkeiten?
Vielen Dank und beste Grüße
codab
- Anmelden oder Registrieren um Kommentare zu schreiben
CSS-Klassen und ID's kann man
am 11.03.2012 - 19:02 Uhr
CSS-Klassen und ID's kann man nicht deaktvieren, sondern nur überschreiben.
Wie das so geht, ist hier schon in unzähligen Threads und Videos besprochen worden.
z.B. in einem Thread vom 09.03.2012 (das ist ja nur zwei Tage her), ein bißchen umschauen wäre echte nicht schlecht.
Gruß
Berthold Lausch
Hallo, vielen Dank für die
am 12.03.2012 - 08:38 Uhr
Hallo,
vielen Dank für die Antwort. Ich habe schon gesucht und da ich nichts gefunden habe, entstand die Frage, die ich wohl nicht ausführlich beschrieben habe.
Ich möchte nicht überschreiben, dass das geht, weiß ich.
Man kann CSS-Dateien komplett über die Template-Datei deaktivieren:
function THEME_css_alter(&$css) {
unset($css[drupal_get_path('module', 'system') . '/system.messages.css']);
unset($css[drupal_get_path('module', 'system') . '/system.menus.css']);
}
Aber dann sind die ganz weg und ich möchte dies nur für bestimmte Regionen realisieren.
Dennoch vielen Dank; vllt. hat ja doch noch jemand eine Idee/Antwort auf meine Frage.
Beste Grüße
codab
Wie soll das
am 12.03.2012 - 09:34 Uhr
Wie soll das funktionieren?
Entweder die CSS-Dateien sind eingebunden oder eben nicht ... was anderes gibt es da nunmal leider nicht.
Da bei Drupal die CSS-Dateien
am 12.03.2012 - 09:39 Uhr
Da bei Drupal die CSS-Dateien nicht nach Regionen organisiert sind ist das über das deaktivieren von einzelnen CSS-Files nicht zu machen. Also bleibt wirklich nur das Überschreiben der bestehenden CSS-Anweisungen, wo es nötig ist. Dabei solltest Du Selektoren bauen, in denen die Region vorkommt (Irgendwo in der HTML-Struktur gibt es dazu ein div mit einer passenden Klasse oder ID), damit die Zuordnung nur auf Tags in der spezielle Region zutrifft.
Beste Grüße
Werner
das ist das C im CSS
am 12.03.2012 - 10:03 Uhr
Der Sinn von CSS ist genau das Ueberschreiben.
Das ist, was das englische Wort Cascadable meint.
Also mit einer Funktion in
am 20.03.2012 - 13:43 Uhr
Also mit einer Funktion in der template.php habe ich es zumindest schon mal hinbekommen, dass dem
<ul>-
Tag eine andere Klasse zugewiesen wird. Entgegen der bisherigen Antworten gibt es also doch Möglichkeiten, man muss nur lang genug suchen. Nun gibt es bestimmt auch Funktionen, die die anderen Klassen in einem Menü überschreiben und somit eigene Klassen und nicht die drupaleigenen Klassen eingesetzt werden können; vllt. hat da ja noch der ein oder andere einen Überblick/Tipp.function THEME_menu_tree($variables) {
unset($variables['element']['#attributes']['class']);
// Add unique identifier
static $item_id = 0;
$item_id += 1;
$id .= 'id="' . 'menu' . $item_id . '"';
// Add semi-unique class
$class .= ' ' . preg_replace("/[^a-zA-Z0-9]/", "", strip_tags($link));
return '<div><ul ' . $id . ' class="nav">' . $variables['tree'] . '</ul></div>';
}
codab schrieb Entgegen der
am 20.03.2012 - 13:59 Uhr
Entgegen der bisherigen Antworten gibt es also doch Möglichkeiten, man muss nur lang genug suchen.
Da würde ich nicht zustimmen.
Bei einem Tag eine CSS-Klasse oder CSS-Id zu ergänzen ist eine durchaus gänge Art und Weise, wie man Ausgabe in Drupal themen kann.
Das hat wirklich rein gar nichts mit dem unmöglichen Deaktivieren einer CSS-Eigenschaft zu tun.
Gruß
Berthold Lausch
Klar kannst Du mittels Theme
am 20.03.2012 - 14:01 Uhr
Klar kannst Du mittels Theme Funktionen in der template.php alles ändern, zu dem Drupal oder die Contributed-Modules Theme-Funktionen bereit stellen. Mit Einträgen in einer CSS-Datei kann ich aber den von Dir gewünschten Effekt einfacher erreichen. Du solltest Dich besser in CSS einarbeiten. Da hast Du auf Dauer mehr von, als jedesmal mittels PHP in der template.php-Datei rumzubasteln.
Beste Grüße
Werner