Wersji Transitional nie ma co używać. Fakt, niektóre edytory domyślnie wstawiają ten DOCTYPE, ale to jest dla plebsu, nie dla normalnych programistów ;). Ustawienie to można zresztą zwykle zmienić.
Problemem jest nie tyle "starość" wersji Transitional, co fakt, że od wersji Strict różni się większym luzem. Ten "luz" objawia się przyzwoleniem na stosowanie niesemantycznych, prezentacyjnych znaczników. A tych nie powinniśmy stosować. Wersje Strict nam tego zabraniają, i dobrze.
Co do XHTML-a... Uważam, że nieco lepiej go NIE stosować, gdy nie trzeba. Gdy go używamy to wygląda to tak, jakbyśmy używali XML-a, tymczasem w rzeczywistości przeglądarka przeważnie i tak zinterpretuje nasz kod jak HTML z błędami. Nie jest tak łatwo serwować HTML w porządny sposób -- i to tak, by chodził na różnych przeglądarkach. Poza tym, prace nad XHTML-em zostały właściwie zarzucone. Wygląda na to, że XHTML uznano za ślepą uliczkę. No tak: sama jego nazwa to eXtensible [...] Markup Language. A ile razy tak naprawdę ludzie używali tej rozszerzalności? Prawie nigdy. Oczywiście: jeśli masz faktyczną potrzebę użycia XHTML-a, np. związaną z jakimiś narzędziami, które stosujesz, to użyj XHTML-a. Ale jak nie masz uzasadnienia, to po co?
Ja obecnie używam już w zasadzie wyłącznie HTML-a 5.
Tobie polecam to samo.
To z tym "w pełni wspieraniem" dopiero w roku 2022 to takie śmieszne i... niefortunne stwierdzenie. W roku 2022 to mają być co najmniej dwie niezależne implementacje, które będą W PEŁNI wspierały HTML5. Dopiero wtedy specyfikacja osiągnie status Rekomendacji, czyli najdojrzalszy z możliwych.
A wiesz jak to było np. z z CSS 2.1? CSS 2.0 powstało w 1998. Po burzliwych kilkunastu latach, wersja 2.0 została zarzucona i W3C przerzuciło się na standaryzację nieco zmienionej wersji 2.1. Ogólnie, standard CSS 2 był już bardzo szeroko wykorzystywany od wielu, wielu lat. Wiesz, że w CSS 1 nie było nawet position: absolute
, czy w ogóle własności position
, z-index
itp.? Zostało to wprowadzone dopiero w CSS 2, a nie muszę mówić, jak powszechnie ludzie z tego korzystają, i to od dawna. Pierwszą wersję CSS2 opublikowano w 1998, a wiesz kiedy CSS 2.1 uzyskało status Rekomendacji? W ZESZŁYM MIESIĄCU. Tak. Przez ostatnią dekadę ludzie powszechnie używali "niedojrzałego" standardu! I przeżyli.
HTML-a 5 też można używać bezpiecznie. Byle z głową. I nie, nie ma co się obawiać, że nagle zmienią jakąś podstawową rzecz. Są na to marne szanse. HTML5 od początku został projektowany tak, by jak najmniej mieszać i wykorzystywać jak najwięcej tego, co już przeglądarki rozumieją.
Nie musisz używać <video>
czy <audio>
-- są super, ale nie wszędzie działają.
Ale możesz używać wielu podstawowych rzeczy.
Zwięzły doctype, który możesz napisać z palca. Brak atrybutów type
przy dołączaniu stylów (<link>
, <style>
) i skryptów (<script>
) -- i tak wiadomo, że do stylów wszyscy używają CSS, a do skryptów JS, więc nie ma co udawać, że trzeba definiować używany język w atrybutach type
. Krótszy meta-tag charset
. Linki, które mogą zawierać elementy blokowe.
Wszystkie z powyższych rzeczy działają we wszystkich przeglądarkach i można ich bezpiecznie używać.
Osobiście, jak najczęściej rezygnuję ze wspierania wizualiów w IE8 i starszych z wyłączoną obsługą JavaScriptu. I stosuję nowe tagi semantyczne (<article>
, <section>
...). Fakt, nie działają nawet w IE8 -- czym Microsoft był cholernie zażenowany, i słusznie -- ale jest na to prościusieńki, javascriptowy fix. Gotowiec, który to wszystko naprawia. A jak ktoś ma IE6-IE8 oraz wyłączony JS, to ma pecha. Zwykle mogę sobie pozwolić, by takich delikwentów olać i dać im stronę np. w ogóle bez stylów.
Nowa semantyka z HTML-a 5 = lepsza dostępność. Lepsza struktura witryny. Łatwiejsze posługiwanie się nagłówkami. Mniej <divów>
. Teoretycznie: lepsze możliwości indeksowania witryny przez Google.
Ja tam jestem za!
Osobiście, używam nawet czego się da z CSS3. Strona waży dużo mniej, ładuje się szybciej i jest prostsza w utrzymaniu, jeśli do cieni, zaokrąglonych rogów czy gradientów zaprzęgniemy CSS, a nie obrazki. Dla starych IE: ponownie, są fixy JS-owe, działające wystarczająco sprawnie dla większości zastosowań. Albo fallback do klasycznego CSS 2.1.