[gelöst] Zufälliges CSS?
am 08.05.2015 - 16:49 Uhr in
Hi.
Ich würde gern mehrere CSS erstellen und diese dann zufällig laden lassen. Hintergrund ist, dass ich z.b. 3 Farbvarianten habe…
Hat jemand eine Idee, wie ich das umsetzen kann?
Danke und Grüße!
Alex
- Anmelden oder Registrieren um Kommentare zu schreiben

Für dein Vorhaben benötigst
am 08.05.2015 - 19:09 Uhr
Für dein Vorhaben benötigst du noch nicht einmal mehrere CSS Dateien - hier würde auch eine Datei ausreichen. Das kleine Beispiel über die preprocess_page beschreibt beide Wege.
Du kannst hier einfach in deinem Theme über die Funktion template_preprocess_page eine weiter Klasse auf das HTML Body Element setzen.
<?php
function mytheme_preprocess_html(&$vars) {
// Set body class for styling via CSS.
$body_classes = array("green", "blue", "red", "white", "black");
$random_bodyclass = array_rand($input, 1);
$vars['classes_array'][] = $random_bodyclass[0];
// Or add a custom CSS file to your theme.
$theme_path=path_to_theme();
drupal_add_css($theme_path.'/css/' . $random_bodyclass[0] . '.css');
}
?>
HIer solltest du aber prüfen, ob dies auch zuverlässig beim Caching der Seite funktioniert - sonst müsstest du den Umweg über Javascript gehen. Hier wäre es dann aber auch möglich dem body Tag eine weitere Klasse zuzufügen.
Über Javascript sieht es ähnlich aus:
(function($) {Drupal.behaviors.randomBodyClass = {
attach: function (context, settings) {
var classes = ["body--green", "body--blue", "body--red", "body--white", "body--black"];
var randomnumber = Math.floor(Math.random()*classes.length);
$('body').addClass(classes[randomnumber]);
}
};
})(jQuery);
Im CSS kannst du dann einfach auf die definierten Klassen zugreifen und dann die verschiedenen Farbvarianten laden lassen.
SteffenR
Super, vielen Dank! Das ist
am 08.05.2015 - 20:24 Uhr
Super, vielen Dank! Das ist natürlich viel einfacher so…
Beste Grüße!