2009-06-24 6 views
0

Wenn Sie den folgenden Code in eine test.html einfügen und mit Firefox durchsuchen, ist es in Ordnung. Aber wenn Sie mit dem IE surfen, können Sie sehen, dass es mehr Platz rechts von <a> Elementen sind .:Padding nicht einmal in IE

<style> 
li { 
    display:inline; 
    margin:0 90px; 
    padding:6px 12px; 
    background:#777777 none repeat scroll 0 0; 
} 



li a { 
    color:#FFFFFF; 
    text-decoration:none; 
    font-weight:bold; 
} 
</style> 


<div id="tabs"> 
    <div class="nav"> 
     <ul> 
      <li><a href="test">test</a></li> 
      <li><a href="test">test</a></li> 
      <li><a href="test">test</a></li> 
      <li><a href="test">test</a></li> 
      <li><a href="test">test</a></li> 
     </ul> 
    </div> 
</div> 

EDIT: Wie man den Text auch im Internet Explorer machen?

+0

Was ist die Frage? – Jason

+0

Verwenden Sie die Anzeige: Block; wenn du eine Marge willst. – James

+0

@salietata, Ich habe meinen Beitrag aktualisiert :) BTW, haben Sie sich angesehen, wie es in IE ist? – omg

Antwort

0

Um Ihre Frage zu beantworten, einfach: Legen Sie alle Ihre li Elemente auf einer einzelnen Zeile oder sie schweben.

+0

Ich kann es nicht glauben, aber nachdem ich alle UL und LIs auf eine einzige Zeile gesetzt habe, funktioniert es! – omg

+0

Dieser Fehler wird bei Verwendung von Float gehen? – omg

0

Ich schaute auf Ihre Quelle und versuchte es für mich selbst.

In Firefox 3.0.11 und Internet Explorer 8 zeigte ich ziemlich identische Seiten.

Eine Sache, die ich sagen kann ist, dass die Seiten anfangs unterschiedlich aussahen, weil meine Browser unterschiedliche Breiten hatten, aber nicht das Randproblem, das Sie hatten. In meinem Fall hat die Größenanpassung des Browsers funktioniert.

Aber das Problem, das Sie haben, ist üblich. Der Internet Explorer zeigt fast immer andere Seiten an, als ein Browser, der normalerweise standardkonform ist. Eine Möglichkeit, die Leute gefunden haben, um dies zu umgehen (und das könnte Ihr Problem sehr gut lösen), besteht darin, ein CSS-Reset-Blatt zu verwenden.

Einige guten sind:

+0

Ich habe versucht, die CSS-Reset-Blatt, aber nicht funktioniert.Es gibt immer noch mehr Platz auf der rechten Seite des Textes als auf der linken Seite. – omg

0

Das Problem zwischen den Browsern, wo das CSS-Box-Modell entscheidet eine unglückliche Meinungsverschiedenheit ist das, was über die Polsterung zu tun:

  • IE verringert den Speicherplatz für den Inhalt innerhalb eines div Wenn Sie das Padding erhöhen, so halten Sie die Div-Größe die gleiche
  • Firefox erhöht die div-Größe mit der Auffüllung, halten Sie die Inhaltsgröße gleich.
+0

Irgendein Weg, um das Ziel zu erreichen, sagen Sie, den Text zentralisiert? – omg

0

Getestet in IE6 scheint es, den Anker-Tags einen zusätzlichen Platz hinzuzufügen. Kopieren Sie es und fügen Sie es ein und Sie werden es selbst sehen. Firefox fügt den zusätzlichen Speicherplatz nicht hinzu.

Sie können den Rand für IE ändern, wenn Sie möchten. Es ist keine perfekte Lösung, aber es kann Ihnen helfen, die Registerkarten ähnlich aussehen zu lassen. Wenn Sie möchten, dass es in allen Browsern identisch ist, können Sie stattdessen immer ein Bild verwenden. Aber versuchen Sie dies:

li a { 
color:#FFFFFF; 
text-decoration:none; 
font-weight:bold; 
} 

*html li a { 
color:#FFFFFF; 
text-decoration:none; 
font-weight:bold; 
margin-right:-3px; 
} 

*+html li a { 
color:#FFFFFF; 
text-decoration:none; 
font-weight:bold; 
margin-right:-3px; 
} 
+0

Aber wenn Sie sich die 6 Tabs von stackoverflow.com ansehen, können Sie sehen, dass es sowohl in IE als auch in Firefox zentriert ist, ohne diesen Hack zu benutzen, oder? – omg

+0

stackoverflow verwendet float: links auf dem li statt display: inline. Ich empfehle Ihnen, das Firebug-Plugin für Firefox zu installieren.Es erleichtert das Debugging und betrachtet, wie andere Websites ihren Code viel einfacher schreiben. – Emily