2011-01-03 13 views
16

Nie mogę sprawić, że IE9 renderuje zestaw pól z zaokrąglonymi narożnikami, podczas gdy inne przeglądarki to robią. Czy ktoś to napotkał?Zaokrąglone narożniki IE9

+2

Czy możesz opublikować swój kod? –

+0

Powtórz: http: //stackoverflow.com/questions/635851/support-for-border-radius-in-ie – tcooc

+1

@digitalFresh: Czy czytasz pytanie? chodzi o IE9 - a IE9 obsługuje border-radius (jak montowane w twoim linku) – oezi

Odpowiedz

0

Podczas renderowania zestawu pól zawsze pojawiają się problemy z renderowaniem, a zwłaszcza z drukowaniem. Nic dziwnego, że to nie działa.

Standardowe obejście polega na dodaniu kolejnego kontenera i stylu.

1

jej tylko pracę w najnowszej wersji RC Aint działa w wersji beta IE9 spróbować

 

.class { 
border-radius-right-bottom: 15px; 
} 
 
+1

To jest dobry punkt do powtórzenia - IE9 nie jest wydanym produktem. Jest w wersji beta. Nie oczekuj, że wszystko zadziała. I nie używaj go jako głównej przeglądarki, jeśli nie jesteś przygotowany na niespodziewane awarie. – Spudley

+0

prawda, że. w rzeczy samej, proszę pana. –

0

Aby uzyskać IE9 użyć zaokrąglone narożniki (CSS 3) trzeba dodać do nagłówka HTML:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

Następnie za pomocą CSS, jak zwykle: border-radius-right-bottom:15px;

miałem ten sam problem & to naprawiło to.

+0

IE9 * powinien * domyślnie obsługiwać 'border-radius'. Jeśli chcesz tego użyć, oznacza to, że masz coś w swoich ustawieniach, które sprawiają, że przechodzi w tryb zgodności z IE8. Możesz sprawdzić ustawienia. Jeśli użyjesz tej techniki, powinieneś być w stanie uciec tylko za pomocą 'IE = Edge'; reszta nie ma znaczenia, ponieważ żadna inna przeglądarka i tak nie rozpoznaje "X-UA-Compatible", a nawet gdyby tak było, dlaczego chciałbyś zmusić ich do podanego numeru wersji (tutaj naprawiasz dziwactwo w IE, nie Firefox). – Spudley

3

Z mojego doświadczenia w najnowszej wersji IE9, nie mogę uzyskać zestawu pól z legendą, aby mieć promień. Nie miałem żadnych problemów z innymi granicami w IE9, css3 border-radius działa dobrze, tylko fieldset/ledgend. Wciąż nad tym myślę.

+1

To wydaje się być błędem w wydaniu IE9 dla zestawu fieldset + legenda, co jest irytujące co najmniej. – Tracker1

21

Dzieje się tak tylko wtedy, gdy używasz <fieldset> z <legend> - bez tego narożniki renderują się poprawnie.

Można rozwiązać ten problem poprzez zastosowanie display:inline lub display:inline-block do elementu <legend> - ale nie trzeba przesunąć go z powrotem na swoim miejscu, ustawiając position:relative i przesuwając go dookoła.

W zależności od stylizacji twojej legendy (z tłem będzie wyglądać tak samo - bez tła granica zestawu pól będzie nadal widoczna za literami) możesz sprawić, że będzie wyglądać tak samo jak w innych normalnych przeglądarki.

+2

To powinna być poprawna odpowiedź. – Nicsoft

+2

Znalazłem, że chociaż to rozwiązało problem w IE, zepsuło go w chromie. Pozycjonowanie, które musiałem zastosować do legendy, aby przenieść go we właściwe miejsce, przesunęło go daleko w chrom, było w porządku w FF i IE. W trakcie pracy utkwiłem style, aby naprawić je w IE tylko w IE [IE only stylesheet] (http://css-tricks.com/how-to-create-an-ie-only-stylesheet/). Dla rekordu użyłem stylu: 'display: inline-block; pozycja względna; wysokość: 30 pikseli; top: -15px; ' – Ben

+1

Oczywiście. To przechodzi do arkusza stylów IE - pytanie jest oznaczone jako Internet Explorer - jest to poprawka dla IE - zawsze chcesz zastosować poprawkę tylko do przeglądarki buggy. – easwee

1

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

To jest jak to naprawić.

3

Również używałem zestawu pól i nie tylko formularzy, ale ciągłe trafienie i brak zgodności powodowało, że je zrzucałem. Lepiej napisać własne klasy CSS DIV, które emulują zestaw pól. Za pomocą CSS można uzyskać dokładną replikę co fieldset wygląda i masz dużo większą elastyczność i kompatybilność

1

Jest jeszcze problem, pod IE11 podczas korzystania legendę , a rozwiązaniem jest w tym wątku :

Rounded corners on a fieldset

fieldset { 
     margin:20px; 
     padding:0 10px 10px; 
     border:1px solid #666; 
     border-radius:8px; 
     box-shadow:0 0 10px #666; 
     padding-top:10px; 
} 

legend { 
     padding:2px 4px; 
     background:#fff; 
    } 


    fieldset > legend { 
     float:left; 
     margin-top:-20px; 
    } 
    fieldset > legend + * { 
     clear:both; 
    } 

http://www.456bereastreet.com/archive/201302/fieldset_legend_border-radius_and_box-shadow/

0

Miałem dostęp tylko do pliku CSS, więc nie mogłem wprowadzać żadnych zmian w HTML, więc zrobiłem hack w CSS dla IE.

struktura HTML było:

<form> 
    <fieldset> 
     ...form content... 
    </fieldset> 
</form> 

Cały CSS dla wszystkich Browers iz IE Hack:

fieldset { 
    border-radius: 20px; 
    border: 1px #3D3D3D solid; 
} 
@media screen and (min-width:0\0) { 
    form { 
     border: 1px #3D3D3D solid; 
     border-radius: 20px; 
    } 
    fieldset { 
     border: 0 none; 
     margin-top: 1px; 
     margin-bottom: 1px; 
    } 
} 

Oczywiście, jeśli witryna ma inny html strukturę, to nie będzie działać. Dlatego zamiast "formularza" można zastosować w css do div jednostki nadrzędnej swojego zestawu pól.