Menü mit DIV & CSS wird mit IE falsch angezeigt

Status
Nicht offen für weitere Antworten.

Destruktor

Grünschnabel
Ich habe versucht mein "Header"-Menü ohne Tabellen, dafür mit DIV und CSS zu erstellen.

Mit Firefox und Opera sieht es soweit auch ordentlich aus, lediglich mit dem Internet Explorer ist es etwas zerschossen.

Beispielseite: http://v3.wsv-verden-jugend.de

Hier der Code:

Header Menü
Code:
<div id="header_rand_links"></div>
<div id="header_rand_rechts"></div>
<div class="header_mitte">
	<div id="header_rand_oben"><img src="/grafiken/blank.gif" height="5" width="200" alt=""></div>
	<div id="header_titel"><a href="/index.html" title="Startseite [ALT + h]" accesskey="h" tabindex="1">Jugendseite des Wassersportverein Verden e.V.</a></div>
	<div id="header_untertitel">Informationen &uuml;ber Kanu Kajak paddeln</div>
	<div class="header_linkleiste">
			<a class="header_link" href="/aktuelles.html" title="Aktuelles [ALT + a]" accesskey="a">Aktuelles</a>
			<a class="header_link" href="/information_ueber_den_wsv_verden.html" title="Informationen [ALT + i]" accesskey="i">Informationen</a>
			<a class="header_link" href="/forum/" title="Forum [ALT + f]" accesskey="f">Forum</a>
			<a class="header_link" href="/fotoalbum/" title="Fotoalbum [ALT + p]" accesskey="p">Fotoalbum</a>
			<a class="header_link" href="/kontakt.html" title="Kontakt [ALT + k]" accesskey="k">Kontakt</a>
	</div>
</div>

und der Teil aus der CSS Datei:
Code:
 /* Header Style */

#header_rand_links {
	background-image: url(/grafiken/header/rand_links.gif);
	background-repeat: no-repeat;
	height: 90px;
	width: 30px;
	float:left;
}

#header_rand_rechts {
	background-image: url(grafiken/header/rand_rechts.gif);
	background-repeat: no-repeat;
	height: 90px;
	width: 30px;
	float: right;
}

.header_mitte{
	margin: 0px 30px 0px 30px;
}

#header_rand_oben{
	background-image: url(grafiken/header/streifen_oben.gif);
}
#test_titel{
	background-image: url(grafiken/header/title.gif);
	height: 40px;
}
#header_titel, #header_titel a:link, #header_titel a:visited, #header_titel a:hover, #header_titel a:active, #header_titel a:focus {
	font-family: "Times New Roman", Times, serif;
	text-align: center;
	font-weight:bold;
	white-space: nowrap;
	vertical-align: middle;
	display:block;
	background-repeat:repeat-x;
	color: #000066;
	text-decoration: none;
	font-size: 150%;
	line-height: 40px;
	background-image: url(grafiken/header/title.gif);
	height: 40px;
}

#header_untertitel, #header_untertitel a:link, #header_untertitel a:visited, #header_untertitel a:hover, #header_untertitel a:active, #header_untertitel a:focus {
	font-family: "Times New Roman", Times, serif;
	text-align: center;
	font-weight:bold;
	white-space: nowrap;
	vertical-align: middle;
	display:block;
	background-repeat:repeat-x;
	color: #000066;
	text-decoration: none;
	font-size: 88%;
	line-height:15px;
	background-image: url(grafiken/header/subtitle.gif);
	height: 15px;
}

.header_linkleiste a:link, .header_linkleiste a:visited, .header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active {
	display:block;
	text-align: center;	
	text-decoration: none;
	font-size: 125%;
	line-height: 30px;
	height: 30px;
	border-top-width: 60px;
	border-right-width: 30px;
	border-left-width: 30px;
	width: 20%;
}

.header_linkleiste, .header_linkleiste a:link {
	color: #000066;
	background-image: url(grafiken/header/unten.gif);
}

.header_linkleiste a:visited {
	color:#00CCFF;
	background-image: url(grafiken/header/unten.gif);
}

.header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active{
	color:#0066FF;
	background-image: url(grafiken/header/unten_hover.gif);
}

a.header_link:link, a.header_link:visited, a.header_link:hover, .header_link a:focus, .header_link a:active {
	float: left;
	width: 20%;
}


Am Anfang war der obere Streifen auch zu schmal. Nachdem ich dann die Höhe in der CSS Datei entfernt habe und dafür eine leere Grafik in der der gleichen Höhe in der html Datei eingefügt habe, war die Breite passend! Leider geht das mit dem "Titel-Div" nicht, da dort auch ein Link mitdrin ist und wenn ich davor eine Grafik setze paßt es noch weniger als jetzt..
 
Nimm mal die Grenzen der Navigationsmenüelemente raus.

Ich nehme mal an Du meinst:
Code:
.header_linkleiste a:link, .header_linkleiste a:visited, .header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active {
	display:block;
	text-align: center;	
	text-decoration: none;
	font-size: 125%;
	line-height: 30px;
	height: 30px;
	border-top-width: 60px;
	border-right-width: 30px;
	border-left-width: 30px;
	width: 20%;
}

Da habe ich jetzt die Zeilen
Code:
	height: 30px;
	border-top-width: 60px;
	border-right-width: 30px;
	border-left-width: 30px;
	width: 20%;

entfernt. Sieht aber noch genauso aus..
 
Hi,

werden Elemente mit float platziert und daneben weitere Elemente mit normalen Textfluss
angeordnet, tritt im IE der sogenannte 3-Pixel-Bug auf. Diesem kannst du entgegenwirken, indem
du den linken bzw. rechten Abstand korrigierst und dem "normal" positionierten Element eine
geringe Starthöhe mitgibst - der IE passt die Höhe automatisch an den Inhalt an.

Den oberen Rand solltest du mit einem formatierten Leerzeichen füllen. Dieses erhält über die
CSS-Eigenschaften font-size und line-height minimale Werte zugewiesen. Anschliessend
ist es bequem möglich, die Höhe einzustellen.

Weiterhin habe ich ein neues Element mit der Klasse clearDiv erstellt. Dieses muss im DIV
mit der Klasse header_linkleiste ganz ans Ende eingefügt werden. Damit wird der normale
Textfluss wieder hergestellt und somit das umliegende DIV auf die richtige Höhe gestreckt. Als Folge
verschwinden die Streifen zwischen den Navigationspunkten.

Ich habe dein CSS überarbeitet und die Änderungen weitestgehend kommentiert.
Code:
#header_rand_links {
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/rand_links.gif);
  background-repeat: no-repeat;
  height: 90px;
  width: 30px;
  float:left;
}
/* IE: 3-Pixel-Gap (rechten Abstand anpassen) */
* html #header_rand_links{ margin-right: -3px;}

#header_rand_rechts {
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/rand_rechts.gif);
  background-repeat: no-repeat;
  height: 90px;
  width: 30px;
  float: right;
}
/* IE: 3-Pixel-Gap (linken Abstand anpassen) */
* html #header_rand_rechts{ margin-left: -3px;}

.header_mitte{ margin: 0px 30px 0px 30px;}

/* IE: 3-Pixel-Gap (Workaround mit dyn. Höhe) */
* html .header_mitte{ height: 1%;
                      margin: 0;}

#header_rand_oben{
  background: url(http://v3.wsv-verden-jugend.de/grafiken/header/streifen_oben.gif) 0 0 repeat-x;
  /* Höhe nicht über Spacer, sondern über formatiertes Leerzeichen */
  font-size: 1px;
  line-height: 0;
  height: 5px;
}
#test_titel{
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/title.gif);
  height: 40px;
}

#header_titel, #header_titel a:link,
#header_titel a:visited, #header_titel a:hover,
#header_titel a:active, #header_titel a:focus {
  font-family: &quot;Times New Roman&quot;, Times, serif;
  text-align: center;
  font-weight:bold;
  white-space: nowrap;
  vertical-align: middle;
  display:block;
  background-repeat:repeat-x;
  color: #000066;
  text-decoration: none;
  font-size: 150%;
  line-height: 40px;
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/title.gif);
  height: 40px;
}

#header_untertitel, #header_untertitel a:link,
#header_untertitel a:visited, #header_untertitel a:hover,
#header_untertitel a:active, #header_untertitel a:focus {
  font-family: &quot;Times New Roman&quot;, Times, serif;
  text-align: center;
  font-weight:bold;
  white-space: nowrap;
  vertical-align: middle;
  display:block;
  background-repeat:repeat-x;
  color: #000066;
  text-decoration: none;
  font-size: 88%;
  line-height:15px;
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/subtitle.gif);
  height: 15px;
}

.header_linkleiste a:link, .header_linkleiste a:visited,
.header_linkleiste a:hover, .header_linkleiste a:focus,
.header_linkleiste a:active {
  display:block;
  text-align: center;
  text-decoration: none;
  font-size: 125%;
  line-height: 30px;
  height: 30px;
  width: 20%;
}

.header_linkleiste, .header_linkleiste a:link {
  color: #000066;
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/unten.gif);
}

.header_linkleiste a:visited {
  color:#00CCFF;
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/unten.gif);
}

.header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active{
  color:#0066FF;
  background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/unten_hover.gif);
}

a.header_link:link,
a.header_link:visited,
a.header_link:hover,
.header_link a:focus,
.header_link a:active { float: left;
                        width: 20% !important /* Non-IE */;
                        width: 19.9%; /* IE */}

/* Stellt normalen Textfluss wieder her */
.clearDiv{ font-size: 1px;
           line-height: 0;
           height: 0;
           clear: both;}
HTML - DIV-Element (header_linksleiste):
HTML:
<div class="header_linkleiste">
  <!-- Bisherige Navigations-Elemente -->
  <a class="header_link" href="./kontakt.html" title="Kontakt [ALT + k]" accesskey="k">Kontakt</a>
  <div class="clearDiv">&nbsp;</div>
</div>
Erfolgreich getestet in IE 5.x, IE 6, Firefox 1.03, Netscape 6.2 und 7.1 sowie im Opera 7.54.
Opera 6.02 stellt die Box korrekt dar, hat aber Probleme mit der prozentualen Aufteilung der
Navigationspunkte - sind rechtsbündig ausgerichtet.

Ciao
Quaese
 
Es wird langsam!

Danke

Eine kleine Schönheitslücke ist jedoch geblieben (sowohl im IE, als auch Firefox)

--> http://v3.wsv-verden-jugend.de



CSS Datei:
Code:
/* Header Style */

#header_rand_links {
	background-image: url(/grafiken/header/rand_links.gif);
	background-repeat: no-repeat;
	height: 90px;
	width: 30px;
	float:left;
}

* html #header_rand_links{ margin-right: -3px;}

#header_rand_rechts {
	background-image: url(grafiken/header/rand_rechts.gif);
	background-repeat: no-repeat;
	height: 90px;
	width: 30px;
	float: right;
}

* html #header_rand_rechts{ margin-left: -3px;}

.header_mitte{
	margin: 0px 30px 0px 30px;
}

* html .header_mitte{ 
	height: 1%;
    margin: 0;
}
			 
/* ersetzt durch nachfolgende definition  #header_rand_oben{
	background-image: url(grafiken/header/streifen_oben.gif);
}*/

#header_rand_oben{
  background: url(http://v3.wsv-verden-jugend.de/grafiken/header/streifen_oben.gif) 0 0 repeat-x;
  /* Höhe nicht über Spacer, sondern über formatiertes Leerzeichen */
  font-size: 1px;
  line-height: 0;
  height: 5px;
}

#header_titel, #header_titel a:link, #header_titel a:visited, #header_titel a:hover, #header_titel a:active, #header_titel a:focus {
	font-family: "Times New Roman", Times, serif;
	text-align: center;
	font-weight:bold;
	white-space: nowrap;
	vertical-align: middle;
	display:block;
	background-repeat:repeat-x;
	color: #000066;
	text-decoration: none;
	font-size: 150%;
	line-height: 40px;
	background-image: url(grafiken/header/title.gif);
	height: 40px;
}

#header_untertitel, #header_untertitel a:link, #header_untertitel a:visited, #header_untertitel a:hover, #header_untertitel a:active, #header_untertitel a:focus {
	font-family: "Times New Roman", Times, serif;
	text-align: center;
	font-weight:bold;
	white-space: nowrap;
	vertical-align: middle;
	display:block;
	background-repeat:repeat-x;
	color: #000066;
	text-decoration: none;
	font-size: 88%;
	line-height:15px;
	background-image: url(grafiken/header/subtitle.gif);
	height: 15px;
}

.header_linkleiste a:link, .header_linkleiste a:visited, .header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active {
	display:block;
	text-align: center;	
	text-decoration: none;
	font-size: 125%;
	line-height: 30px;
	height: 30px;

}

.header_linkleiste, .header_linkleiste a:link {
	color: #000066;
	background-image: url(http://v3.wsv-verden-jugend.de/grafiken/header/unten.gif);
}

.header_linkleiste a:visited {
	color:#00CCFF;
	background-image: url(grafiken/header/unten.gif);
}

.header_linkleiste a:hover, .header_linkleiste a:focus, .header_linkleiste a:active{
	color:#0066FF;
	background-image: url(grafiken/header/unten_hover.gif);
}

a.header_link:link, a.header_link:visited, a.header_link:hover, .header_link a:focus, .header_link a:active {
	float: left;
    width: 20% !important /* Non-IE */;
    width: 19.9%; /* IE */
}

/* Stellt normalen Textfluss wieder her */
.clearDiv{ font-size: 1px;
           line-height: 0;
           height: 0;
           clear: both;
}

HTML Datei:
Code:
<div id="header_rand_links"></div>
<div id="header_rand_rechts"></div>
<div class="header_mitte">
	<div id="header_rand_oben"><img src="/grafiken/blank.gif" height="5" width="200" alt=""></div>
	<div id="header_titel"><a href="/index.html" title="Startseite [ALT + h]" accesskey="h" tabindex="1">Jugendseite des Wassersportverein Verden e.V.</a></div>
	<div id="header_untertitel">Informationen &uuml;ber Kanu Kajak paddeln</div>
	<div class="header_linkleiste">
			<a class="header_link" href="/aktuelles.html" title="Aktuelles [ALT + a]" accesskey="a">Aktuelles</a>
			<a class="header_link" href="/information_ueber_den_wsv_verden.html" title="Informationen [ALT + i]" accesskey="i">Informationen</a>
			<a class="header_link" href="/forum/" title="Forum [ALT + f]" accesskey="f">Forum</a>
			<a class="header_link" href="/fotoalbum/" title="Fotoalbum [ALT + p]" accesskey="p">Fotoalbum</a>
			<a class="header_link" href="/kontakt.html" title="Kontakt [ALT + k]" accesskey="k">Kontakt</a>
	</div>
	<div class="clearDiv">&nbsp;</div>
</div>
 
Zuletzt bearbeitet:
Hi,

zieh mal das Element mit der Klasse clearDiv in den Container mit den Links (header_linkleiste).
HTML:
<div class="header_linkleiste">
  <a class="header_link" href="/aktuelles.html" title="Aktuelles [ALT + a]" accesskey="a">Aktuelles</a>
  <a class="header_link" href="/information_ueber_den_wsv_verden.html" title="Informationen [ALT + i]" accesskey="i">Informationen</a>
  <a class="header_link" href="/forum/" title="Forum [ALT + f]" accesskey="f">Forum</a>
  <a class="header_link" href="/fotoalbum/" title="Fotoalbum [ALT + p]" accesskey="p">Fotoalbum</a>
  <a class="header_link" href="/kontakt.html" title="Kontakt [ALT + k]" accesskey="k">Kontakt</a>
  <div class="clearDiv">&nbsp;</div>
</div>
Ciao
Quaese
 
Danke !

Ein mehrere Monate dauender Irrweg hat ein Ende :)

So ganz weiß ich nicht WARUM es funktioniert, aber es funktioniert :)
 
Status
Nicht offen für weitere Antworten.
Zurück