Obsługa „border-radius” w IE


Odpowiedzi:


220

Tak! Kiedy IE9 zostanie wydany w styczniu 2011.

Powiedzmy, że chcesz mieć równe 15 pikseli ze wszystkich czterech stron:

.myclass {
 border-style: solid;
 border-width: 2px;
 -moz-border-radius: 15px;
 -webkit-border-radius: 15px;
 border-radius: 15px;
}

IE9 użyje wartości domyślnej border-radius, więc po prostu upewnij się, że uwzględnisz to we wszystkich stylach, nazywając promień obramowania. Wtedy Twoja witryna będzie gotowa na IE9.

-moz-border-radiusdotyczy przeglądarki Firefox, przeglądarki -webkit-border-radiusSafari i Chrome.

Ponadto: nie zapomnij zadeklarować, że kodowanie IE to ie9:

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

Niektórzy leniwi programiści mają <meta http-equiv="X-UA-Compatible" content="IE=7" />. Jeśli ten tag istnieje, border-radius nigdy nie będzie działać w IE.


7
Przypuszczalnie jeśli nie używasz metatagu kompatybilnego z X-UA, nie musisz go dodawać tylko po to, aby działał w IE9?
— thepeer

72
Powinieneś umieścić wersje prefiksów dostawcy PIERWSZE i standardowe OSTATNIE, tak aby przeglądarka obsługiwała rzeczywisty standard, zamiast wersji z prefiksem dostawcy.
— Jason Berry

4
Prawidłowo, nie potrzebujesz metatagu ... musisz tylko wymienić emulator ie7, jeśli jest dołączony. W przeciwnym razie nie martw się o to.
— Kevin Florida,

3
FYI w obecnej wersji beta IE9 „border-radius” działa poprawnie przy użyciu pojedynczej wartości. Wszystkie cztery wartości nie są wymagane, chyba że faktycznie chcesz, aby były różne.
— mikemaccana

2
@nailer: Dzięki za aktualizację rogów. Pierwsze alfa vs i beta vs IE9 wymagały zadeklarowania wszystkich 4 rogów. Właśnie pobrałem najnowszą wersję RC IE9 i pozwala mi zadeklarować jedną wartość .. Nie jestem pewien, kiedy to się zmieniło ..
— Kevin Florida

46

Odpowiedź na to pytanie zmieniła się od czasu, gdy zadano je rok temu. (To pytanie jest obecnie jednym z najlepszych wyników wyszukiwania w Google „border-radius ie”).

IE9 będzie obsługiwać border-radius.

Tam jest podgląd platforma dostępna który obsługuje border-radius . Do uruchomienia podglądu będziesz potrzebować systemu Windows Vista lub Windows 7 (i IE9, gdy zostanie wydany).



18

Obejście i przydatne narzędzie:

CSS3Pie używa plików .htc i właściwości behawioralnej do implementacji CSS3 w IE 6 - 8.

Modernizr to trochę javascript, który umieści klasy w twoim elemencie html, umożliwiając obsługę różnych definicji stylów dla różnych przeglądarek w oparciu o ich możliwości.

Oczywiście oba te elementy zwiększają obciążenie, ale w przypadku IE9, który działa tylko w systemie Vista / 7, możemy utknąć na jakiś czas. Od sierpnia 2010 r. System Windows XP nadal stanowi 48% systemów operacyjnych klientów WWW.


2
CSS3 PIE był zdecydowanie najłatwiejszą i najmniej uciążliwą opcją.
— Chris Rasco,

12

Nie jest planowane dla IE8. Zobacz stronę Zgodność z CSS .

Poza tym żadne plany nie zostały wydane. Istnieją pogłoski, że IE8 będzie ostatnią wersją dla systemu Windows XP


12
Oczywiście się mylisz, ponieważ IE9 ma obsługiwać również CSS3 i nie widzę nigdzie umierania IE. Ktoś
— musi

10
Okazuje się, że IE8 to ostatnia wersja ... na Windows XP.
— M. Dudley,

7

<!DOCTYPE html> bez tego tagu border-radius nie działa w IE9, nie ma potrzeby stosowania metatagów.



4

Użyj -ms-border-radius: 15px, każdy element, który używa css -ms-, jest zgodny z IE.



2

A co z obsługą promienia obramowania ORAZ gradientu tła. Tak, IE9 obsługuje je oddzielnie, ale jeśli je pomieszasz, gradient spadnie z zaokrąglonego rogu. Poniżej znajduje się link do kiepskiego przykładu, ale widziałem go również w moich własnych testach. Powinienem zrobić zrzut ekranu :(

Być może prawdziwe pytanie brzmi, kiedy IE będzie obsługiwać standardy CSS bez zastrzeżonych hacków MS-FILTER.

http://frugalcoder.us/post/2010/09/15/ie9-corner-plus-gradient-fail.aspx


IE10 będzie obsługiwał odpowiednie gradienty CSS3 (obecny podgląd programisty IE10 już obsługuje -ms-linear-gradient). Jeśli chcesz, aby gradienty honorowały border-radius w IE9, musisz użyć SVG (zewnętrznego pliku SVG lub takiego, który jest zakodowany w identyfikatorze URI danych) - zobacz css3wizardry.com/2010/10/29/css-gradients-for- ie9 - również CSS3 PIE wkrótce to zautomatyzuje, dostępna jest wersja testowa
— Lojjic

Szybkim rozwiązaniem jest owinięcie go w inny element. Nadaj elementowi nadrzędnemu ten sam border-radius i ustaw jego przepełnienie na ukryty.
— Senne

1

ROZWIĄZANE - niepoprawne renderowanie promienia obramowania w IE 10 i 11

Dla tych, którzy nie otrzymują -ms-border-radius: lub border-radius: do pracy w IE 10,11 I renderuje wszystko kwadratowe, a następnie wykonaj następujące kroki:

  1. Kliknij koło zębate w prawym górnym rogu przeglądarki IE
  2. Kliknij Ustawienia widoku zgodności
  3. Teraz odznacz 2 pola, które są zaznaczone domyślnie.

Upewnij się, że pola nie są zaznaczone, jak na rys

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.