Obecnie piszę na swoje potrzeby stronę internetową. Staram się trzymać standardów, sięgam do dokumentacji MDN. Zdaję sobie sprawę, że większość (bo znam takie co nie) języków programowania stale wprowadza nowe standardy. Zastanawiam się jednak, czy HTML i CSS nie robią tego za wolno. Podam kilka przykładów.
Pierwszy niepokojący problem, to uspokojenie pływających divów. Oczywiście pusty, czyszczący div jest zbędny, więc warto zastosować pseudo-element :after. Według mnie to nadal taki półśrodek, ponieważ w ogóle nie powinniśmy się martwić czyszczeniem. Na szczęście twórcy zaimplementowali elastyczny układ elementów, jednak nie widzę, by polecano go na tym forum użytkownikom.
Kolejną sprawą jest wykonanie poziomego menu, dokładnie podążając za opisem na http://webkod.pl, wykonałem podobne menu na swojej stronie. Okazało się, że jest problem z płynną animacją, opisaną w tym dziale: http://webkod.pl/kurs-css/lekcje/dzial-3/animowanie-rozwijanej-czesci-menu-css. Na podanej podstronie ten aspekt jest nawet opisany, chodzi o właściwość visibility. W wielkim skrócie mówiąc, pomimo zastosowania tej sztuczki, czasem zdarzało się tak, że tło nierozwiniętego menu nadal było widoczne, gdy kursor opuścił menu (lista podrzędna się zwijała, tło pozostawało). Uporałem się z tym, dodając właściwość opacity: 0, gdy lista była zwinięta. Na tym przykładzie chcę pokazać, że część przeglądarek, a nawet indywidualnych komputerów, zachowuje się nieprzewidywalnie.
Trzecia sprawa dotyczy przeglądarek. Czy nie powinno być tak, że to ich twórcy przystosowują się do standardów? OK, pewnie standardy tworzą osoby, które piszą przeglądarki... Ale dlaczego by się nie dogadać i to wszystko usystematyzować? Co więcej, dlaczego przyjęło się dbać o kompatybilność wsteczną? Ja wiem, lepiej jak strona ma szersze grono odbiorców, ale czy naprawdę nie powinno się wymusić instalowania nowszych przeglądarek? Tak się dzieje z systemami operacyjnymi czy choćby grami. Nikt się nie przejmuje, że na wolnym komputerze te programy nie zadziałają, a czemu webmasterzy mają być gorsi? Zresztą nowe przeglądarki nie są aż tak wymagające jak gry, w dodatku są darmowe. Przez takie podejście nikt nie będzie używał elastycznych elementów, bo dla < IE11 one nie zadziałają.
Kiedyś tworzyłem proste strony, nie oglądając się na standardy, teraz staram się do tego przyłożyć i niepokoi mnie ten chaos. Praca webmastera jest naprawdę wymagająca. Czy ktoś z Was miał podobne przemyślenia albo potrafi uzasadnić skąd się bierze taki bałagan:
background: -webkit-linear-gradient(top left, red, red 60%, blue);
background: -moz-linear-gradient(top left, red, red 60%, blue);
background: -o-linear-gradient(top left, red, red 60%, blue);
background: linear-gradient(to bottom right, red, red 60%, blue);
skoro gradient wprowadzono przed 2010 rokiem? Gdzie tu logika w tym wszystkim? Szczerze mam nadzieję, że gdzieś jest błąd w moim rozumowaniu.