주요 브라우저에서 구현 한 XHTML의 모든 유효한 자동 폐쇄 요소는 무엇입니까? 브라우저에서 지원하는 요소 목록을

XHTML의 모든 주요 자동 폐쇄 요소 (예 : <br/>)는 무엇입니까?

XHTML은 기술적으로 모든 요소를 ​​자동으로 닫을 수 있지만 모든 주요 브라우저에서 지원하는 요소 목록을 찾고 있습니다. <div />와 같은 자체 폐쇄 요소로 인한 일부 문제의 예는 http://dusan.fora.si/blog/self-closing-tags 를 참조 하십시오 .



답변

XHTML (Firefox, Opera, Safari, IE9 )을 지원 하는 모든 브라우저는 모든 요소 에서 자체 폐쇄 구문을 지원합니다 .

<div/>, <script/>, <br></br>모두 잘 작동합니다. 그렇지 않은 경우 XHTML DOCTYPE이 부적절하게 추가 된 HTML 이 있습니다.

DOCTYPE은 문서 해석 방법을 변경하지 않습니다. MIME 형식 만 수행 합니다.

DOCTYPE 무시에 대한 W3C 결정 :

HTML WG는이 문제에 대해 논의했습니다. 구식 (HTML 전용) 브라우저가 지침에 따라 XHTML 1.0 문서를 수락하고이를 텍스트 / html로 제공하도록하는 것이 었습니다. 따라서 text / html로 제공되는 문서는 XHTML이 아닌 HTML로 처리해야합니다.

W3C Validator는이 규칙을 대부분 무시하지만 브라우저는 종교적으로 따르기 때문에 매우 일반적인 함정입니다. WebKit 블로그에서 HTML, XML 및 XHTML 이해를 읽으십시오
.

실제로 인터넷에있는 대부분의 XHTML 문서는로 제공됩니다 text/html. 이는 XHTML이 아니라 HTML 파서의 오류 처리로 인해 실제로 유효하지 않은 HTML을 의미합니다. 모든 “유효한 XHTML 1.0!” 웹의 링크는 실제로 “잘못된 HTML 4.01!”이라고 말합니다.


XHTML의 DOCTYPE을 사용하여 실제 XHTML 또는 유효하지 않은 HTML이 있는지 테스트하려면 다음을 문서에 넣으십시오.

<span style="color:green"><span style="color:red"/>
 If it's red, it's HTML. Green is XHTML.
</span>

그것은 유효성을 검사하고 실제 XHTML에서는 완벽하게 작동합니다 ( 12 참조 ). 눈을 믿을 수 없거나 MIME 유형을 설정하는 방법을 모르는 경우 XHTML 프록시 를 통해 페이지를여십시오 .

확인하는 또 다른 방법은 Firefox에서 소스보기입니다. 유효하지 않으면 슬래시가 빨간색으로 강조 표시됩니다.

HTML5 / XHTML5에서는 변경되지 않았으며 추가 사항이 없기 때문에 구별이 더 명확 DOCTYPE합니다. Content-Type왕입니다.


기록을 위해, XHTML 스펙은 XHTML을 XML 애플리케이션 으로 만들어 어떤 요소가 자체적으로 닫힐 수 있도록합니다 . [emphasis mine]

빈 요소 태그는 키워드 EMPTY를 사용하여 선언되는지 여부에 관계 없이 content가없는 모든 요소에 사용될 수 있습니다 .

또한 XHTML 사양 에 명시 적으로 표시됩니다 .

빈 요소가 있어야 하거나 종료 태그 또는로 끝나야 시작 태그가 />. 예를 들어, <br/>또는<hr></hr>


답변

이 주제에서 매우주의해야 할 요소는 <script> 요소입니다. 외부 소스 파일이 있으면 직접 닫을 때 문제가 발생합니다. 시도 해봐:

<!-- this will not consistently work in all browsers! -->
<script type="text/javascript" src="external.js" />

이것은 Firefox에서는 작동하지만 최소한 IE6에서는 작동하지 않습니다. 내가 본 모든 요소를 ​​지나치게 열심히 닫을 때이 문제가 발생했기 때문에 알고 있습니다.


답변

자체 닫기 구문은 application / xhtml + xml의 모든 요소에서 작동합니다. text / html의 요소에서는 지원되지 않지만 HTML4에서 “비어 있음”또는 HTML5에서 “void”인 요소는 어쨌든 종료 태그를 사용하지 않으므로 슬래시를 넣으면 마치 자체 결산 구문이 지원되었습니다.


답변

로부터 W3 학교 참조 사이트 :

<area />
<base />
<basefont />
<br />
<hr />
<input />
<img />
<link />
<meta />

답변

더 좋은 질문은 코드에 영향을주지 않고 HTML 모드에서도 어떤 태그를 자동으로 닫을 수 있는가하는 것입니다. 답 : 빈 내용물이있는 것 (무효)입니다. HTML 사양 에 따르면 다음 요소는 무효입니다.

area, base, br, col, embed, hr, img, input, keygen, link, menuitem, meta, param, source, track, wbr

이전 버전의 사양도 나와 있습니다 command. 또한 다양한 출처에 따라 다음과 같이 사용되지 않거나 표준이 아닌 태그는 무효입니다.

basefont, bgsound, frame, isindex


답변

이것이 누군가를 돕기를 바랍니다.

<base />
<basefont />
<frame />
<link />
<meta />

<area />
<br />
<col />
<hr />
<img />
<input />
<param />

답변

무엇에 대한 <meta>그리고 <link>? 왜 그들은 그 목록에 없습니까?

빠른 경험 법칙은 콘텐츠를 가지고있는 요소를 자동으로 닫지 마십시오. 곧 브라우저 문제가 발생할 수 있기 때문입니다.

자연스럽게 같은 자동 폐쇄,있는 사람 <br>과는 <img>분명해야한다. 그렇지 않은 사람들은 … 그들을 스스로 닫지 마십시오!