lab-o-logÜber Webdesign, Barrierefreiheit,
TYPO3 und was sonst wichtig ist

Zum Thema auf Twitter

04:29 schrieb cmscrawler

http://t.co/zdB1to1q: Change from TYPO3 to Joomla! http://t.co/zdB1to1q #cms

04:29 schrieb cmscrawler

http://t.co/uFRqC22k: Change from TYPO3 to xtCommerce http://t.co/uFRqC22k #cms

04:27 schrieb LiLii_Css

#FelizCumpleRickyTrech !!!!! :D

04:00 schrieb cmscrawler

http://t.co/3Fyfe5gD: Change from Dynamicweb to TYPO3 http://t.co/3Fyfe5gD #cms

03:58 schrieb scriptlancescoc

Quick Css Job http://t.co/kdNEfYV9

21.06.2005, 09:22 Uhr CSS, TYPO3

CSS-Page-IDs

Durch die Vergabe von IDs an den BODY-Tag ergeben sich flexible Stylingmöglichkeiten

Mit IDs werden normalerweise bestimmte Bereiche einer Website gekennzeichnet ? z.B. Die Navigation oder der Inhaltsbereich. IDs lassen sich aber auch sehr gut nutzen, um einzelne Seiten oder Bereiche eine Website kennzeichnen. Dazu wird einfach dem body-Tag eine ID zugewiesen. Je nach Anwendungsbereich entweder einzelnen Bereichen (Beispiel 1) oder jeder einzelnen Seite (Beispiel 2).

Beispiel 1: Wiederverwendbarer Code durch Bereichs-IDs

In einem CSS-basierenden Layout lassen sich unterschiedlich gestaltete Bereiche einer Website (typischerweise z.B. durch unterschiedliche Farben und/oder eine unterschiedliche Kopfgrafik) mit identischem HTML-Code nur durch Verwendung bereichsspezifischer IDs gestalten.
<body id='produkte'>
leitet beispielsweise einen Bereich mit Produktinformationen ein. Hier kann die Hintergrundfarbe des Containers #content über
#produkte #content {
background-color: #ff4356; }
bestimmt werden. Für den Bereich "Unser Unternehmen" soll eine andere Farbe verwendet werden. Nichts leichter als das:
#company #content {
background-color: #77654e; }
sorgt für verschiedene Farben bei gleichem HTML-Code (bis auf eben die unterschiedliche ID im body). Das funktioniert natürlich auch für Hintergrundgrafiken und andere CSS-Eigenschaften bis hin zu kompletten Layouts.

Beispiel 2: Individuelles Styling von häufig vorkommenden Elementen

Bei der Nutzung eines Content-Management-Systems haben Entwickler oft das Problem, dass der auszugebende Code für ein bestimmtes Element - z.B. eine Tabelle (natürlich eine Datentabelle...) für die ganze Site festgelegt werden muss. So sieht dieses Element dann auf allen Seiten gleich aus - was in vielen Fällen auch sinnvoll ist.

Aber oft auch nicht. Um bei unseren Tabellen zu bleiben, könnte neben einer Standardtabelle eine inverse Version auf Seiten mit dunklem Hintergrund erforderlich, so wie eine weitere schmalere Version für die Marginalie. Dies ließe sich im Prinzip auch durch unterschiedliche Tabellenzuweisungen im Backend oder Klassen für die jeweiligen Tabellen lösen, aber viel einfacher und flexibler ist es, den gleichen HTML-Code auf jeder Site zu haben und die Unterscheidung allein mit CSS zu realisieren.

Dazu wird jeder body-Tag mit einer individuellen ID versehen. Bei CMS ist das einfach, da i.d.R. jede Seite eine interne Kennung hat. Diese kann ausgelesen werden und als ID für den body verwendet werden (für die Validität benötigen wir ggf. noch einen Buchstaben vor der Zahl). Nun kann mit
<body id='p054'>

und im Stylesheet
#p054 table { ... }
jedes Element (hier die Tabelle) seitenindividuell gestaltet werden.

Zurück zu 'Lab-O-Log'

Kommentare

Kommentare 1 - 5 (von 6)
  • Gravatar:

    Kontrollfeld BLOG schrieb am Mittwoch, 17.05.06 um 08:32 Uhr

    […] für unterschiedliche Seiten festzulegen. Eine detaillierte Beschreibung liefert folgender Blog Der Beitrag wurde am Montag 27. Juni 2005 […]

  • Gravatar: Kai

    Kai Laborenz schrieb am Mittwoch, 17.05.06 um 08:30 Uhr

    @Björn: Das geht natürlich auch.
    Die Klasse geht dann auch in den body-Tag (da scheint mein hilfsbereiter Parser etwas aus Deinem Kommentar entfernt zu haben…)?

  • Gravatar: Kai

    Kai Laborenz schrieb am Mittwoch, 17.05.06 um 08:30 Uhr

    @SimonWpt: Der Clou der Body-ID ist ja, dass sich ganze Schemata mit Hilfe einer einzigen Änderung im Markup umstellen lassen (Beispiel 1).
    Mit Deinem Markup würdest Du für #content z.B. die Breite und Schriftgröße für alle Seiten festlegen und kannst dann mit unterschiedlichen IDs im body z.B. verschiednen Hintergrundfarben oder Grafiken für einzelnen Seiten (Bsp. 2) oder Bereiche festlegen.

  • Gravatar: Björn

    Björn Wolf schrieb am Mittwoch, 17.05.06 um 08:28 Uhr

    Hallo Kai,

    für bestimmte, sehr umfangreiche CMS-Projekte benutze ich eigentlich lieber den Seitentyp als Klasse im -Tag und zusätzlich die ID als eindeutigere Spezifikation.

    So kann man grob die Seitentypen definieren, jedoch bestimmte, auf einem Typ aufbauende, Seiten mit der ID überschreiben und muss die Definition nicht um jene ID erweitern.

  • Gravatar:

    SimonWpt schrieb am Mittwoch, 17.05.06 um 08:26 Uhr

    Was spricht dagegen?
    body #content {
    background-color: #ff4356;
    }

    oder

    #content {
    background-color: #ff4356;
    }

Selbst kommentieren:


CAPTCHA-Bild zum Spam-Schutz  

Wenn das Wort nicht lesbar ist, kannst Du hier ein neues Wort laden.