(Małe) zamieszanie z CSS: WebKit kolejnym „Internet Explorerem” dla stron?

10.02.2012 13:10, Autor: Tomasz Janusz (tomick), Kategoria: Felieton
NewsImage

CSS towarzyszy nam — twórcom stron internetowych — już od 16 lat, przechodząc przez liczne złe implementacje w przeglądarkach, opóźnienia spowodowane obecnością szóstej generacji Internet Explorera przez 10 lat. Dziś twórcy stron internetowych stają przed równie poważnym zadaniem: czy używać prefiksów producenckich w arkuszach kaskadowych?

Twórcom WebKita nie można odmówić jednego: innowacyjności. To w głowach społeczności skupionej wokół tego silnika zrodziło się kilka ciekawych rozwiązań, które później przedstawiane są do standaryzacji na forum W3C. Problem powstaje gdy webmasterzy oczarowani demonstracjami pięknych stron zaczynają implementować te technologie na stronach internetowych, często zapominając, że... istnieją inne przeglądarki. Internet Explorer, Mozilla Firefox czy Opera — najnowsze wersje tych przeglądarek posiadają również możliwość wyświetlenia stron z pięknymi, dynamicznymi animacjami, zaokrąglonymi rogami i gradientami wyświetlanymi przy pomocy CSS, a nie grafik (choć przyznam, że niektórych rzeczy, szczególnie w IE9 jeszcze nie ma - ale do premiery dziesiątej wersji IE jest bliżej niż dalej).

Wracając jednak do CSS. Producenci przeglądarek, aby nie robić bałaganu, implementują testowe, oficjalnie nie ustandaryzowane deklaracje przy pomocy specjalnych prefiksów. Mamy więc dla przykładu: -webkit-transform, -moz-transform, -o-transform czy -ms-transform. Webmasterzy, którzy widzą demonstrację Google czy Apple jakiejś nowinki, która pojawiła się w WebKicie, niestety w swoich arkuszach CSS używają jedynie prefiksu -webkit. Powodem tego jest zazwyczaj zatracenie perspektywy lub lenistwo, ponieważ na nowo trzeba byłoby zadeklarować kilka różnych prefiksów — a przecież to nie jest wygodne.

Dochodzi do niebezpiecznego dla sieci zjawiska: wyróżniona zostaje jedna grupa przeglądarek. Brzmi znajomo, prawda? Cierpią na takiej polityce szczególnie przeglądarki mobilne, gdzie WebKit przy pomocy Androida i iOS'a ma bardzo duży udział w rynku. Co więcej, autorzy WebKita zapowiedzieli, że nie będą stopniowo porzucać prefiksów przy już ustandaryzowanych deklaracjach, jak zwykle to miało miejsce wcześniej, co zmuszałoby webmasterów do rewizji kodu. Powstaje więc wrażenie wśród czytelników stron, że pozostałe przeglądarki są gorsze i należy skorzystać np. z Safari lub Google Chrome.

Jak obejść problem? Przedstawiciele Microsoftu, Mozilli oraz Opery na forum CSS Working Group poinformowali o... rozważaniu scenariusza, zakładaującego implementację w swoich produktach części definicji, które poprzedzone są prefiksem -webkit. W takiej sytuacji należy wybrać: negatywne wrażenie użytkownika, albo stworzenie małego bałaganu w dokumentacji technicznej przeglądarki. Najwięcej na tym stracą webmasterzy, którzy będą musieli się przedzierać przez listy WebKitowych definicji „wklejonych” do innych przeglądarek. Dotychczas poprzez użycie prefiksu danej przeglądarki można było skorygować jakieś nieprawidłowe zachowania. Prefiksy są więc odpowiednikiem komentarzy warunkowych Internet Explorera.

Rozwiązaniem może być też zastosowanie pre-procesorów arkuszy kaskadowych, takich jak LESS czy SASS/SCSS. Które oferują zmienne i odpowiedniki funkcji w swoich językach, mogą również przywrócić równowagę w świecie prefiksów.

r   e   k   l   a   m   a

Komentarze (32)  

AvatarUżytkownik jest nieaktywny
TheBlackMan | 10.02.2012 13:15#1

Treść artykułu w skrócie:

Google/Apple się rozpędziły i idą drogą, którą kiedyś poszedł Internet Exploder implementując niekompatybilne ze standardami ficzery.

Mozili, Operze i Microsoftowi nie pozostaje nic innego niż się dostosować i zaimplementować te same elementy.

Avatar
GarryMoveOut (niezalogowany) | 10.02.2012 13:23#2

Historia lubi się powtarzać.

Avatar
Kiepski (niezalogowany) | 10.02.2012 13:26#3

@ TheBlackMan
Przeczytałem artykuł na głównej a dopiero potem komentarze. A tak oszczędził bym sobie ze 2 minuty. +1 za skompresowanie tej wiadomości.

@ Autor
"Które poza wielami dzięki wprowadzeniu odpowiedników zmiennych"
To jest poprawnie? Pytam bo nie zrozumiałem.

Avatar
jakub3000 (niezalogowany) | 10.02.2012 13:28#4

Czyli obwiniamy WebKita za błędy webdeveloperów a następnie rozwiązujemy problem utrudniając życie tym webdeveloperom którzy robią wszystko tak jak powinni?

AvatarUżytkownik jest nieaktywny
qasx | 10.02.2012 13:28#5

Najlepsze jest to, że pozostałe przeglądarki już są gorsze. Internet na tyle zdominowany jest przez Google, że ostatnio często korzystam właśnie z Chromea, bo w reszcie ich serwisy nie działają tak samo.
Pozostaje zastanowić się, czy pozostanie to tylko kwestia nazewnictwa, czy raczej wyraźnego wpływu twórców silnika na resztę internetu.
PS przypomniało mi się - http://www.tomick.pl/techblog/nowe-menu-wyboru-skorki-na-dobrychprogramach/

AvatarUżytkownik jest nieaktywny
lukasamd | 10.02.2012 13:44#6

Powinni nie implementować -webkit, tylko najzwyczajniej w życiu go olać.

AvatarUżytkownik jest nieaktywny
root4u | 10.02.2012 13:45#7

@qasx proszę nie obrażaj mnie. Opera już od dawna jest ma moim komputerze i nie zanosi się na zmianę. Opera wcale nie jest gorsza od Chrome.

AvatarUżytkownik jest nieaktywny
qasx | 10.02.2012 13:57#8

@root4u - na moim także jest od dawna i nadal będzie. Tylko w niektórych przypadkach już jest tak, że strona, którą zrobiło Google, działa tylko wtedy, kiedy zmieni się UA, ale i tak nie do końca.
Jeśli ludzie od Webkita będą stygmatyzować resztę, to będzie oczywiście dobrze, bo robią świetne rzeczy, i oczywiście źle, bo standardy będą sobie leżeć, a w prefiksach będzie bałagan.

AvatarUżytkownik jest nieaktywny
tomick (redakcja) | 10.02.2012 14:03#9

@TheBlackMan: Nie, wcale nie o to chodzi. Chodzi o webmasterów, którzy nie sprawdzają tego, czy coś jest dostępne w Firefoksie, IE czy Operze.

@qasx: oj oj, kiedy to było? :) Wtedy przejścia były dostępne tylko w Chrome, z powodu ślizgania się premiery 4.0 Firefoksa :)

Avatar
Preclo (niezalogowany) | 10.02.2012 14:05#10

Jak tylko prefix wychodzi za faze testow jest usuwany w webkicie (mozna uzyc po prostu transform: rotate(90);).

Nie wiem w czym problem, news brzmi jak te o globalnym ociepleniu.

Avatar
tira66 (niezalogowany) | 10.02.2012 14:07#11

Człowieku piszesz o rzeczach o których pojęcia nie masz...
Od kiedy to "vendor prefiks" działają podobnie do komentarzy warunkowych IE? To tylko kilka testowych reguł... w żaden sposób wykorzystując vendor "-moz-" nie zmienisz czcionki czy obramowania...

Avatar
gregoru (niezalogowany) | 10.02.2012 14:08#12

Apple, Google czy tam kto jeszcze niech sobie implementują co chcą, obowiązkiem prawdziwego webmastera jest tak napisać stronę, aby wyglądała jednakowo na różnych przeglądarkach i w różnych systemach. A zasada najważniejsza jest taka, im prościej, tym lepiej, więc należy olać wszystkie zbędne wodotryski.

Avatar
W3 (niezalogowany) | 10.02.2012 14:28#13

oj tam oj tam.. jedyna słuszna przeglądarka to google chrome :) i google ciężko pracuje żeby przypomnieć to wszystkim użytkownikom nie używającym jeszcze chrome'a :D

AvatarUżytkownik jest nieaktywny
TheBlackMan | 10.02.2012 14:42#14

@tomick

[[[@TheBlackMan: Nie, wcale nie o to chodzi. Chodzi o webmasterów, którzy nie sprawdzają tego, czy coś jest dostępne w Firefoksie, IE czy Operze. ]]]

Właśnie. A ponieważ webmasterzy nie sprawdzają i używają tych niekompatybilnych prefixów, twórcy webkitowych przeglądarek włączają je do własnego standardu na stałe.

Przez to wydarzenia idą tym samym torem co szły w czasach dominacji IE - tj. duże firmy implementują własne standardy, a reszta musi się dostosować, tylko przyczyny nieco się zmieniły.

Avatar
robinhut (niezalogowany) | 10.02.2012 15:06#15

to po to właśnie dzieją się sassy, lessy i inne stylusy, coby takie prefixy dodawać, usuwać i mnożyć w jednym miejscu, jednej linijce, e.g.: bit.ly/yHkUrf

Avatar
Anonim (niezalogowany) | 10.02.2012 15:14#16

Kto mieczem wojuje ten od miecza ginie. A co ? IE 9 znowu czegoś nie ma ? Czekamy na IE 10 co już będzie to miał ? Aha, to ja wolę Chrome'a. A tak na marginesie chyba są jakieś wytyczne i standardy. Ale developerzy wiedzą lepiej stąd użytkownicy innych przeglądarek są na straconej pozycji. No to kto tu zawinił - Google ? Toż to wredne siedlisko zła, psia mać. Dobrze, że to złe jest Google a nie developerzy. Kurcze zawsze to szkoda ludzi, nie ? Nie to co mityczna korporacja siejąca zgniliznę i zarazę. O żesz... :)

AvatarUżytkownik jest nieaktywny
NIC_pl | 10.02.2012 15:14#17

Innymi słowy organizacja W3C spada na łeb na szyję. Bo zamiast aktualizować standardy... to tego nie robią. A przecie można wydać CSS4 - zaimplementujesz - masz efekty, nie zaimplementujesz - strona dalej jakoś wygląda. Te znaczniki producenckie to dobra rzecz - są żywym dowodem że implementacja jest możliwe... A więc istnieje też implementacja wzorcowa. A Przy CSS2 czy CSS 3 W3C zrobiło takie znaczniki, których nikt nigdy nie zaimplementował :)

Ja bym to widział tak:
1. W3C aktualizuje standard co rok.
2. Dodaje znaczniki, których implementacja już istnieje.
3. W aktualizacjach rocznych znaczniki są dodawane jako opcjonalne. I dopiero gdy grupa twórców przeglądarek je zaakceptuje to mogą stać się obowiązkowymi (takie konsultacje społeczne)

Osobiście... usunąłbym ten cały XML/HTML/CSS/JavaScript ze świata. Udostępnić framework i stronki róbmy w Pythonie. Akurat odpowiednik tagów w Pythonie wyglądały nawet lepiej niż w HTMLu.

Avatar
@NIC_pl (niezalogowany) | 10.02.2012 15:53#18

Malo wiesz o stronkach. Python jedynie generuje HTML i CSS/XML. Dokladnie to generuje HAML, ktory jest parsowany do HTML. Pisanie w pythonie nic nie zmieni.

AvatarUżytkownik jest nieaktywny
fenixproductions | 10.02.2012 16:25#19

Albo powinienem czuć się jak prorok, albo to ludzie jacyś nieogarnięci. Od conajmniej 2 lat narzekam na owe prefiksy i ciężko mi uwierzyć, że dopiero teraz ktoś inny porusza ten temat.

Moje wizje na gorące tematy najbliższych miesięcy:
- badziewność MathML i potrzeba doklejenia TeXa do specyfikacji,
- brak wsparcia SVG w Windows,
- animowane PNG.

To tylko kilka z "oczywistych" prognoz :)

AvatarUżytkownik jest nieaktywny
mateooshn | 10.02.2012 16:50#20

@root4u: A jak u ciebie ze szybkością Opery? Bo u mnie na Kubuntu włącza się niemiłosiernie długo, a przy grach flash to już tragedia... Rekonq bazowany bodajże na webkit chodzi nieźle.

Avatar
witjacy (niezalogowany) | 10.02.2012 17:53#21

Najlepszy silnik to Presto i tylko pod Opere webmasterzy powinni pisać strony. W tedy wszystkie elementy będą działać poprawnie i będą zgodne ze standardami.
A Webkit to nieporozumienie, skoro błędnie interpretuje piksele.

AvatarUżytkownik jest nieaktywny
Mayron | 10.02.2012 18:23#22

@witjacy (niezalogowany)

Taki najlepszy, że rzadko kiedy wyświetla coś poprawnie ;p

AvatarUżytkownik jest nieaktywny
eDameXxX | 10.02.2012 18:42#23

@Mayron
Jak webmasterzy nie potrafią poprawnie napisać kodu, to się nie dziw. Zauważ jak często przy problemach z błędnym wyświetlaniem strony pod Operą wystarczy zmienić identyfikację przeglądarki i problem znika. W takich przypadkach wina leży po stronie kodu. A silnik Opery jest imho jednym z lepszych. Zobacz sobie jak dobrze wspiera różne oficjalne standardy i jaki jest szybki.

AvatarUżytkownik jest nieaktywny
aPoCoMiLogin | 10.02.2012 19:31#24

A co to za webmaster który tworzy html/css tylko pod jedną słuszną przeglądarkę? Jak długo zajmuje się fronendem, tak długo wiem że klient nawet głupi wymaga aby strona działała wszędzie. A od gradientów, rubensowskie kształty, czy inne ficzery, powstały odpowiednie generatory które generują kod dla wszystkich przeglądarek.

Tak, denerwuje mnie to, jako frontend developera że muszę kilka wersji pisać, wolałbym pisać jedną która działa pod każdą przeglądarką.

Jest na to rozwiązanie, ale konsorcjum musiało by znacznie szybciej działać, niż robi to obecnie. Każda niemal przeglądarka, ma swoją fazę beta, w tej fazie takie eksperymentalne ficzery wprowadzać, ale bez jakichś śmiesznych prefiksów. W tym samym czasie zgłosić się do konsorcjum, które MUSI zanim przeglądarka wyjdzie z wersji beta, postanowić czy nowy ficzer zostanie zaakceptowany czy odrzucony.

Generalnie to powinno być tak, że w przypadku niepoprawnego dokumentu html/css taki dokument nie powinien działać. Tak jak to ma miejsce w przypadku xml'a czy poprawnego xhtml (na dobrych programach jest używany xhtml, cholera wie w jakim celu, skoro jest wysyłany z nagłówkiem text/html..).

Ale o czym ja mówię ;)

BTW najlepiej zaimplementowane różnego rodzaju standardy, od html, po css są w operze. Można być fanatykiem czego się chce, ale fakty są niepodważalne. Używam opery do sprawdzenia poprawności wyświetlanej strony w pierwszej kolejności, następnie koryguje ją w dragonfly, który IMO jest najlepszym tego typu narzędziem, jeżeli chodzi o pozycjonowanie elementów .

Avatar
webdevlol (niezalogowany) | 10.02.2012 21:41#25

Prawda, to się robi chore, jak damy na stronę gradienty generowane przez css3 to naprawdę mamy tego dodatkowego kodu dla innych przeglądarek mnóstwo, nawet 5 razy tyle, co też robi swoje, chrome moim zdanie jest winne, jak wejdziecie np, przez operę na Google doc to wywala że nie obsługuje go wasza przeglądarka, a naprawdę Google kodem sprawdza czy to Opera i daje monit, wynika to z tego że Google wprowadza do swoich usług specyfikacje dostępną tylko dla Chrome, WebKit, moim zdaniem powinno się nałożyć na Google karę za wykorzystywanie swojej pozycji na rynku do nieuczciwego wciskania Chrome, i wmawiania ludziom że ich przeglądarki są złe, choć chodzi tu raczej o nieuczciwą walkę z konkurencją. Okiem webmastera powiem tylko tyle, po to się wprowadza standardy aby się do nich stosować, a skoro Google robi swoje to niech sp...... i tyle w temacie. Precz monopolowi.

AvatarUżytkownik jest nieaktywny
manieKMP | 11.02.2012 1:14#26

Jak na moje oko, najlepszym rozwiązaniem, a zarazem kompromisem byłaby implementacja prefiksu "-a-" (od "all", lub -g- od "general") do wszystkich przeglądarek, zamiast lub na równi tych wszystkich -moz-, -webkit-, -o-, -ms-...
Wtedy webdev. nie musiałby się bawić w np.
-moz-box-sizing
-webkit-box-sizing
-o-box-sizing
-ms-box-sizing
...
wystarczyło by:
-a-box-sizing

A resztę załatwiałoby to, czy dana przeglądarka ma w obsłudze te przykładowe "box-sizing", czy też nie.
Nie trzeba byłoby się rozpisywać (+ to, że jest to krótkie, 3 znaki, a nie jak w webkicie, aż 8), kod byłby bardzie klarowny i byłby to ustandaryzowany "znacznik" nieoficjalnych własności.

AvatarUżytkownik jest nieaktywny
Ardziej | 11.02.2012 2:03#27

Nie Google wina że się rozwijają, a CSS3 i HTML5 za 20 lat :)
No tak trzeba dopracować itd. za 10 lat dodamy coś z webkita itd.
Niech W3C się ruszy to problem zniknie.

AvatarUżytkownik jest nieaktywny
messc | 11.02.2012 12:24#28

Prawdopodobnie już to ktoś wymyślił, ale rzucam pomysł.
Należałoby napisać parser plików zawierających css, który analizowałby obecność specyficznych dla przeglądarki prefixów i dodawał do kodu odpowiednie alternatywy z innych przeglądarek. Sprawa dosyć prosta do napisania i do utrzymywania.

AvatarUżytkownik jest nieaktywny
LoonyFox | 12.02.2012 12:29#29

@messc: nie tylko wymyślił, ale i opisał w tym news'ie - ostatni akapit ;)

Problem jest chyba nieco inny niż w przypadku IE gdzie to MS narzucał standardy będąc monopolistą. Webkit, choć radzi sobie świetnie, monopolistą zdecydowanie nie jest, jeśli nawet zajmuje 2 miejsce to od bardzo niedawna.
Problemem są "łebmasakrateży", nie Ci którzy tworzą te CSSowe dema-cudeńka, tylko ci tani z 2 ręki, co "implementują" (programowanie metodą kopiuj-wklej) później toto w gotowych projektach. Pewnie nawet nie wiedzą do końca co ten pryfix "-webkit-" oznacza.

Avatar
malloth (niezalogowany) | 12.02.2012 16:57#30

Jeżeli chodzi o te prefiksy to jest to okropna bzdura. Niech się producenci przeglądarek dogadają i do standardu HTML5 dodadzą jednakowo zachowujące się style (zamiast przykładowego "-webkit-transform" dać po prostu "-transform" do specyfikacji HTML5). Co za głupota. Jak ktoś ma pomysł na dodatkowy styl - niech to od razu idzie do standaryzacji, a nie tylko do własnej przeglądarki.

AvatarUżytkownik jest nieaktywny
Dimatheus | 13.02.2012 9:38#31

Hej,

Zupełnie bez sensu. Największym leniom nie chce się stosować prefiksów, więc po części wyręczą ich twórcy przeglądarek - a ucierpi na tym reszta webmasterów. Dokąd ten świat zmierza?

Pozdrawiam,
Dimatheus

AvatarUżytkownik jest nieaktywny
Bucic | 13.02.2012 11:14#32

nie ma co zrzucac na tworcow stron. Samo lenistwo nie wystarczy do zasmiecenia standardow. Potrzebna jest jeszcze aktywna polityka firm o k*im nastawieniu.

Dodaj komentarz

Zasady publikowania komentarzy
Autor
Treść
 
Polecamy
Recenzja Samsung NP530U4B

Ultabook z nadwagą
Testujemy GALAXY NOTE

Czy to tablet z telefonem?
Test Sharp AQUOS SH80F

Warto (byłoby) się szarpnąć
Top programy
  •  
Top programy ostatnie 7 dni
  •  
Top programy ostatnie 30 dni
  •  
Skanery antywirusowe
skaner av