2017-08-24 3 views
0

Die folgende geschieht (font-family:'Arial',sans-serif;):CSS - Schriftart Rendering unterschiedliche Größe abhängig vom Browser des Benutzers verursacht unterschiedliche Menülänge - wie zu beheben?

IE: enter image description here

Firefox: enter image description here

Chrome: enter image description here

Die CSS ist das gleiche für alle Browser - es so ist :

#main_menu ul { 
    height:41px; 
    width:960px; 
    font-size:13px; 
    font-weight:bold; 
    list-style-type:none; 
    display:flex; 
    flex-direction: row; 
} 

#main_menu ul li a { 
    display:block; 
    height:26px; 
    padding:15px 24px 0 24px; 
    line-height:13px; 
    color:#fefefd; 
    border-left:1px solid #7f9f67; 
    border-right:1px solid #466232; 
    text-transform:uppercase; 
    background:url(images/header_menu_bg_inactive.jpg) top center repeat-x; 
    text-shadow:1px 1px 1px #333; 
} 

#main_menu ul li:first-child a { 
    border-left:1px solid #445d32; 
    padding-left:22px; 
} 

#main_menu ul li:last-child a { 
    padding-right:22px; 
} 

Wie Sie sehen können, wurde dies ursprünglich in Chrome erstellt. Wie kann ich dieses lästige Problem für jeden Browser

  • ohne bedingte Hacks lösen
  • ohne eine feste Größe für jeden Menüpunkt Einstellung

Gibt es eine einfache Lösung?

+1

Sie in CSS font-Kerning aussehen könnte: https://developer.mozilla.org/en-US/docs/Web/CSS/font-kerning. Andernfalls ist möglicherweise "die Einstellung einer festen Größe für jeden Menüeintrag" Ihre einzige Option. –

+0

Danke. Wenn dies die einzige Option ist, ist das wirklich traurig :-( – Blackbam

+0

Setzen Sie die CSS zurück, um sie an die Standardeinstellungen des Browsers anzupassen. Lesen Sie diesen Artikel https://meyerweb.com/eric/tools/css/reset/. Verwenden Sie/Fügen Sie den Reset-CSS auf der Seite vor jeder anderen CSS-Datei oder Stil und dann überprüfen. Es setzt den gesamten Rand und Polsterung der Standard-Browser-Typen anpassen. –

Antwort

0

Sie könnten das Menü als flexible box stylen.

Verwenden Sie die flex Eigenschaft auf den Menüelementen, um jeweils einen gleichen Anteil der verbleibenden Breite zuzuweisen.

#main_menu { 
 
    width: 960px; 
 
} 
 

 
#main_menu ul { 
 
    list-style: none; 
 
    display: -webkit-flex; 
 
    display: flex; 
 
    width: 100%; 
 
    padding: 0; 
 
} 
 

 
#main_menu ul li { 
 
    -webkit-flex: 1; 
 
    flex: 1; 
 
} 
 

 
#main_menu ul li a { 
 
    display: block; 
 
    background-color: green; 
 
    padding: 4px 8px; 
 
    box-sizing: border-box; 
 
    text-align: center; 
 
    border-right: 1px solid black; 
 
} 
 

 
#main_menu ul li:first-child a { 
 
    border-left: 1px solid black; 
 
    background-color: lightgreen; 
 
}
<div id="main_menu"> 
 
    <ul> 
 
    <li><a>Home</a></li> 
 
    <li><a>Item One</a></li> 
 
    <li><a>Item Two</a></li> 
 
    <li><a>Item Three</a></li> 
 
    <li><a>Item Four</a></li> 
 
    <li><a>Item Five</a></li> 
 
    <li><a>Item Six</a></li> 
 
    </ul> 
 
</div>

+0

Dies ist leider nur funktioniert, wenn Alle Artikel haben die gleiche Größe. – Blackbam

Verwandte Themen