Osobny plik css dla IE

0

W jaki sposób mogę zrobić coś w tym stylu:
Mam 2 pliki css. Gdy uruchamiam stronę przeglądarką inną niż IE otwiera 1 plik css a gdy IE to drugi?

0

http://msdn.microsoft.com/en-us/library/ms537512.aspx
Z tym, że to rozwiązanie typu: jeśli IE to ładuj ten plik, jeśli nie IE to go nie ładuj (nie do końca tak jak opisałeś, że jeśli nie jeden to drugi)

0

wpakuj to do head:

<?
	$agent = getenv('HTTP_USER_AGENT');
	if  (strpos($agent, 'MSIE') != 0)
		{
                        // gdy IE
			echo '<link rel="stylesheet" href="styleIE.css" type="text/css" media="all"  />';	
		}
	else
		{
                        // gdy inna przeglądarka
			echo '<link rel="stylesheet" href="style.css" type="text/css" media="all"  />';		
		}
?>
0

Ja znalazłem coś takiego:

<head>
<link rel="stylesheet" href="style-normal.css" type="text/css" />
<!-- [if IE]>
<link rel="stylesheet" href="style-ie.css" type="text/css" />
<![endif] -->
</head>

może być?

0

@pinokio999: to jest dokładnie to rozwiązanie, o którym napisał id02009. Nie ładuje stylu style-ie.css zamiast style-normal.css, ale obok niego, o ile przeglądarką jest Internet Explorer.

Na pewno jest lepsze niż wyszukiwanie ciągu znaków MSIE w USER_AGENT, bo ten jak wiadomo jest niezbyt miarodajnym wskaźnikiem.

0

To co zrobić by zamieniało?? Bo może jest zaprzeczenie jakieś do tego: <!-- [if IE]>, to by robiło się je i wtedy wrzucało ten normal.

0

Klik w link podany w drugim poście i się wszystkiego dowiesz.

0
pinokio999 napisał(a)

To co zrobić by zamieniało?? Bo może jest zaprzeczenie jakieś do tego: <!-- [if IE]>, to by robiło się je i wtedy wrzucało ten normal.

Nie bo to konstrukcja obsługiwana tylko przez j.e. IE. Słuchaj NAVa - czytaj :>

0

Nie tylko, firefox np pomija kod wewnątrz tych tagów, opera prawdopodobnie też. Nie wiem jak z safari czy bardziej niszowymi przeglądarkami.

0

Każda przeglądarka pomija, bo przecież to jest komentarz HTML zwykły. Jedynie IE szuka w tych komentarzach specjalnych dodatkowych elementów.
Ale po co zamieniać? Przecież CSS jest hierarchiczny: reguły zdefiniowane później nadpiszą reguły wcześniejsze.

Na przykład jeżeli będziesz miał:
domyślnie ładowany plik css z powiedzmy h1 { color: red; }
a dla IE ładowany potem plik css z h1 { color: green; }

to w IE h1 będzie zielone.

0

Zgadza się. Jednak pytanie było czy da się i jak. Jeśli chodzi o to czy warto... nie warto: 2 arkusze styli = 2x więcej problemów (trudniejsze zarządzanie, zmiany etc.). Problem jest oczywiście na styku nowoczesne przeglądarki vs. IE:
w przypadku IE7 jest już nieźle - łatwo zdefiniować jeden arkusz tak, żeby działał (bez hacków btw)
IE6 - przestarzała przeglądarka, więc jak Ci się uda przekonać o tym klienta - nie będziesz musiał się przejmować (ja tak w firmie robię ;))

1 użytkowników online, w tym zalogowanych: 0, gości: 1