[XHTML/CSS] IE nie czyta kilku klas obiektu?

0

W kodzie strony zacząłem ostaynio używać dla uproszczenia takiej konstrukcji:

<div class="header_block framed background">

Dość proste - oprócz charakterystycznej dla tego div'a klasy header_block są też dodawane klasy framed i background, które odpowiednio dodają ramkę i tło - przez to definicja tych elementów jest jedna.
Taka technika działa dobrze pod przeglądarkami na bazie KHTML i Gecko a nawet pod Operą - a IE sobie z nią nie radzi. Ramki i tła nie ma.
Zastosowanie jest tu, parametr n=1 włącza testowy nagłówek na CSS nad którym pracuję - już jest prawie identyczny jak stary tabelkowy (bez n=1 widać), tylko pod IE się psuje.
Teoretycznie mógłbym to zrobić inaczej - ale wolę najpierw się dowiedzieć, czy obecna technika ma jakieś szanse na działanie, czy to po prostu następny przykład nieuleczalnego kalectwa IE (na dodatek tworzonego chyba z premedytacją, bo gdzieś znalazłem np. wypowiedź koordynatora projektu, który mówił że nie mają zamiaru implementować parametru white-space - tylko że ich zamiary g... znaczą, jeśli to jest element standardu...)

0

Aj, aj, aj... niestety czy chcemy, czy nie - musimy zgodzić się z faktem, iż IE jest przeglądarką naprawdę tępą, aczkolwiek grubo ponad połowa ludzi z niej korzysta [glowa]. Kolejną taką samą rewolucją może być świetnie zapowiadany (:-D) IE7 :-D. Podobno będzie rewolucyjne blokowanie pop-up'ów... oraz oczywiście ochrona przed atakami hakierskimi.

A tak na poważnie: alternatywne wyjście w zaistniałej sytuacji zdaje się być banalnie proste ;-) (Vide infra) CSS hacks ;-) Zaraz Ci coś spłodzę...

W porządku. To masz w pliku osada_gr.css:

@media screen {
	*[class~="framed"] {
		border-color: #223611;
	}
	*[class~="background"] {
		background-color: black;
		background-image: url("images/bg_gr.jpg");
	}
}

Zamiast tego, wprowadź małego hacka:

* html div.iehack {
		/* powyższe spowoduje odczytanie stylu <u>tylko</u> przez IE */
		border-color: #223611;
		background-image: url("http://osada.heroes.net.pl/images/bg_gr.jpg");
		/* zauważ bezwzględną ścieżkę do pliku
		(radzę zawsze tak robić, jeśli chodzi o grafikę) */
}

/* oraz dla innych, mądrzejszych przeglądarek */
@media screen {
	*[class~="framed"] {
		border-color: #223611;
	}
	*[class~="background"] {
		background-color: black;
		background-image: url("http://osada.heroes.net.pl/images/bg_gr.jpg");
		/* to samo, co wyżej */
	}
}

Teraz, żeby zobaczyć wprowadzone zmiany, dodaj nową, wyżej zdefiniowaną klasę do div'a:

Tak samo pokombinuj z innymi selektorami, bo widać, że strona w IE i np. w FF nie wygląda tak samo (i nigdy nie będzie :-D) (par exemple znacznik span).

Uwaga: alternatywę może też stanowić pisanie stron tylko pod mądre przeglądarki, tj. Mozilla (Firefox - http://www.mozilla.org/products/firefox/, http://www.firefox.pl/) i robienie przekierowań w przypadku korzystania z IE do błędu 409 albo 402 :-)

Vide http://www.google.pl/search?q=css+hacks - żartuję ;-) Widać, że nie jest z Tobą aż tak źle ;-)

P.S. IE zinterpretuje kilka klas przypisanych do obiektu, jak najbardziej, bo czemu nie? ;-) Powyżej zresztą masz przykład.

P.S.2 Nie przyglądałem się tak dogłębnie Twojej stronie - obejrzałem ją powierzchownie, więc moje rozwiązanie nie będzie pewnie w 100% trafne. Naprawdę zalecam lekturę o CSS hack'ach ;-) Mam nadzieję, że pomogłem choć troszkę.
Pozdrawiam.

0

Sorry za OT...

Aj, aj, aj... niestety czy chcemy, czy nie - musimy zgodzić się z faktem, iż IE jest przeglądarką naprawdę tępą, aczkolwiek grubo ponad połowa ludzi z niej korzysta [glowa]. Kolejną taką samą rewolucją może być świetnie zapowiadany (:-D) IE7 :-D. Podobno będzie rewolucyjne blokowanie pop-up'ów... oraz oczywiście ochrona przed atakami hakierskimi.
(...)
Uwaga: alternatywę może też stanowić pisanie stron tylko pod mądre przeglądarki, tj. Mozilla (...)

Bez obrazy, ale od razu widać kompleks usera linuxa/unixa. Pozostawię bez komentarza, bo tylko na śmiech mnie zbiera...

0

Bez obrazy, ale od razu widać kompleks usera linuxa/unixa. (...)

Marooned, przecież ja tylko żartowałem ;-) Mylisz się co do kompleksu usera Linux'a - wcale nie przepadam maniakalnie za tym systemem. Nie lubię tylko strasznie dziurawego oprogramowania Microsoft'u (czyt. IE, OE, Messanger, itp.). Za to preferuję Open Source'owe projekty, typu Mozilla, Jabber, itp. pod system Windows.

//dopisane:
Osobiście śmieszą mnie zapaleni linuxiarze...

0

Skoro tak przy OT juz jestesmy, to ja jestem za tym, by trzymac sie standardow, ale nie stosowac az tak zaawansowanych rzeczy, aby ktorakolwiek przegladarka z "wielkiej trojki" nie byla w stanie w ogole tego wyswietlic. I tak, IMHO, najwazniejsza jest tresc, a nie wyglad.
A to, ze IE najwolniej przystosowuje sie do standardow, to juz inna bajka. Najbardziej denerwuja mnie strony typu IE-only. Ale ostatnio nacialem sie na (skadinad bardzo ladna) strone typu Mozilla-only. Brat wlaczyl ja w IE i wygladala strasznie. Cos mnie tknelo, aby obejrzec ja w FF. Ujrzalem cudo. Ale za jaka cene to wszystko? Ze sporo ponad polowa internautow nie moze jej obejrzec? Jezeli juz sie robi takie strony, to przydaloby sie umiescic w widocznym dla IE miejscu link do screena z tym, jak to powinno wygladac, aby moc stwierdzic, czy czegos nie przeoczylismy (w druga strone tak samo... moze na IE-only stronie tez byc cos ciekawego czego z innych przegladarek nie ujrzymy).

0

Temat stron internetowych pod wszystkie przeglądarki (tzw. any browser) to naprawdę temat rzeka i można by dużo pisać. Podzielam tutaj pogląd Dryobates'a i też uważam, że należy pisać z obowiązującymi standardami WC3 i od nich nie odbiegać. Z drugiej jednak strony fakt przytłaczającej większości internautów używających przeglądarki Microsoft'u nasuwa pytanie: czy warto pisać np. w prawdziwym XHTML'u, robić różne efekty, itp. czego IE nie potrafi? - odpowiedź jest lapidarna: tak. W końcu i IE z czasem przyswoi standardy tworzenia stron... a takie przeglądarki jak Mozilla czy Opera uzyskują coraz większe poparcie wśród użytkowników Internetu. Pewnie z tego powodu, że ich postęp technologiczny jest o wiele szybszy niż kolegi z Microsoft'u. Odnośnie Twojego ostatniego zdania, Dryo:

(...) moze na IE-only stronie tez byc cos ciekawego czego z innych przegladarek nie ujrzymy (...)
Jest to po części prawdą, ponieważ Microsoft niestety wprowadza własne znaczniki do specyfikacji. Na pół trafnym przykładem może być marquee.

To, co napisałem powyżej, to moje osobiste zdanie - nikt nie musi się z nim zgadzać. Niekulturalnym jest również wyzywanie od zakompleksionych linuxiarzy, itp. Lepiej ugryźć się "w palec".

0

Po pierwsze - kod działa, dzięki.
Po drugie - Marooned, weź se na wstrzymanie. Faktom nie zaprzeczysz - IE to najgorsza technicznie przeglądarka z tych aktualnie używanych przez większą ilość ludzi (nie liczę np. wynalazków AOLa, bo to już jest porażka której się do niczego nie da porównać...). I nie widzę sensu w wyciąganiu tu systemu operacyjnego jakiego ktoś używa - niby jaki to ma związek? Znam wielu ludzi, którzy używają Windowsa a też twierdzą, że IE to gniot. Nie wspominam już o tym, że jest masa wieloplatformowych przeglądarek, których każdy może użyć bez względu na system operacyjny, więc nie sądzę że takowy ma jakikolwiek związek z dyskusją.
Po trzecie - zgadzam się z przedmówcą. Standardów trzymam się tak, jak tylko mogę - porządek od technicznej strony to podstawa. A jeśli coś nie działa pod pewną niepełnosprawną przeglądarką - czasami coś z tym robię, ale czasami nie widzę powodu, dla którego JA mam poprawiać błędy po kimś innym (ba, ten ktoś inny to w końcu profesjonalny, dobrze opłacany programista na prestiżowym stanowisku w wielkiej, ogólnoświatowej korporacji - toć on się zna lepiej... [na wszelki wypadek: to jest ironia]), więc nie poprawiam. Nowy nagłówek w moim serwisie wejdzie za parę dni, jak go jeszcze doszlifuję - ale nie chcę jeszcze jednej klasy tylko dla IE wprowadzać żeby noprint obsługiwał (ta klasa ma po prostu w @media prit ustawione display: none i oznaczone nią elementy, np. nawigacja, się nie drukują, jako niepotrzebne na papierze), a jak się ktoś będzie czepiać, powiem (zgodnie z prawdą), że każda inna przeglądarka to obsługuje, tylko IE nie potrafi.

A tak jeśli o marquee chodzi - jestem skłonny postawić trzy piwa (lub wysłać równowartość przelewem, jeśli ktoś nie mieszka w pobliżu Wrocławia) osobie, która mi znajdzie coś zgodnego z XHMTL/CSS co będzie wyglądać tak samo, jak obecne marquee w nagłówku strony pod powyżej podanym linkiem (widoczne tylko, jak ktoś jest na czacie - w innym wypadku jest tekst "Ognisko jest zgaszone"...)

0

To jest mój ostatni post w tym wątku.

Marooned, weź se na wstrzymanie. Faktom nie zaprzeczysz - IE to najgorsza technicznie przeglądarka z tych aktualnie używanych przez większą ilość ludzi.

To są jakieś Twoje fakty - napisałem nie jedną stronkę i dla mnie fakty są dokładnie odwrotne. To zawsze inne przeglądarki nie radziły se w pełni ze stronami, a IE zawsze wszystko pięknie wyświetlał. Więc weź z łaski swojej nie pisz takich idiotyzmów, bo to farsa w biały dzień.
najgorsza technicznie przeglądarka - lol...

0

my_nick: zerknalem w zrodla twojej stronki.
Jezeli mozna cos doradzic, to jak pewnie na w3.org czytales, lepiej jest css umieszczac w oddzielnym pliku, bo umieszczajac w style w tym samym pliku, niektore przegladarki nieobslugujace css moga sie pomylic.
I druga rzecz. Prawie przy kazdym paragrafie masz styl ustawiany. Daj jakas klase do tego. Zawsze to bardziej elastycznie.

0

my_nick: zerknalem w zrodla twojej stronki.
Jezeli mozna cos doradzic, to jak pewnie na w3.org czytales, lepiej jest css umieszczac w oddzielnym pliku, bo umieszczajac w style w tym samym pliku, niektore przegladarki nieobslugujace css moga sie pomylic.
I druga rzecz. Prawie przy kazdym paragrafie masz styl ustawiany. Daj jakas klase do tego. Zawsze to bardziej elastycznie.

CSS w nagłówku jest tylko w testowej wersji (n=1 w parametrach), normalnie to jest tylko w plikach, a to zrobiłem żeby łatwiej edytować.
A jeśli chodzi o style w paragrafach - spora część kodu to jeszcze dzieło poprzedniego twórcy (po którym ja przejąłem serwis), chwilami prawie dwuletni złom, ciągle pracuję nad ulepszeniem tego...

0

Marooned, weź se na wstrzymanie. Faktom nie zaprzeczysz - IE to najgorsza technicznie przeglądarka z tych aktualnie używanych przez większą ilość ludzi.

To są jakieś Twoje fakty - napisałem nie jedną stronkę i dla mnie fakty są dokładnie odwrotne. To zawsze inne przeglądarki nie radziły se w pełni ze stronami, a IE zawsze wszystko pięknie wyświetlał. Więc weź z łaski swojej nie pisz takich idiotyzmów, bo to farsa w biały dzień.
najgorsza technicznie przeglądarka - lol...

Jeśli strona wyświetla się prawidłowo w IE, a źle w innych przeglądarkach, np. opartych o silnik Gecko (czyt. "jedynie słusznych"), to na 100% jest napisana nielogicznie. Marooned: nie podejrzewałbym Ciebie o takie stwierdzenia, ale cóż - każdy ma swoje "widzi mi się".

P.S. A ostatnie zdanie w trybie rozkazującym należy skierować w Twoją stronę...

0

Jak dzialaja niektore przyklady wykorzystania list z css w roznych przegladarkach:
http://css.maxdesign.com.au/listamatic/browser-support.htm
http://css.maxdesign.com.au/listamatic2/browser-support.htm
Swoja droga cala stronka jest niesamowita.

Jezeli chodzi o IE, to mnie jedna rzecz troszke wkurza... wyswietlanie png. Nie bardzo mam alternatywe dla wyswietlania obrazkow z kanalem alfa, a w IE pod Win wyglada to troszke... brzydko.
Z tego co czytalem to podobno IE pod Mac jest podnobno przegladarka najlepiej obslugujaca png. Ciekawe...

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