2013-02-15 13 views
9

Mam problemy z rozumieniem, dlaczego IE ignoruje mój CSS tutaj. Mam ten kod:Internet Explorer 8 ignoruje wagę czcionki w CSS

<h2>Har du stadsnät eller kan du få det?</h2> 

tj. nic dziwnego ani nic. A oto powstały renderowania:

Rendering of HTML

Ale tutaj jest kod CSS dla tej HTML:

.rubrik, h2 { 
    font-family: Lato; 
    font-size: 32px; 
    font-weight: normal; 
    line-height: 38px; 
    font-variant: normal; 
    font-style: normal; 
    color: #969696; 
} 

który wyraźnie stwierdza, że ​​H2 powinien mieć „normalne” jak waga czcionki, jeszcze renderowany tekst jest wyraźnie pogrubione, tutaj jest poprawne renderowanie (od Safari)

Correct rendering

Tak, za pomocą dołączonych narzędzi programistycznych Internet Explorer 8, I sprawdzać interpretacji CSS, a wygląda to tak:

CSS interpretation

Jak rozumiem, czego szukam w tutaj jest interpretacja IE8 za mojego CSS i podejrzanie brakujące to "normalny" atrybut. IE przekonwertował kod CSS na jednoliniową wersję "czcionki", ale nie zawierał części "normalnej". Teraz, czcionka "Lato" to czcionki font-face i CSS font-face jest tutaj:

@font-face { 
    font-family: Lato; 
    src: url('/media/fonts/Lato.eot'); 
    src: local('nofont'), url('/media/fonts/Lato.ttf') format('truetype'); 
} 
@font-face { 
    font-family: Lato; 
    src: url('/media/fonts/Lato-Bold.eot'); 
    src: local('nofont'), url('/media/fonts/Lato-Bold.ttf') format('truetype'); 
    font-weight: bold; 
} 
@font-face { 
    font-family: Lato; 
    src: url('/media/fonts/Lato-Bold-Italic.eot'); 
    src: local('nofont'), url('/media/fonts/Lato-Bold-Italic.ttf') format('truetype'); 
    font-weight: bold; 
    font-style: italic; 
} 
@font-face { 
    font-family: Lato; 
    src: url('/media/fonts/Lato-Italic.eot'); 
    src: local('nofont'), url('/media/fonts/Lato-Italic.ttf') format('truetype'); 
    font-style: italic; 
} 

Nawet gdy określenie "normalny" w deklaracji font-face dla font-weight, nie robi” t działa. Tak więc utknąłem tutaj, próbując dowiedzieć się, co robię źle, aby nie mieć IE to "font-weight: normal" w deklaracji dla H2 ... Jakieś domysły? Z góry dziękuję ...

+0

Spróbuj umieścić nazwę czcionki w cudzysłowach wszędzie! Och i definiujecie wiele razy rodzinę czcionek o tej samej nazwie, nie jesteście pewni, czy IE tak bardzo to lubi. – reinder

+0

Spróbuj użyć 'font-weight: 100;' –

+0

@reinder Cytowanie nazwy czcionki nie ma znaczenia, a IE wybiera poprawną czcionkę, a nie tylko prawidłową wagę. – Sandman

Odpowiedz

-3

Może to być problem związany z dziedziczeniem. Czy próbowałeś umieścić! Ważne słowo kluczowe.

font-weight: normal !important; 
+0

Rzeczywiście mam, nie obejmuje to również w interpretacji, ani zmienić renderowania, niestety. – Sandman

+0

Wyraźnej deklaracji nie można nadpisać dziedziczeniem; to część koncepcji dziedziczenia CSS. –

4

Myślę, że trzeba zmienić nazwę font-family: Lato; na każdej nieruchomości fontface, jak to jest możliwe uzyskiwanie mylić IE. Zamiast tego spróbuj umieścić font-family: Lato-bold;, font-family: Lato-italic itd. Jeśli czcionka ma pogrubioną twarz (np. Lato i odwołujesz się do właściwości fontface), nie musisz dodawać font-weight: bold; dla właściwości fontface, ponieważ czcionka jest już pogrubiona i dodanie czcionki-czcionki po prostu doda faux-bold i sprawi, że będzie wyglądać źle.

Oznacza to, że dla swojego h2 wystarczy umieścić font-family: Lato;, jeśli chcesz, aby była to normalna, nie pogrubiona wersja.

+0

Z pewnością jest to niezgodne ze specyfikacją czcionek. Jak można uzyskać odważne inline, jeśli tak? Wtedy musiałbym konkretnie ustawić B i STRONG na font-family: Lato-Bold, jeśli odważny stan Lato nie jest określony? – Sandman

+0

Tak, ustaw i moc, aby mieć rodzinę czcionek Lato-bold. Jeśli ustawisz go z grubością czcionki: pogrubienie; wtedy otrzymasz podwójnie pogrubioną czcionkę (czcionka jest oryginalnie zaprojektowana pogrubiona, a faux-pogrubiona w przeglądarce), która nie będzie wyglądać bardzo dobrze. Zwykle ustawiam również czcionki h1, h2, h3 itd. Na rodzinę czcionek: Lato-bold; a także przy użyciu font-face. To nie powinno być zbyt dużym problemem dla wsparcia/kompilacji, ponieważ @ font-face jest obsługiwany przez IE6, a także większość wersji innych przeglądarek: http://caniuse.com/#feat=fontface –

Powiązane problemy