PDA

Zobacz pełną wersję : CSS a IE7 (komentarz warunkowy)



m3ss
16-12-2009, 22:28
Witam,
nie mam pojęcia dlaczego IE 7 ignoruje komentarz warunkowy, który wygląda następująco:

<!--[if IE 7]>
<link href="templates/<?php echo $this->template ?>/css/ie7only.css" rel="stylesheet" type="text/css" />
<![endif]-->

stosowałem taki zapis nie raz i wszystko było ok...do teraz. Ma ktoś może jakieś sugestie? CSS dla IE7 działa prawidłowo, bo był testowany.

z góry dzięki za zainteresowanie
m3ss

plczarny
16-12-2009, 23:07
Spróbuj tak:

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ie7only.css" type="text/css" />

dexter77
18-12-2009, 11:42
witam, mialem ten sam problem, robisz tak w headzie:

<![if IE 8]>
<link href="templates/<?php echo $this->template ?>/css/layout.css" rel="stylesheet" type="text/css" />
<link href="templates/<?php echo $this->template ?>/css/template.css" rel="stylesheet" type="text/css" />
<![endif]>

<!--[if IE 7]>
<link href="templates/<?php echo $this->template ?>/css/layoutie.css" rel="stylesheet" type="text/css" />
<link href="templates/<?php echo $this->template ?>/css/templateie.css" rel="stylesheet" type="text/css" />
<![endif]-->


...krotko mowiac pierwszy komentarz mowi "dla IE 8 i pozostalych przegladarek", a drugi komentarz tylko dla IE 7.. zauwaz ze na joomli 1.5 jesli nie dasz pierwszego komentarza (tego dla pozostalych przegladarek) wowczas IE7 nie czyta komentarza, tylko pobiera domyslny css, dlatego trzeba dac "<![if IE 8]>" zeby nasz podstawowy css nie byl domyslny dosłownie, lecz miał jakies warunki *tym warunkiem jest stwierdzenie pozostałe przeglądarki:)) pozdrawiam

m3ss
18-12-2009, 11:48
Dzięki za odpowiedź. Po południu sprawdzę czy działa.


pozdr.
m3ss

m3ss
20-12-2009, 19:44
Niestety to rozwiązanie nie działa :confused:

Michael_23
20-12-2009, 19:50
U mnie działa taka wersja:
<!--[if IE 7]><link rel="stylesheet" href="/templates/nazwa_templatki/css/template.ie7.css" type="text/css" media="screen" /><![endif]-->

Sprawdź tę wersję...

plczarny
20-12-2009, 20:25
a może problem jest w innym miejscu? może zrobiłeś gdzieś literówkę? wklej zawartość nagłówka z index.php. Sprawdź dokładnie ścieżkę do pliku css. Może nazwa pliku zawiera jakąś dużą literę? (wiem że to banały - ale takie banały najłatwiej przeoczyć). No i podaj linka do strony

m3ss
20-12-2009, 21:08
Może Wam uda się odszukać bug-a

Michael_23
20-12-2009, 21:28
A konkretnie co to za bug? Może IE7 widzi CSS-a tylko w samych stylach coś skopałeś...

m3ss
20-12-2009, 21:31
CSS na 100% działa poprawnie, bo sprawdzałem. Jakbym wiedział gdzie jest bug to bym poprawił ;) Nie mam pojęcia dlaczego IE7 ignoruje warunek.

big_krzysiek
20-12-2009, 23:34
CSS na 100% działa poprawnie
przegladnij jeszcze raz (http://jigsaw.w3.org/css-validator/validator?uri=http://gwda.pl/new/) css-a

mnie wyswietla 5 bledow

"
83 Nieznany pseudo-element lub pseudo-class :last-child
145 .sf-shadow ul Właściwość -moz-border-radius-bottomleft nie istnieje : 17px
146 .sf-shadow ul Właściwość -moz-border-radius-topright nie istnieje : 17px
147 .sf-shadow ul Właściwość -webkit-border-top-right-radius nie istnieje : 17px
148 .sf-shadow ul Właściwość -webkit-border-bottom-left-radius nie istnieje : 17px
"

plczarny
21-12-2009, 00:14
Czy problem tkwi w tym drugim menu pod banerkiem? Z tego co zauważyłem tylko ono nie wyświetla się poprawnie.
Coś jest skopane w bloku "top_menu2". Zresztą zmień w pliku index.php nazwe z z 'top_menu2' na 'top_menu2a' a całe menu wróci na swoje miejsce.

m3ss
21-12-2009, 09:38
Panowie, dzięki za pomoc. Wiem, o błędach w pliku CSS - strona jest jeszcze nie skończona. Mój problem polega na tym, że IE7 ignoruje wpis warunkowy

<!--[if IE 7]>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ie7only.css" type="text/css" media="screen"/>
<![endif]-->

Pytanie dlaczego? Jeżeli plik ie7only.css wstawię jako głowny plik CSS w IE7 strona wyświetla się prawidłowo, stąd wiem że dolne menu się nie rozjeżdza.

plczarny
21-12-2009, 10:06
Komentarz jest ok, nie jest ignorowany. Problem jest w css. Zresztą zobacz sam. Zrzut pochodzi z programu IE tester.

Proszę o zmniejszanie załączanych obrazków! /zwiastun
By plmaariusz (http://profile.imageshack.us/user/plmaariusz) at 2009-12-21

m3ss
21-12-2009, 10:38
Też testowałem stronę w IE Tester. Teraz podmieniłem plik CSS na ie7only.css, strona wyświetla się prawidłowo pod IE7.

plczarny
21-12-2009, 10:54
Też testowałem stronę w IE Tester. Teraz podmieniłem plik CSS na ie7only.css, strona wyświetla się prawidłowo pod IE7.No to w tym momencie zupełnie nie rozumiem o co Ci chodzi... Skoro testowałeś to powinieneś wiedzieć że css zaczytuje się bez problemu..
Kilka postów wyżej napisałeś także że wiesz że w css są błędy - popraw je i będzie gites.

Kilka razy powtórzyłeś że podmieniałeś zawartość głównego pliku css na tą z ie7only i było dobrze. O czym to świadczy?
Najwidoczniej plik ie7only nie definiuje wszystkich cech tego menu - dziedziczenie. I być może w tym tkwi problem.
No i najważniejsze IE to przeglądarka specjalnej troski - nie zawsze się zachowuje racjonalnie :)

m3ss
21-12-2009, 11:01
OK, po południu przeanalizuję jeszcze raz plik css i dam znać. Jeszcze raz dzięki za pomoc.

dexter77
21-12-2009, 11:52
podany przeze mnie sposob dziala na 100%. sam codziennie siedze po kilka h w tym temacie :P masz gdzies blad.. i witam rodzinne pilskie strony

m3ss
21-12-2009, 13:14
@dexter77: Internet jest mały ;)

Wybaczcie, że drążę temat, ale już jestem cały głupi - może ktoś mi wyjaśni. Dlaczego jak podmienię główny plik css na ie7only, strona się wyświetla prawidłowo pod IE7, a jak korzystam z komentarza warunkowego przeglądarka IE7 nie korzysta z pliku ie7only.css Dzięki za cierpliwość :)

dexter77
23-12-2009, 11:11
napisalem wczesniej, ze kiedy dajesz warunek dla jakiegos css przegladarka i tak pobiera domyslny css. wobec tego dla domyslnego css tworzysz tez warunek, ktory nazywa sie "dla ieX oraz wszystkich pozostałych przeglądarek". i w ten sposob masz dwa warunki:

1. tylko dla ie7
<!--[if IE 7]>
<link href="/templates/szablon_tmp/css/layoutie7.css" rel="stylesheet" type="text/css" />
<link href="/templates/szablon_tmp/css/template.css" rel="stylesheet" type="text/css" />
<![endif]-->

2. dla IE 9 (ktora nie istnieje:P ) oraz dla pozostałych przegladarek
<![if IE 9]>
<link href="/templates/szablon_tmp/css/layout.css (http://forum.joomla.pl/view-source:http://milla.go-2.pl/templates/milla_tmp/css/layout.css)" rel="stylesheet" type="text/css" />
<link href="/templates/szablon_tmp/css/template.css (http://forum.joomla.pl/view-source:http://milla.go-2.pl/templates/milla_tmp/css/template.css)" rel="stylesheet" type="text/css" />
<![endif]>

konstrukcja tego drugiego nieco sie rozni

tylko uwaga, w tym przypadku powinienes uwzglednic to, ze IE 8 i 6 nie beda czytaly css (bo nie ma dla nich warunkow), wiec musisz albo stworzyc taki sam warunek jak dla IE7 tylko z inną cyferką lub wykorzystac cos w stylu "dla starszych od itp."

...opera i chrome beda działał

bez tego drugiego warunku bedziesz mial caly czas tak jak piszesz, zrozumiales ? :)

metoda potwierdzona na 10000000000000000%

m3ss
23-12-2009, 11:22
Dexter77, dzięki za wyczerpującą odpowiedź :) Wszystko jasne jak słońce.

btw, Wesołych Świąt i Szczęśliwego Nowego Roku!!

pozdr
m3ss