| Jede Seite einzeln über CSS steuerbar | |
| Mittwoch, 28. Juni 2006 | |
|
Es kommt öfters vor, dass man auf unterschiedlichen Seiten andere CSS Formatierungen für ein bestimmtes Element zuweisen möchte. Dies ist durch eine kleine Modifikation im Template möglich.
<body>
Dies ersetzen wir durch:
<body class="seite<?php echo $Itemid ?>">
Nun bekommt der Body-Tag auf jeder Seite eine klasse mit der Item-ID der gerade zu sehenden Seite. Vor der ID ist das Wort "seite" da es bei manchen Browsern zu problemen kommt, wenn eine Klasse mit einer Ziffer beginnt. Hier eine Beispielformatierung der Artikelüberschriften auf der Startseite (id 1):body.seite1 .contentheading { color: blue; }So wird die Formatierung für .contentheading { color: red; }auf der Startseite (bzw. die Seite mit der Item ID 1) überschrieben. Falls es Fragen oder Probleme gibt, kommt in den Chat oder nutzt die Kommentarfunktion. 10.11.2006: Update!Um auf die Frage von noise zurückzukommen, wollen wir das ganze nun mit der sektions id machen, um einer bestimmten sektion ein styling zu geben. Hierzu müssen wir erstmal durch ein DB-Query die Sektions ID ermitteln und übergeben die Ausgabe an eine Variable. <?php $database->setQuery('SELECT sectionid FROM #__content WHERE id = '.$id); $sektion = $database->loadResult(); ?>In der index.php sieht das dann zusammengefasst so aus: <?php $database->setQuery('SELECT sectionid FROM #__content WHERE id = '.$id); $sektion = $database->loadResult(); ?> <body class="sektion<?php echo $sektion ?>">Für einzelne Artikel geht das natürlich auch: <body class="artikel<?php echo $id ?>">
Ebenfalls für Komponenten: (danke für den tipp an newby2000)
<body class="<?php echo $option ?>">
Alles auf einmal, um ein optimale Flexibilität zu erreichen:
<?php $database->setQuery('SELECT sectionid FROM #__content WHERE id = '.$id); $sektion = $database->loadResult(); ?> <body class="sektion<?php echo $sektion ?> artikel<?php echo $id ?> seite<?php echo $Itemid ?> <?php echo $option ?>"> |





