2011-08-31 13 views
8

Używam następującego bitu CSS do utworzenia liniowego gradientu tła. Wydaje się działać dobrze w IE8/9, FF, Safari i chrome, ale nie w IE7. IE7 pokazuje solidne (zielone) tło. Oto mój kodGradienty tła w IE7 z CSS

.menu_body a { 
    display:block; 
    color:#006699; 
    background: #008800; 
    /* Mozilla: */ 
    background: -moz-linear-gradient(top, #0b71a4, #025f8e); 
    /* Chrome, Safari:*/ 
    background: -webkit-gradient(linear, 
      left top, left bottom, from(#0b71a4), to(#025f8e)); 
    /* MSIE */ 
    filter: progid:DXImageTransform.Microsoft.Gradient(
      StartColorStr='#0b71a4', EndColorStr='#025f8e', GradientType=0); 
    padding: 1px 18px; 
} 

Odpowiedz

18

W IE < = 7, filtry nie będą działać, dopóki element nie ma wartości layout.

zoom: 1; 

Należy pamiętać, że może złamać inne rzeczy, więc stary dobry background-image może być bezpieczne i niezawodne rozwiązanie.

Pamiętaj również, że Twój CSS nie ma właściwości gradientowych dla Opery, IE10 i zaktualizowanej składni dla Webkita.

+1

Dzięki temu udało się świetnie! (nie mogłem oddać głosu, chociaż jestem nowym członkiem, przepraszam za to) EDYCJA: dla zaktualizowanej składni dla Webkita mogę użyć opcji -webkit-linear-gradient(), prawda? – Kiwi1

+0

@Schimmel Prawidłowe; składnia jest taka sama jak w Firefoksie i IE10, z wyjątkiem prefiksu innego dostawcy. Przy okazji, powinieneś być w stanie zaakceptować moją odpowiedź, klikając pole wyboru po lewej stronie. – duri

+0

@duri - IE10? czy to coś nowego? :) – Dementic

0

jestem pewien, czy parametry są to przekształcać wielkość liter - ale widząc, jak większość innych CSS jest, można spróbować:

startColorstr='#0b71a4', endColorstr='#025f8e' 

Wskazówka małą począwszy znak i mała litera str sufiksu.

+0

Próbowałem Twojego rozwiązania, ale niestety to nie zadziałało. Próbowano również nadać instancjom mniejszą obudowę, ale to też nie sprawdziło się. – Kiwi1

+0

Spróbuj także z 'progid: DXImageTransform.Microsoft.gradient' - zanotuj małe" gradient ". –

+0

Jeszcze raz dziękuję za szybką odpowiedź, ale niestety to też nie zadziałało. Jestem bardzo zdezorientowany, ponieważ zgodnie z następującym dokumentem ta transformacja powinna działać dla Internet Explorera 5.5 lub nowszego. Zobacz: http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx – Kiwi1

2

Poprawna składnia jest następująca:

filter: progid:DXImageTransform.Microsoft.gradient 
(startColorstr=#550000FF, endColorstr=#55FFFF00) 

ta jest obsługiwana przez IE4>

Zobacz źródło MSDN here.