div#header oder #header?

Hallo,
in einem Buch, welches ich gerade lese steht in einem Beispielquellcode:

div#header { width:100px; margin:auto; }

Ich hätte es jedoch ohne dem ‚div‘ geschrieben. Bringt nun erstere Variante einen Vorteil, oder ist es irrelevant, wie man es schreibt?

Gruß, Silar

Afaik ist das nur eine Art „Absicherung“. Mit div#header gehst du ganz sicher, dass der Style nur angewandt wird, wenn ein div-Container die ID bekommt. Bei #header könnte es vorkommen, dass du einem Bild ebenfalls noch die ID header gibst (wobei dann zwei IDs vorhanden wären, was allerdings nur zu Validierungs-, nicht aber zu Darstellungsfehlern führt) und es ebenfalls den Style bekommt. Außerdem sieht man mit der ersten Variante sofort, dass es sich bei #header normalerweiße um einen div-Container handelt, und kann dementsprechend damit umgehen.

Ah, okay. Erscheint auch nur logisch, Danke. :wink:

Kannst Du das garantieren, dass syntaktische Fehler nicht zu Darstellungsfehlern führen? So weit würde ich mich nicht aus dem Fenster lehnen!

Aber Stylesheets gelten üblicherweise auch für mehrere Seiten und da kann es theoretisch durchaus sinnvoll sein, wenn es auf zwei unterschiedlichen Seiten unterschiedlich aussehende „#header“ gibt.

Diese #header können dann aber nur angesprochen werden, wenn man sie anhand ihres Elements (bsp. div#header und img#header) oder ihrer Vorfahrenelemente (div > #header, h1 > #header) unterscheidet. Denn zweimal nur „#header“ im selben CSS-Dokument wird wohl kaum funktionieren. In diesem Fall spricht nichts gegen unterschiedliche #header, solange man nur einen davon auf jeder Seite hat, ansonsten müsste man ja eh auf Klassen umsteigen.