Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CSS'y dla różnych przeglądarek
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
kosmowariat
Witam
Chciałbym się dowiedziec jak robicie CSS'y dla różnych przeglądarek (czyli w sumie dla IE6 i dla reszty) ;-)
W 99% przypadków potrzebujemy drugiego CSS dla (i tu kilka epitetów tongue.gif ) dla IE6. I teraz moje pytanie : który wariant jest lepszy
1) Piszemy CSS dla "reszty", kopiujemy nanosimy poprawki dla IE6 i w zależności od przeglądarki dołączamy odpowiedniego CSS'a
2) Piszemy CSS dla reszty, a później dla IE6 ale tylko nadpisując tylko klasy/elementy które się sypią i dołączamy poprzez tzw conditional comments

Chciałbym poznac wasze opinie oraz w miarę możliwosci argumenty świadczące o wyższości, któregos z rozwiązan.

Z góry THX za udział w dyskusji

Pozdrawiam
ayeo
Witam!

To zależy. Ogólnie już na etapie cięcia layoutu bierzesz pd uwagę IE. W idealnych sytuacjach jest wszędzie ten sam styl bez żadnych modyfikacji. Najczęściej wystarczy po prostu nadpisać margin i padding, ja robię to w tym samym pliku. Jest kilka sposobów np *margin: 0 0 0 0; każda normalna przeglądarka to olewa jako błąd składni, a IE akceptuje. Jak modyfikacji jest dużo to lepiej dać w osobnym pliku (tzw modyfikator) wszystkie hacki na IE (IE6 i trochę IE7, IE8 podobno jest ok).

Pozdrawiam!
piotrooo89
ja robię dwa pliki stylów. jeden dla kIEpskiego drugi dla reszty. hacki IE + komentarze warunkowe.
kosmowariat
chyba trochę niejasno zadałem pytanie....

  1. <?php
  2. /*Opcja 1*/
  3.  
  4. /*Plik style.css*/
  5. .klasa1 {
  6.   attr1 : val1;
  7.   attr2 : val2;
  8. }
  9.  
  10. .klasa2 {
  11.    attr3 : val3;
  12.    attr4 : val4;
  13. }
  14.  
  15. /*style_ie.css*/
  16.  
  17. .klasa1 {
  18.   /* Ta klasa jest taka sama jak w pliku style.css*/
  19.   attr1 : val1;
  20.   attr2 : val2;
  21. }
  22.  
  23. .klasa2 {
  24.    /* ta klasa została zmodyfikowana bo w IE jest BUG */
  25.    attr3 : val3_for_ie;
  26.    attr4 : val4;
  27. }
  28.  
  29. /*w tej opcji załączamy plik style_ie.css dla IE6 lub style.css dla reszty (albo jeden albo drugi)*/
  30. ?>



  1. <?php
  2. /*Opcja 2*/
  3.  
  4. /*Plik style.css*/
  5. .klasa1 {
  6.   attr1 : val1;
  7.   attr2 : val2;
  8. }
  9.  
  10. .klasa2 {
  11.    attr3 : val3;
  12.    attr4 : val4;
  13. }
  14.  
  15. /*style_ie.css*/
  16.  
  17. /* nadpisujemy tylko wartosci dla klasa2 */
  18.  
  19. .klasa2 {
  20.    /* ta klasa została zmodyfikowana bo w IE jest BUG */
  21.    attr3 : val3_for_ie;
  22.    attr4 : val4;
  23. }
  24.  
  25. /*w tej opcji zawsze załączamy plik style.css a dla IE6 i style_ie.css poprzez komentarz warunkowy */
  26. ?>


@ayeo : to jest jakieś rozwiązanie, ale wolałbym unikac hacków w stylu *margin : 0;
sowiq
A po co masz dwa razy powtarzać to samo? Jak przyjdzie Ci jakaś duperela np. zmiana koloru linka, to musisz w 2 plikach CSS zmieniać. Poza tym bawisz się w komentarze warunkowe typu 'if not IE'.
Moim zdaniem najłatwiej jest stworzyć arkusz, w którym będziesz miał tylko właściwości, które chcesz nadpisać dla IE, potem jeden 'if' i po sprawie.
Oczywiście zawsze lepiej napisać wszystko tak, żeby działało na tym samym arkuszu styli, ale to czasami nieosiągalne niestety.
DreeD
Kiedys uzywalem komentarzy warunkowych.. teraz mi wystarcza male CSS'owe hacki dla IE 6 i 7, np.

  1. div.class
  2. {
  3. margin: 10px;
  4. *margin: 10px; /* margin dla IE7, normalne przegladarki zignoruja atrybuty z * przed nazwa, IE nie tongue.gif .Wazne zeby podawac je na samym koncu listy atrybutow dla tego selektora, inaczej te dla pozostalych przegladarek je 'nadpisza'*/
  5. }
  6.  
  7. * html div.class /* selektor dla IE6 */
  8. {
  9. margin: 10px;
  10. }


Troche designow sie juz naciachalem, i do tej pory mi (prawie) nie potrzeba zadnych dodatkowych kombinacji. Wg. mnie to jest najprostsza metoda z mozliwych, i nie podwajasz niepotrzebnie fragmentow CSS'ow (np. w osobnym pliku tylko dla IE), to wszystko iles tam zajmuje, i musi sie z serwera pobrac majac jakis tam wplyw na predkosc wczytywania sie strony... Niby to male pliki, ale przy duzych projektach takich 'malych plikow' moze sie czasem nazbierac calkiem sporo.
erix
Cytat
Kiedys uzywalem komentarzy warunkowych.. teraz mi wystarcza male CSS'owe hacki dla IE 6 i 7, np.

A po co karać użytkowników normalnych przeglądarek transferem hacków dla śmIEcia? Poza tym, w większości nie przechodzą one walidacji W3C.

Cytat
z serwera pobrac majac jakis tam wplyw na predkosc wczytywania sie strony

To już problem użyszkodników Explodera. winksmiley.jpg

Dla IE wstawiam z użyciem komentarzy warunkowych, dla Firefoksa (sic!) - XBL - http://eriz.pcinside.pl/weblog/komentarze-...foksie-196.html

Czemu dla Firefoksa? A czy normalnie obsługuje :before i :after?
.radex
Cytat(erix @ 4.03.2009, 18:02:45 ) *
dla Firefoksa (sic!) - XBL


są też inne sposoby, "czysto"-CSS-owe
erix
Owszem, ale wymagają śmiecenia arkusza dla przeglądarek renderujących CSS wg specyfikacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.