Hallo
Nehmen wir das Ganze mal auseinander:
ZITAT(tobias82 @ 03.09.2005 - 10:36)
#topnavi {
font-family: trebuchet ms, arial;
font-weight: bold;
font-size: 15;
border: none;
height:27;
}
1. bei
font-family fehlt noch die Angabe einer generischen Schriftart. In diesem Falle wäre das "sans-serif". Der Grund: Wenn bei einem Benutzer keine der angegebenen Schriftarten installiert ist, nimmt der Browser seine Standardschriftart. Die kann aber ganz anders aussehen. Um dem Browser aber zu ermöglichen, die Seite in Hinsicht auf die Schrift zumindest ähnlich darzustellen, gibt man die generische Schriftart an, womit der Browser eine andere, ähnliche Schrift benutzt.
2. Bei
font-size und
height gibst du nach der numerischen Angabe keine Maßeinheit an. In CSS ist dies aber vorgeschrieben, anders als bei entsprechenden HTML-Attributen, bei denen automatisch die Einheit Pixel angenommen wird, wenn keine Einheit notiert ist. Das ist auch der Grund, warum der Moz/FF diese Angaben ignoriert.
ZITAT(tobias82 @ 03.09.2005 - 10:36)
#topnavi li {
display: inline;
}
#topnavi li a {
background: url(button_normal_gif.gif) right;
text-decoration: none;
margin-right: 10;
margin-bottom: 4;
color: black;
padding-right: 50;
padding-top: 5;
padding-bottom: 5;
text-align: center;
}
Um die Navigation in Form einer Liste horizontal anzuzeigen, ist das
display:inline; für die
li-Elemente richtig. Damit geht aber einher, dass man diesen keine Breite mehr zuweisen kann. Dies geht nur für Blockelemente, du hast sie aber (vollkommen richtig) zu Inlineelementen gemacht.
[edit]: i.b.gs Hinweis zu
float ist auch ein Lösungsansatz. Eine gute und reichhaltige Sammlung von Beispielen der CSS-Formatierung von Navigationslisten findest du bei
Listamatic.
[/edit]Daher:
3. Mache die in den
li-Elementen enthaltenen Links (
<a></a>) zu Blockelementen (
display:block;). Somit kannst du ihnen mit z.B.
width:12em; auch eine feste Breite zuweisen.
4. Nur wenn du einem Element eine Breite zuweist, kann der darin enthaltene Text
anders als mit
text-align:left; formatiert werden. Hat das Element keine festgelegte Breite, die größer als der Inhalt ist, ist das Element
nur so breit, wie sein Inhalt. Daher wirkt sich deine Angabe optisch nicht aus. Wenn der MSIE etwas anderes anzeigt, zeigt er es
falsch an!
ZITAT(tobias82 @ 03.09.2005 - 10:36)
#topnavi li a:hover {
width: 110;
height: 27;
margin-right: 10;
margin-bottom: 4;
padding-right: 50;
padding-top: 5;
padding-bottom: 5;
}
#topnavi li a:active {
width: 110;
height: 27;
margin-bottom: 4;
margin-right: 10;
padding-right: 50;
padding-top: 5;
padding-bottom: 5;
}
Auch hier gelten die obigen Punkte:
- keine Maßeinheiten angegeben
-
width:...; hat keine Wirkung in Inlineelementen.
Wobei die Breite bei
#topnavi li a angegeben werden sollte, da sie sich ja wohl nicht bei einer Zustandsänderung (
:link,
:visited,
:hover,
:active,
:focus) verändern soll. Sie muss somit nur einmal angegeben werden.
Und noch einmal zum Mitmeißeln:
- Wenn der MSIE etwas so anzeigt, wie du es willst, es aber in anderen, modernen Browsern "falsch" angezeigt wird, heißt das (fast immer) nicht, dass er das richtig anzeigt.
- Setze dich mit den
Grundlagen von CSS auseinander.
- Benutze im Stadium der optischen Gestaltung der Seite den FF als primären Testbrowser. Er hält sich am dichtesten an die Standards.
- Danach kannst du die Darstellungsfehler [1] z.B. im MSIE mit
CSS-Browserweichen oder Conditional-Comments abfangen.
[1] Deren Gründe du ja durch das Erlernen der CSS-Grundlagen identifizieren kannst. :-)
Tschö, Auge