일부 HTML 1 닫기 태그는 선택 사항입니다 . 예 :
</HTML>
</HEAD>
</BODY>
</P>
</DT>
</DD>
</LI>
</OPTION>
</THEAD>
</TH>
</TBODY>
</TR>
</TD>
</TFOOT>
</COLGROUP>
참고 : 포함 금지 된 닫기 태그와 혼동하지 마십시오 . 예 :
</IMG>
</INPUT>
</BR>
</HR>
</FRAME>
</AREA>
</BASE>
</BASEFONT>
</COL>
</ISINDEX>
</LINK>
</META>
</PARAM>
참고 : xhtml
HTML과 다릅니다. xhtml은 xml 형식이며 모든 요소에는 닫는 태그가 필요합니다 . 닫는 태그는 HTML에서 금지 되어 있지만에 필수 입니다 xhtml
.
선택적인 닫기 태그입니다
- 이상적으로 포함되어 있지만 잊어 버린 경우 수락합니다. 또는
- 이상적으로 는 포함되어 있지 않지만 입력하면 수락합니다.
즉, 해야 내가 그들을 포함, 또는 내가해야 하지 를 포함?
요소 태그는 선택 사항 인 폐쇄에 대한 HTML 4.01 사양 회담 ,하지만 그들을 포함되지로, 또는 바람직 포함하는 것이 바람직인지 말을하지 않습니다.
반면, DevGuru의 임의 기사는 다음 과 같이 말합니다 .
끝 태그는 선택 사항입니다. 그러나 포함하는 것이 좋습니다.
내가 묻는 이유는 호환성상의 이유로 선택 사항 임을 알고 있기 때문입니다 . 그들이 할 수 있다면 그들은 ( 필수 | 금지 ) 만들었을 것 입니다.
다시 말하면 HTML 1, 2, 3은 이제 선택적인 닫는 태그와 관련하여 무엇을 했습니까? HTML 5의 기능은 무엇입니까? 그리고 무엇을해야 나는 합니까?
노트
HTML에서 일부 요소가된다 금지 닫는 태그를 가지고에서. 당신은 그것에 동의하지 않을 수도 있지만, 그것은 사양이며, 논쟁의 여지가 없습니다. 선택적인 닫기 태그와 의도가 무엇인지 묻고 있습니다.
각주
HTML 4.01 1 개
답변
선택 사항은 모두 종료 태그가 없어도 끝 부분에서 의미 적으로 명확해야합니다. EG 는 바로 앞에 하나가 없으면 <li>
암시 </li>
합니다.
금지 된 종료 태그 뒤에는 즉시 종료 태그가 표시되므로 <img src="blah" alt="blah"></img>
매번 입력해야하는 중복이 발생합니다 .
옵션 태그는 더 읽기 쉽고 업데이트 가능한 코드에 적합하기 때문에 거의 항상 선택적 태그를 사용합니다.
답변
명시 적 태그가 도움이되는 경우가 있지만 때로는 불필요한 페 도토리입니다.
HTML 스펙은 태그를 생략 할 수있는 유효시기를 명확하게 지정하므로 항상 오류는 아닙니다.
예를 들어, 필요하지 않습니다 </body></html>
. 아무도 넣어 기억<tbody>
명시 적으로 (XHTML이 예외를 낸 시점 .
</head><body>
실제로 검색하는 DOM 조작 스크립트 가없는 한 필요하지 않습니다 <head>
(암시적인 종료에 대한 규칙 <head>
이 놀라 울 수 있기 때문에 명시 적으로 닫는 것이 좋습니다).
중첩 된 목록은 실제로는없는 </li>
경우에 더 좋습니다 . 왜냐하면 잘못된 목록을 만드는 것이 더 어렵 기 때문입니다.ul > ul
. 트리 입니다.
유효한:
<ul>
<li>item
<ul>
<li>item
</ul>
</ul>
유효하지 않습니다 :
<ul>
<li>item</li>
<ul>
<li>item</li>
</ul>
</ul>
또한 모든 요소를 닫으려고하는지 여부에 관계없이 종료 태그가 암시됩니다. 종료 태그를 넣어도 자동으로 구문 분석이 더 강력 해지지는 않습니다.
<p>foo <p>bar</p> baz</p>
다음과 같이 파싱합니다 :
<p>foo</p><p>bar</p> baz
문서를 확인할 때만 도움이 될 수 있습니다.
답변
다양한 모순을 이해하기 위해 HTML 기록에 도움이되는 몇 가지 링크를 여기에 추가하고 있습니다. 이것은 귀하의 질문에 대한 답변이 아니지만 이러한 다양한 요약을 읽은 후에 더 많이 알게 될 것입니다.
Dive Into HTML5의 일부 발췌 :
[T] 그는 “브로큰”HTML 마크 업이 여전히 웹 브라우저에서 작동했다는 사실로 인해 제작자는 깨진 HTML 페이지를 만들었습니다. 깨진 페이지가 많이 있습니다. 일부 추정에 따르면 오늘날 웹에서 HTML 페이지의 99 % 이상이 오류가 하나 이상 있습니다. 그러나 이러한 오류로 인해 브라우저가 눈에 띄는 오류 메시지를 표시하지 않으므로 아무도 수정하지 않습니다.
W3C는이 문제를 웹의 근본적인 문제로 보았고이를 해결하기 시작했습니다. 1997 년에 출판 된 XML은 고객을 용서하는 전통에서 벗어 났으며 XML을 소비 한 모든 프로그램은 소위 “잘 구성된”오류를 치명적인 것으로 처리해야한다고 규정했습니다. 그리스의 지도자 드라코 (Draco) 가 그의 법을 상대적으로 경미하게 위반 한 것에 대해 사형을 제정 한 후 첫 번째 오류에 실패했다는이 개념은“dracoian error handling”으로 알려졌다 . W3C가 HTML을 XML 어휘로 재구성했을 때, 그들은 새로운
application/xhtml+xml
MIME 유형으로 제공되는 모든 문서는 드라코 니안 오류 처리의 대상이되어야한다고 규정했다. XHTML 페이지 […]에 단일 형식 오류 만있는 경우 웹 브라우저는 처리를 중지하고 최종 사용자에게 오류 메시지를 표시 할 수 있습니다.이 아이디어는 보편적으로 인기가 없었습니다. 기존 페이지에서 99 %의 예상 오류율, 최종 사용자에게 오류를 표시 할 가능성, XHTML 1.0 및 1.1의 새로운 기능이 부족하여 비용을 정당화하기 때문에 웹 작성자는 기본적으로 무시했습니다
application/xhtml+xml
. 그렇다고 XHTML을 완전히 무시한 것은 아닙니다. 아, 가장 확실하지 않습니다. XHTML 1.0 사양의 부록 C는 전세계 웹 제작자들에게 다음과 같은 허점을 주었다.“XHTML 구문과 비슷한 것을 사용하되text/html
MIME 유형으로 계속 제공하십시오 .” 바로 수천 명의 웹 개발자가 XHTML 구문으로“업그레이드”했지만 텍스트 / html MIME 유형으로 계속 제공했습니다.오늘날에도 수백만 개의 웹 페이지가 XHTML이라고 주장합니다. 그들은 첫 번째 줄, 사용 소문자 태그 이름, 속성 값 주위에 사용 따옴표에 XHTML의 문서 타입으로 시작하고, 같은 빈 요소 후 후행 슬래시를 추가
<br />
하고<hr />
. 그러나이 페이지들 중 아주 적은 부분 만이application/xhtml+xml
XML의 드라코 니안 오류 처리를 유발 하는 MIME 유형 과 함께 제공됩니다 .text/html
doctype, 구문 또는 코딩 스타일에 관계없이 MIME 유형으로 제공되는 모든 페이지 는 “용서하는”HTML 구문 분석기를 사용하여 구문 분석되어 마크 업 오류를 자동으로 무시하고 페이지가 있어도 최종 사용자 (또는 다른 사람)에게 경고하지 않습니다. 기술적으로 고장났습니다.XHTML 1.0은 이러한 허점을 포함했지만 XHTML 1.1은이를 막았으며, 최종적으로 완성되지 않은 XHTML 2.0은 드라코 니안 오류 처리를 요구하는 전통을 이어갔습니다. 그렇기 때문에 XHTML 1.0이라고 주장하는 수십억 페이지가 있고 XHTML 1.1 (또는 XHTML 2.0)이라고 주장하는 소수만이 있습니다. 정말 XHTML을 사용하고 있습니까? MIME 유형을 확인하십시오. (실제로, 사용중인 MIME 유형을 모르는 경우에도 여전히 사용하고 있음을 거의 보증 할 수 있습니다
text/html
.) MIME 유형이application/xhtml+xml
인 페이지를 제공하지 않는 경우 소위 “XHTML” 이름 만있는 XML입니다.
진화하는 HTML 및 HTML 양식을 제안한 사람들은 두 가지 선택에 직면했다. 그들은 후자를 선택하고
whatwg.org
도메인을 등록했으며 2004 년 6 월에 WHAT 워킹 그룹이 탄생했습니다 .
[T] 그는 워킹 그룹이 몇 가지 다른 일을 조용히하고 있었다. 그중 하나는 처음에는 Web Forms 2.0 이라고 불리는 사양 으로 HTML 양식에 새로운 유형의 컨트롤을 추가했습니다. 웹 양식에 대한 자세한 내용은 A Form of Madness에서 확인할 수 있습니다. 또 다른 하나는 “Web Applications 1.0″이라는 초안 사양으로 , 직접 모드 드로잉 캔버스 와 같은 주요 새로운 기능과 플러그인없이 오디오 및 비디오에 대한 기본 지원이 포함되었습니다 .
2009 년 10 월 W3C는 XHTML의 2 워킹 그룹을 종료 하고 자신의 결정을 설명하기 위해이 성명을 발표했다 :
W3C가 2007 년 3 월에 HTML 및 XHTML 2 실무 그룹을 발표했을 때, 우리는 XHTML 2 시장을 지속적으로 모니터링 할 것이라고 지시했습니다. W3C는 HTML의 미래에 대해 커뮤니티에 분명한 신호의 중요성을 인식하고 있습니다.
우리는 수년간 XHTML 2 워킹 그룹이 기여한 가치를 인정하지만 참가자들과 논의한 후 W3C 경영진은 워킹 그룹 헌장이 2009 년 말에 만료되고 갱신하지 않기로 결정했습니다.
이기는 것이 배송되는 것입니다.
답변
내가 묻는 이유는 호환성상의 이유로 선택 사항임을 알고 있기 때문입니다. 그리고 가능하다면 그들은 (필수 | 금지) 만들었을 것입니다.
흥미로운 추론입니다. 내가 읽은 내용은 태그가 확실하게 유추 될 수있을 때마다 태그는 선택 사항이라는 것입니다. 디자인은 의도가 빠르고 쉽게 작성되도록하는 것이 었습니다.
HTML 1, 2, 3은 이제 선택적인 닫는 태그와 관련하여 수행 한 작업입니다.
HTML 2 용 DTD 는 원본 HTML DTD 와 함께 옵션으로 시작 및 종료 태그가 있는 RFC에 RFC에 포함되어 있습니다.
HTML 3은 버려졌으며 (브라우저 전쟁 덕분에) 당시의 웹 상태를 설명하도록 설계된 HTML 3.2로 대체되었습니다.
HTML 5의 기능은 무엇입니까?
HTML 5는 처음부터 “우박 길 포장”에 맞춰졌습니다.
그리고 어떻게해야합니까?
아, 이제는 주관적이고 논쟁의 여지가 있습니다 🙂
어떤 사람들은 독자적인 눈앞에 있기 때문에 명확한 태그가 가독성과 유지 관리에 더 좋다고 생각합니다.
어떤 사람들은 유추 된 태그가 편집기를 어지럽히 지 않기 때문에 가독성과 유지 관리 성이 더 좋다고 생각합니다.
답변
HTML 5의 기능은 무엇입니까?
이 질문에 대한 답변은 W3C 실무 초안에 있습니다 :
http://www.w3.org/TR/html5/syntax.html#syntax-tag-omission
그리고 어떻게해야합니까?
스타일의 문제입니다. 나는 끝 태그를 생략하지 않으려 고 노력합니다. 왜냐하면 나는 그것이 엄격하고 필요한 태그를 생략 하지 않도록 도와주기 때문 입니다.
답변
불필요한 경우에는 그대로 두십시오.
그것이 목적을 제공하는 경우 (IDE 나 눈을 감는 것과 같이 사소한 목적으로도), 그대로 두십시오.
잘 정의 된 사양에서는 동작에 영향을 미치지 않는 선택적 항목을 보는 경우가 거의 없습니다. 물론 “코멘트”를 제외하고. 그러나 HTML 사양은 디자인 사양이 아니며 현재 주요 구현 상태에 대한 문서입니다. 따라서 HTML에서 항목이 선택적이고 목적이없는 것 같으면 선택적인 특성이 특정 브라우저의 기발한 문서 일 것이라고 추측 할 수 있습니다.
위에 링크 된 HTML-5 스펙 RFC 섹션을 보면 선택적 태그가 주석의 존재와 이상하게 링크되어 있음을 알 수 있습니다! 저자가 디자인 모자를 쓰고 있지 않다는 것을 알려 주어야합니다. 대신 주요 구현에서 “특별한 문서화”게임을하고있다. 따라서 우리는이 점에서 스펙을 너무 심각하게 받아 들일 수 없습니다.
해결책은 : 땀 흘리지 마십시오. 실제로 중요한 것으로 이동하십시오. 🙂
답변
가장 좋은 대답은 가독성이나 오류 감지를 위해 닫는 태그를 포함시키는 것입니다. 그러나 생성 된 HTML (예 : 데이터 테이블)이 많은 경우 선택적 태그를 생략하여 상당한 대역폭을 절약 할 수 있습니다.