hasLayout i jego implikacje, cz. I
20 stycznia 2006
Internet Explorer 6 jest przeglądarką o bardzo nieefektywnym i pełnym błędów silniku renderującym strony. Wie o tym każdy kto próbował stworzyć coś dla www korzystając ze standardów internetowych, a nie na przykład, z Front Page. Osoby siedzące w projektowaniu i budowaniu witryn przywykły już do dziwnego zachowania IE i co więcej - nauczyły się je ujarzmiać. Jeśli nie w pełni, to w dość dużej części - aby ładny i użyteczny efekt był widoczny nie tylko w parunastu procentach komputerów podpiętych do Internetu.
Codzienność i rutyna podpowiada, że najlepiej poszukiwać błędów u źródła, odcinając całą popsutą gałązkę nietrafnych rozwiązań i złych pomysłów. Tak się ma programowanie - najlepiej zacząć zadawać inne pytania, niż próbować rozwiązać skomplikowany problem dodając jeszcze więcej kodu. I tak się również, w uproszczeniu, powinno mieć webprojektowanie.
Jednak nawet wśród uświadomionej części webdeveloperów panuje ogólne przekonanie, że szablon strony należy pohackować wszystkimi dostępnymi i nie wadzącymi w niczym innym, metodami. Używane są błędy parsowania arkusza stylów, aby wepchnąć Explorerowi zjadliwy kod. Opuszczane są często jak najbardziej poprawne rozwiązania, na rzecz akceptowalnych, ale mniej schludnych i zrozumiałych.
Te wszystkie wysiłki są głównie spowodowane tym, że - generalizując, więc nie miej żalu - większa część projektantów przyjmuje za aksjomat fakt, iż IE zachowuje się zawsze dziwnie. Dysponują oni listą najpopularniejszych hacków i workaroundów na określone problemy i z tą świętą kartką czy plikiem tekstowym podróżują przez krainy dziwactw IE.
I tak się da żyć, w sumie. Wykorzystując określony, z góry dany zestaw elementów i sposobów ich używania na stronach, jesteśmy w stanie zbudować nawet ciekawe szablony udekorowane grafiką. Czasem kosztem zepsucia semantycznej struktury w paru miejscach, ale w końcu kto by się przejmował dodatkowym znacznikiem span.
Ja się nie przejmuję, nie zrozum mnie źle. Obserwowałem - wielokrotnie z osłupieniem i zafascynowaniem jednocześnie - przeróżne cyrki z pikselami w okienku przeglądarki Microsoftu, jak w nowoczesnej wersji kalejdoskopu. Wyszukiwanie w Internecie mam już we krwi, więc dało się znaleźć działające sposoby na IE. Jednak, niesmak pozostawał. Przecież coś musi powodować te osobliwe przypadki, prawda?
Tak się złożyło, że wertując kolejne strony na blogach i serwisach poświęconych standardom sieciowym znalazłem wzmiankę o (bo powszechne są tylko artykuły o hackach), ni to atrybucie, ni własności - tajemnicznym hasLayout. Czymś co odpowiednio ujarzmione potrafi pozbywać się niedoskonałości silnika renderującego IE jeden za drugim. Oraz, jak to zwykle bywa z potężnym orężem, czyniącym spustoszenia po naszej stronie w razie niepoprawnego użycia.
Nie jest to jednak „Wunder Waffe” czy remedium na wszystkie bolączki, a na pewno nie samo źródło problemów IE. Aczkolwiek wiedza dotycząca hasLayout i właśnie jego implikacji na rendering, pomoże podejść analitycznie do nowego dziwactwa wyprodukowanego w okienku z niebieskim e. Analitycznie, a nie na chybił trafił, rozumiesz.
Cdn. Część II →


