CSS abhängig von der aktuellen Seite

Auch ohne für die Seiten ein extra Template anlegen zu müssen, kann man die Seiten unterschiedlich formatieren, in dem man dem Body die entsprechende ID gibt. Ist man z.B. auf der Seite mit der ID 2, so kann man im CSS alle Elemente über
#body_2 ...
definieren. Jetzt brauchen wir nur noch den entsprechenden Body-Tag. Den können wir wie folgt aufbauen:

TypoScript
temp.body = TEXT
temp.body.field = uid
temp.body.wrap = body id=body_|

page.bodyTagCObject  < temp.body
4 Kommentare
#4 Oli schrieb am 20.07.2011 17:43

Mmhh ich bräuchte die ID des Grand Parent, aber ein gpid gibt es nicht. Hat jemand eine Idee wie man das macht?

#3 Chris schrieb am 13.11.2008 08:17

Und so fügt man verschieden CSS für verschieden "Layouts" ein (Seiteneigenschaftselement "Layout"):

 

page = PAGE

#thrColFix ist fuer 3-Spaltlayout - oneColElsCtr ist fuer 1-Spaltlayout

page.bodyTag = <body class="thrColFix">

 

#WENN ES DAS LAYOUT STARTSEITE O D E R POP IST, DANN MACHE FOLGENDES...

[globalVar = TSFE:page|layout = 2]||[globalVar = TSFE:page|layout = 3]

page.bodyTag = <body class="oneColElsCtr" "background-color:white;padding:20px;">

[global]

#2 benny laufer schrieb am 26.09.2007 13:47

...und so kann man das Ganze noch eleganter lösen, da man keine class mehr für den bodyTag benötigt:

 

Einfach folgedes ins Setup-Field setzten und die IDs der Hauptkategoerien angeben. Die Unterkategorien bekommen autom. die ID vom parent:

// CSS Switcher

[PIDinRootline = 1]

page.bodyTag = <body id="wir">

[PIDinRootline = 2]

page.bodyTag = <body id="veranstaltungen">

#1 NCoDer schrieb am 23.06.2007 23:03

Und so kann man allen (direkten) Unterseiten einer Seite eine spezifische class geben:

 

temp.body.field = alias//uid

temp.body.dataWrap = <body id="page_|" class="parent_{field:pid}" >

einen Kommentar schreiben
Typo3