Skip navigation.

Projektowanie i inne takie...

by Piotr Potera

Posts tagged with "IE"

Text-shadow w Internet Explorerze?

, , , ...

Proszę bardzo. Zrobiłem to w sumie jako szuka dla sztuki ale może komuś się przyda. Wersja wybitnie alpha i przeznaczona (narazie) do testów - zobacz przykład. Archiwum do zabawy jest tutaj (6kb).

Zabawka prawie całkowicie bezobsługowa. Opcjonalnie parametr - nazwa pliku CSS, w którym znajdują się odpowiednie reguły (domyślnie style.css). Funkcja sama znajduje te, które mają text-shadow i aplikuje patch. Internet Explorer wymaga dopisania to danej reguły dodatkowego elementu shadow z takimi samymi wartościami jak prawidłowy text-shadow, patrz przykład.

Co potrafi skrypt?
  • odnaleźć odpowiednie elementy w pliku CSS i zaaplikować im cień, jeśli przeglądarka nie obsługuje text-shadow;
  • ustawić odpowiedni kolor cienia według oryginalnej definicji;
  • ustawić odpowiednią pozycję cienia, również według oryginalnej definicji text-shadow;

Czego nie potrafi?
  • odnaleźć samego elementu, tak więc każdy obiekt, który ma/ma mieć text-shadow musi mieć klasę lub ID;
  • funkcja (jeszcze) nie respektuje kaskady CSS;
  • z oczywistych powodów ignoruje trzeci parametr text-shadow (wartość zmiękczenia cienia);

Czego wymaga?
  • pliku CSS z elementami zawierającymi text-shadow;
  • w przypadku selektora z klasą, trzeba podać również element, czyli nie .foo a np. div.foo;
  • dodatkowego wpisu dla IE do danej reguły w postaci shadow: [x]px [y]px [kolor cienia];
  • przeglądarki z niezlą obsługą DOM/Javascript (od IE6 w górę) :wink:

Co jeszcze do zrobienia?
  • poprawki błędów;
  • elementy bez ID/Class i kaskada CSS;
  • filtrowanie przeglądarek (aktualnie działa wszędzie - tam, gdzie nie potrzeba też);

A jak to wygląda?
Ano, na przykład tak:


Wszelkie uwagi mile widziane :wink:


Odstaw IE6 do lamusa! Start!

, , , ...

Premiera IE 8.0 była wczoraj, więc dziś, już oficjalnie, startujemy z kampanią. Czytajcie, promujcie i ewangelizujcie nieprzekonanych i ignorantów. Dla dobra wszystkich :cool:



Przy okazji, dziękuję wszystkim za pomoc, bez której ta strona nie mogłaby ruszyć:
- Łukasz Jankowski
- Kornel Lesiński
- Emil Oppeln-Bronikowski
- Damian Ostrowski


Jak oszukać przeglądarkę 2: IE i resetowanie styli...

, ,

Dziwna cecha Internet Explorera sprawia, że resetowanie styli w jego przypadku nie działa. Nie działa dokładnie ustalanie rozmiarów nagłówków jeśli wielkość czcionki dla elementu BODY jest określona względnie (procentowo lub w jednostkach em), lub też w jednostkach absolutnych (pc, ex, in), np.:

html, body, div, span, 
h1, h2, h3, h4, h5, h6, p, a, cite, code, em, img, strong, dl, 
dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, 
tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-family: inherit;
vertical-align: baseline;
line-height: 1;
}

body { font-size: 62.5%; }

Klik! (~154kb)



Zależnie od wariantu, nagłówki H1-H6 są albo za duże albo za małe choć wielkość pozostałych elementów jest liczona poprawnie. Aby rozwiązać ten problem albo zminimalizować jego negatywne efekty wystarczy, że do naszego arkusza dodamy następujące reguły:

*:first-child+html h1 { font-size: 192%; }
*:first-child+html h2 { font-size: 145%; }
*:first-child+html h3 { font-size: 115%; }
*:first-child+html h4 { font-size: 105%; }
*:first-child+html h5 { font-size: 80%; }
*:first-child+html h6 { font-size: 65%; }


Natomiast, z uwagi na to, że jest to hack, poniższe reguły najlepiej wrzucić do drugiego arkusza i serwować je tylko IE6.

h1 { _font-size: 192%; }
h2 { _font-size: 145%; }
h3 { _font-size: 115%; }
h4 { _font-size: 105%; }
h5 { _font-size: 80%; }
h6 { _font-size: 65%; }


...i wszystko wraca do normy. Voila! (~148kb)




PS: Pisałem to na szybko więc wymaga gruntownego przetestowania!


Przeźroczyste PNGi w IE6 po raz tysięczny...

, ,

Jest i było opisywane wiele razy już od co najmniej 8 lat a wy macie wciąż z tym problem. No dobra:

Gotowy przykład tutaj:
http://piotrpotera.com/helpdesk/pngFixExample

Paczka do pobrania tutaj:
http://piotrpotera.com/helpdesk/pngFixExample/pngFix.zip


...i na koniec kilka uwag:

1. obrazek blank.gif musi być zawsze aplikowany. Może mieć dowolny rozmiar, byle był GIFem i był przeźroczysty. Scieżka do niego znajduje się zaraz na początku pliku iepngfix.htc. Jego brak skutkuje piękną ramką wokół prawdziwego obrazka, informującą, że obrazek ów nie został poprawnie załadowany.

2. moża korzystać z PNGów w background-image ale obrazek taki nie może być powtarzany w osi x/y (ograniczenie explorerowego IEFilter).

3. dla pewności podaj jakieś wymiary dla elementów, które przepuszczasz przez filtr IE.

4. border i padding nie działa. Jeśli już musisz, opakuj obrazek w jakiegoś DIVa i jemu zaaplikuj odpowiednie style.

5. jesli dajesz przeźroczysty PNG jako tło dla elementu, nie może on mieć overflow: auto/scroll;. IE6 ma z tym duuuży problem ;-)

Gdzie dwóch się bije o patent, tam wszyscy tracą

, ,

Co prawda jeszcze nie na naszym podwórku ale to kwestia czasu. Źródło: pornel.net -> patent

Po kilkuletniej walce firma Eolas wygrała sprawę patentową z Microsoftem. W rezultacie po następnej aktualizacji (11 kwietnia) użytkownicy przeglądarki Internet Explorer (przez co również Maxthon, Avant i Netcaptor) będą musieli kliknięciem aktywować każdy interaktywny element osadzony na stronie WWW (dotyczy to animacji i reklam we Flash, klipów wideo i innych kontrolek ActiveX).

Przyczyna – patenty na oprogramowanie, które obejmują ideę, a nie wynalazek
Wystarczy poużywać nowego Explorera przez pare minut, żeby zrozumieć jak bezsensowny jest system patentowy zastosowany do oprogramowania. Technologia, która od ponad dekady jest uważana za coś oczywistego nagle stała się tak odkrywczą innowacją, że musi być chroniona przez państwo, nawet jeśli wyrządza to szkody gospodarcze.

Patent dotyczy wszystkich przeglądarek, ale w prawie patentowym nie rządzi sprawiedliwość, a jedynie chciwość posiadacza patentu. To on decyduje kiedy i kogo będzie szantażować. Nie musiał bronić swojego patentu od razu w 1998 roku – mógł przymykać oko czekając aż rybka urośnie i stanie się więcej warta. Może pozwać kogo chce – Microsoft jest warty pozywania, a inne firmy dla Eolas najwidoczniej jeszcze nie są wystarczająco bogate do płacenia patentowego okupu (dlatego póki co bez problemów będzie działać Opera i Firefox).

Ta groteska dzieje się na razie tylko w USA. Jest jeszcze szansa na uniknięcie takich patentów w Europie.

Skutki – ogromne, koszty zmian praktycznie wszystkich stron w Internecie
Obejście patentu jest tak samo trywialne jak sam patent. Niestety obejście to wymaga zmiany kodu stron WWW i ma negatywne efekty uboczne.

Stracą na tym posiadacze stron. Często są to małe firmy, które raz zrobiły stronę i teraz będą musiały szukać i zatrudniać kogoś do wprowadzenia obejścia. Dla dużych firm posiadających portale składające się z tysięcy podstron to też nie jest wesoła wiadomość.

Stracą na tym użytkownicy. Obejście wymaga dołączenia dodatkowych plików, a to spowalnia ładowanie stron. Strony które nie wprowadzą obejścia mogą być dezorientujące dla użytkowników – np. menu we Flash nie będzie reagowało na ruchy myszy póki użytkownik go umyślnie nie aktywuje.

Dostępność animacji Flash dla osób niepełnosprawnych i tak jest znikoma, a dodatkowa komplikacja z powodu patentu pogrzebie tę sprawę do końca.


Kto na tym zyskał?
Prawnicy. Tylko.
Eolas nie dostał ani grosza, bo Microsoft zdecydował się obejść patent zamiast wykupić licencję.
ActiveX nie został usunięty z Internet Explorera, więc Sieć nie zostanie uwolniona od tej niezbyt udanej technologii.
Popularność alternatywnych przeglądarek nie wzrośnie znacząco, bo przeciętni użytkownicy nie zorientują się dlaczego ich „Internet się popsuł” (a gdyby popularność którejś przeglądarki skoczyła, to Eolas ma prawo w każdej chwili ją „zestrzelić”).
Reklamy we Flash nie znikną ze stron WWW. Reklamodawcy zastosują obejście w swoim kodzie, a póki nie tego nie zrobią, to i tak reklamy będą się pokazywały tylko te pełnoekranowe będzie trudniej zamknąć...



Buuu...

,


IE7 beta2 już jest a ja nie mam nawet na czym przetestować... :worried: