Programing

HTML 5 대 XHTML 1.0 전환?

즐거운 cyworld 2021. 1. 10. 16:46
반응형

HTML 5 대 XHTML 1.0 전환?


HTML 5는 Firefox 3.1 및 기타 브라우저에서 부분적으로 지원 될 것으로 보입니다. 비디오 및 오디오에 대한 지원을 태그로 추가하고 있지만 이는 XHTML 1.0 Transitional이 인식하지 못하는 새로운 태그입니다. 향후 Firefox 버전에서 새 HTML 5 태그를 사용하지만 XHTML 용 DTD를 사용하면 어떻게됩니까? HTML 5 마크 업을 XHTML 1.0 Trans와 혼합하면 어떻게됩니까?

이것은 혼란스러워지고 있습니다. 이 태그를 XHTML에 추가하지 않은 이유는 무엇입니까? XHTML과 HTML 5를 어떻게 지원합니까?

HTML 5 동영상 : https://www.youtube.com/watch?v=xIxDJof7xxQ


일반적으로 HTML은 SGML이고 XHTML은 XML로 표현됩니다. 그렇기 때문에 XHTML을 만드는 것은 HTML보다 더 많은 제한 (마크 업 형태)과 관련이 있습니다. ( SGML 기반 vs XML 기반 HTML )

Wikipedia 에서 언급했듯이 HTML 5에는 XHTML 변형 (XHTML 5)도 있습니다.

경험 법칙 : 항상 유효한 마크 업을 사용해야합니다. 또한 XHTML 1.0 Transitional에서 언급 된 <video>또는 <audio>태그는 해당 사양의 요소가 아니므로 사용해서는 안됩니다 . 정말로 이러한 태그를 사용해야하는 경우 (나는 매우 의심 스럽지만) 문서가 해당 DOCTYPE에 있음을 지정하기 위해 HTML 5 / XHTML 5 DTD를 사용해야합니다.

주어진 구현 상태 (AFAIK, 표준은 아직 정해지지 않았지만 맞습니까?)에서 HTML 5 또는 XHTML 5를 사용하면 거의 모든 사용자가 웹 사이트가 제대로 렌더링되지 않는 것을 볼 수 있으므로 비생산적 일 수 있습니다.

2013 편집 : 최근의 반대 투표로 인해 수락 된 답변을 (내가) 삭제할 수 없기 때문에 HTML5의 지원 및 표준화 프로세스가 5 년 전에이 답변을 작성했을 때와 완전히 다르다는 점을 추가하고 싶습니다. . 대부분의 주요 브라우저가 HTML5 초안의 대부분을 지원하고 이전 브라우저에서 많은 항목을 폴리 필로 수정할 수 있기 때문에 지금은 주로 HTML5를 사용합니다.


HTML5는 XHTML 1.0보다 작성하기가 훨씬 쉽습니다.

  1. " http://www.w3.org/1999/xhtml "네임 스페이스 를 수동으로 선언 할 필요가 없습니다 .

  2. 스크립트 및 스타일 요소에 유형 속성을 추가 할 필요가 없습니다 (기본값은 text / javascript 및 text / css).

  3. 브라우저가 대부분을 무시하는 긴 doctype을 사용할 필요가 없습니다. 기억하기 쉬운 <! DOCTYPE html>을 사용해야합니다.

  4. doctype에 dtd uri를 포함할지 여부를 선택할 수 없으며 transitional과 strict 중에서 선택할 수 없습니다. 전체 표준 모드를 ​​호출하는 엄격한 문서 유형이 있습니다. 이렇게하면 실수로 거의 표준 모드 또는 퀴크 모드에있는 것에 대해 걱정할 필요가 없습니다.

  5. charset 선언은 훨씬 간단합니다. 단지 <meta charset = "utf-8">입니다.

  6. void 요소를 <name>으로 작성하는 것이 혼란 스러우면 원하는 경우 <name />을 사용할 수 있습니다.

  7. HTML5는 http://validator.nu/에 정말 좋은 유효성 검사기를 가지고 있습니다. 유효성 검사기는 모든 규칙을 표현할 수없는 엉뚱한 DTD에 묶여 있지 않습니다.

  8. 유효성을 검사하기 위해 인라인 스크립트 또는 스타일 시트 (특정 상황에서)에 // <! [CDATA 등을 추가 할 필요가 없습니다.

  9. 필요한 경우 embed를 사용할 수 있습니다.

문법적으로 만 HTML5를 사용하면 항상 표준 모드를 ​​호출하는 더 깨끗하고 읽기 쉬운 마크 업이됩니다. XHTML 1.0 (텍스트 / html로 제공됨)을 사용할 때 브라우저가 자동으로 수행 할 여러 가지 crud (엉뚱한 dtd에 대해 유효성을 검사하기 위해)를 지정합니다.


이 스레드에는 신화와 오해가 많습니다.

  1. XHTML 1.0은 HTML 5보다 오래되었습니다. 새로운 어휘를 사용할 수 없습니다. 실제로 주요 판매 포인트는 HTML 4.01과 정확히 동일한 어휘를 사용한다는 것입니다.

  2. 아마도 XHTML 1.2는 없을 것입니다. 그리고 그것은 필요하지 않습니다. XHTML 5는 HTML 5의 XML 직렬화입니다. 동일한 어휘, 다른 구문 분석 규칙.

  3. HTML은 브라우저에서 진정한 SGML로 취급되지 않았습니다. SGML 호환 파서를 구현 한 브라우저는 없습니다. HTML 5는이 사실을 규칙으로 만들고 HTML 직렬화는 오늘날의 사실상의 표준을 따를 것입니다. 아마도 "SGML-ish"라고 말할 수있을 것입니다.

  4. 언급했듯이 DTD는 브라우저에서 정확히 한 가지 목적을 제공하며 표준 준수 모드와 쿼크 모드를 구별하는 것입니다. 따라서 스타일과 스크립팅에만 영향을줍니다. 엄격한 문서 유형이있는 페이지에서 프레임을 사용하는 경우 제대로 렌더링됩니다. <embed>와 심지어 <marquee>도 마찬가지입니다. 비록 후자는 가증스럽고 전자는 현재 표준에 없더라도 말입니다. 하지만 HTML 5의 일부입니다.

  5. 직렬화, XML 또는 HTML에 관계없이 비디오 및 오디오를 사용할 수 있습니다. 그것들은 HTML 5와 XHTML 5의 일부입니다. 일단 구문 분석 단계가 브라우저를 통해 끝나면 문서의 내부 DOM이 구성됩니다. 해당 DOM은 직렬화에 관계없이 모든 실용적인 목적을 위해 동일합니다. 그리고 예, text / html로 보낸 XHTML은 doctype에 관계없이 여전히 정상적인 html입니다.


XHTML 1.x 섹션, HTML 5 와의 관계가 다음 같이 명시 하기 때문에 문제를 잘못된 방식으로보고있을 수 있습니다 .

"이 사양은 HTML 어휘의 XML 직렬화에 대한 표준 정의로서 XHTML 1.0을 대체하기위한 것입니다."

이제 그 언어는 논란의 여지가 있지만 (XHTML 2 WG는 이의를 제기했고 HTML WG는 차이점을 해결하려고합니다 ...) 지금 우리가 서있는 곳입니다.

몇 가지 참고 사항 :


Keep in mind that doctypes only serve one purpose in browsers: switch between quirks, almost standards and standards mode. Therefore, using <video> and <audio> will work with any doctype declaration. IMO, using an XHTML doctype is quite useless, as every page you send with text/html MIME type is parsed as (tag-soup) HTML anyways. I suggest using the HTML5 doctype (<!doctype html>), as it is easier to remember and doesn't force you in XML syntax without a reason.

Why didn't they just add these tags to XHTML?

They actually did, there is an XML serialization of HTML 5 (XHTML5). To use this, you have to send your pages with an XML MIME type, such as application/xhtml+xml. This is not (yet) supported by IE, though.


What is the behavior supposed to be if I use a new HTML 5 tag in a future version of Firefox but use the DTD for XHTML?

And what if I mix HTML 5 markup with XHTML 1.0 Trans?

If your markup isn't implemented as part of your chosen DTD - then logically, that markup shouldn't be followed. But browser implementations aren't always strictly logical.

Why didn't they just add these tags to XHTML? How do we support both XHTML and HTML 5?

xHTML is not better than HTML, but it's more suited to some applications. One of the main benefits of xHTML is that it can be transformed into different formats using XSLT. For example, you could use XSLT to automatically transform xHTML into an RSS feed or another XML format.

You don't need to support both formats - weigh up the benefits/drawbacks for each with your project's requirements. HTML 5 probably won't be standard for quite some time.


(X)HTML5 is just the next version. You should be using XHTML1.1 until XHTML5 is well-supported.

You probably should not use the backwards-compatability SGML profile of HTML5. It makes things harder for scrapers and small parsers.


Your doctype will tell the browser whether you're using HTML5 or XHTML. You can't just shove a tag from one doctype into a document of another doctype and expect it to work. Without a doctype, it's all just tag soup anyway.


Don't use things like video/audio tags when 99% of people won't be able to view it properly on their browser. For either of these two examples I'd suggest using FLV.

XHTML에 추가하지 않는 이유에 관해서는 먼저 1.0이 최신 버전이 아니라 1.1이 얼마 전에 출시되었습니다.

결국 모든 것이 표준화되고 두 표준 모두에서 이러한 유형의 태그를 볼 수 있지만 지금은 최대한 많은 사람들이 콘텐츠를 볼 수 있도록 할 수있는 일을하십시오.

참조 URL : https://stackoverflow.com/questions/256953/html-5-versus-xhtml-1-0-transitional

반응형