XHTML a HTML

piternet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 162
0

Witam!
Jestem w trakcie lektury książki Head First HTML with XHTML & CSS, wydanej w 2007 roku. Mam takie pytanie, gdyż właśnie skończyłem rozdział wprowadzający do XHTML-a. Było tam wyraźnie napisane, że nie będzie HTML w wersji 5, gdyż XHTML jest lepszy i kolejną wersją języka (X)HTML będzie XHTML 2.0. Jednakże tak się (chyba?) nie stało, gdyż głośno jest o HTML 5 i nowościach przez niego oferowanych (tag <video> zamiast Flasha Adobe itd.)

Mam w związku z tym pytanie - co stało się, że zaprzestano rozwoju XHTML na rzecz kolejnych wersji HTML?
Kolejne pytanie - chciałbym zawsze pisać w zgodzie ze standardami, w książce piszą, że najlepsza rzecz to pisanie w XHTML 1.0, a potem przerzucanie się na nowsze wersje tego języka. Czy w obecnej sytuacji lepiej jest pisać w HTML 5 czy XHTML 1.0? Jak wygląda DOCTYPE dla HTML 5?

Z góry dzięki za odpowiedź - szukałem trochę po internecie, ale HTML 5 to nowość i nie ma żadnych poradników czy kursów do niego się odnoszących.

Pozdrawiam
piternet

bordeux
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1130
1

html5 jest tak skonstruowany, że składnia z xHTML bez problemu działa. Wystarczy tylko zmienić nagłówek na HTML5.

Kopiuj
<!doctype html>

tak wygląda doctype dla html5.

Ja osobiście wybrałem pisanie starym xHTML w HTML5. Nie lubię takiej składni:

Kopiuj
<ul>
    <li>costam cos tam 
    <li>costam
</ul>

Moim zdaniem wszystko co ma swój początek musi i mieć koniec, dlatego polecam nie porzucania zamykania znaczników. Dlaczego? Trudniej będzie parsować dokument. Dzisiaj większość używa wyrażeń regularnych w stylu <tag>(.*?)</tag> . Lecz w pokazanym powyżej przykładzie, już te wyrażenie nie zadziała.

A czym jest tak naprawdę html5? Normalny html/xhtml tylko z nowymi tagami, jak <audio><video><canvas>, no i niepotrzebnymi <footer><header><time><nav>, nowymi polami w formularzu input[progressbar, time, date, numeric etc...] .... No i nowymi funkcjami/metodami w JS.

Najlepiej przypatrzyć się co nowego: tutaj jest wystarczająca prezentacja: http://slides.html5rocks.com/#landing-slide

piternet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 162
0

Okej, czyli zalecasz raczej używanie już html 5 zamiast xhtml 1.0?

bordeux
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1130
0

Pisz w xHTML ale używaj nagłówka z HTML5 (to co podałem powyżej) . Bo w HTML5 jest dozwolona struktura xHTML . Jak wyjdzie nowa wersja, np HTML6 to pewnie też nie będziesz mieć problemów z przeniesieniem się na nową.

SI
  • Rejestracja: dni
  • Ostatnio: dni
1

@autor:
XHTML to porzucony standard, ale można pisać w HTML5 serializowanym do XMLa, czyli XHTML5. Ogólnie obecnie korzystanie z XHTML mija się z celem, ponieważ najczęściej jest on interpretowany przez przeglądarki jako błędny HTML (zależy to od nagłówka content-type, trochę o tym pisałem tutaj). Dodam jeszcze, że tak naprawdę IE w wersjach < 9 w ogóle nie obsługuje XHTML.

Porównaj sobie wygląd i źródło dwóch poniższych stron:

  1. poprawny
  2. niepoprawny

Kolejne pytanie - chciałbym zawsze pisać w zgodzie ze standardami, w książce piszą, że najlepsza rzecz to pisanie w XHTML 1.0, a potem przerzucanie się na nowsze wersje tego języka. Czy w obecnej sytuacji lepiej jest pisać w HTML 5 czy XHTML 1.0? Jak wygląda DOCTYPE dla HTML 5?

W HTML5. Odpowiednio napisana strona w tym standardzie pójdzie na wszystkim. Teoretycznie korzystając z nowych znaczników (<header/>, <article/> ...) możesz mieć problemy ze starszymi wersjami IE, ale można to łatwo obejść.

Z góry dzięki za odpowiedź - szukałem trochę po internecie, ale HTML 5 to nowość i nie ma żadnych poradników czy kursów do niego się odnoszących.

Poradniki nie są potrzebne, ponieważ składnia języka nie jest żadną nowością, po prostu doszło kilka nowych znaczników i skrócono DOCTYPE.

@bordeux:

Moim zdaniem wszystko co ma swój początek musi i mieć koniec, dlatego polecam nie porzucania zamykania znaczników. Dlaczego? Trudniej będzie parsować dokument. Dzisiaj większość używa wyrażeń regularnych w stylu <tag>(.*?)</tag> . Lecz w pokazanym powyżej przykładzie, już te wyrażenie nie zadziała.

Nie do końca tak jest. Wyrażenia regularne są często stosowane właśnie dlatego, że nie zawsze składnia języka jest poprawna.

bordeux
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1130
0

Jeszcze dodam linki od siebie:
http://www.html5rocks.com/en/ <- tutaj masz tutoriale po angielsku, sampe code i playground.
Najlepiej uczyć się na przykładach: http://html5demos.com/

No i coś po polsku:
http://webhosting.pl/HTML.5.i.CSS.3.czyli.jak.bedziemy.tworzyc.strony.WWW.w.przyszlosci
No i więcej w google,
http://www.google.pl/webhp?sourceid=chrome-instant&ie=UTF-8&ion=1&nord=1#sclient=psy&hl=pl&safe=off&nord=1&site=webhp&source=hp&q=html+5+site:webhosting.pl&aq=f&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=d3bf7cccaffd755f&ion=1&biw=1366&bih=677

Nie do końca tak jest. Wyrażenia regularne są często stosowane właśnie dlatego, że nie zawsze składnia języka jest poprawna.

No to prawda, ale też dlatego, że wyrażenia są lekkie. Zaciąganie parsera w np. PHP jest powolne. Chodzi mi teraz o pobranie jednostkowych informacji z składni xml.
Z drugiej strony... lepiej się czyta dokument z zamkniętymi znacznikami.
PS.
Miałem ci wysłać linka o tym , że google tak uczy... lecz nie potrafię znaleźć, zbyt dużo dokumentów od nich.

piternet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 162
0

Mam jeszcze pytanie co do kodowania polskich znaków. W kursie pisali by kodować używając iso-8859-2:

Kopiuj
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> 

Wklejając mój kod na validatora w3c i zaznaczając tam Encoding: ISO-8859-2, otrzymuje błędy dla każdego użytego polskiego znaku, np.

Line 12, Column 12: Forbidden code point U+0084.

Co jest źle? Jakiego kodowania powinienem używać?

#edit
Co dziwnego, jak dam encoding: detect automatically, to on mi wykrywa utf-8 i wywala błąd:

Internal encoding declaration iso-8859-2 disagrees with the actual encoding of the document (utf-8).

bordeux
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1130
2
piternet napisał(a)

Mam jeszcze pytanie co do kodowania polskich znaków. W kursie pisali by kodować używając iso-8859-2:

Kopiuj
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> 

Wklejając mój kod na validatora w3c i zaznaczając tam Encoding: ISO-8859-2, otrzymuje błędy dla każdego użytego polskiego znaku, np.

Line 12, Column 12: Forbidden code point U+0084.

Co jest źle? Jakiego kodowania powinienem używać?

#edit
Co dziwnego, jak dam encoding: detect automatically, to on mi wykrywa utf-8 i wywala błąd:

Internal encoding declaration iso-8859-2 disagrees with the actual encoding of the document (utf-8).

Jak kodujesz w ISO-8859-2 to nie możesz umieszczać polskich znaków (niektórych) w pliku .html.
Np zamiast ś musisz wstawić znak ¶ , zamiast ą musisz wstawić ± . (tutaj masz konwerter http://konwerter.krajniak.org/)

Ale na wstępie ci mówie, że MUSISZ porzucić iso-8859-2 - nie ma żadnej reguły, ale to dla twojego dobra. Wszyscy teraz kodują w UTF-8.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Używaj tylko utf-8. Będzie łatwiej dla odwiedzających.

SI
  • Rejestracja: dni
  • Ostatnio: dni
1

To ja jeszcze dodam, że w HTML5 kodowanie definiujemy tak:

Kopiuj
<meta charset="UTF-8" />

Najlepsze jest w tym to, że zadziała również na starszych przeglądarkach, wynika to trochę z błędu początkujących (zamiast zapisu content="text/html; charset=iso-8859-2" można spotkać się z błędnym content="text/html; charset="iso-8859-2"", czyli za dużo znaków " na co producenci przeglądarek musieli odpowiednio zereagować).

piternet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 162
0

Kurde, pozamieniałem gdzie się da na utf-8 (w chrome zamieniłem kodowanie na utf-8; w pliku html ustawiłem <meta charset="UTF-8" />; kodowanie w notepad++ ustawiłem "koduj w utf-8). W notepadzie++ widzę dziwne znaki, to samo w chrome jak oglądam moją strone. Co znow :/?

SI
  • Rejestracja: dni
  • Ostatnio: dni
0

W notepadzie++ widzę dziwne znaki, to samo w chrome jak oglądam moją strone.

W edytorze widzisz dziwne znaki, więc nie dziw się, że przeglądarka je źle wyświetla :P

kodowanie w notepad++ ustawiłem "koduj w utf-8

Polecam korzystać z opcji konwertuj na format UTF-8 bez BOM ;)

TB
  • Rejestracja: dni
  • Ostatnio: dni
1

No tak szaleństwa xhtml'a objęły cały glob. Po co to komu? Niewielu webmasterów (nie mam tu na myśli tych prawdziwie profesjonalnych) nie zna nawet prawdziwych różnic między html a xhtml. A najlepiej poczytać o tym. Od siebie rzucę linkiem: http://pornel.net/xhtml. Artykuł krótki, ale odnośników w nim sporo. Pisałem osobiście z autorem tego arta i faktycznie uświadomił mnie w kilku istotnych kwestiach jak się później okazało. Błoga niewiedza czasami kosztuje.

A sam html5? Dla mnie rewelacja fajnie i przyjemnie buduje się na tym stronki. Do tego CSS3 i jakieś skrypty JavaScript, a strony zaczynają "ożywać".

Dużo wytrwałości i cierpliwości życzę autorowi tematu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.