HTML에서 메타 및 링크 태그를 닫아야합니까?


133

HTML 헤드 섹션에서 메타 및 링크 태그를 닫지 않은 누군가의 HTML을 읽었습니다. 코드는 잘 작동했습니다. 이 태그를 닫는 것은 선택 사항입니까?

태그가 닫히지 않으면 형식이 잘못되었다고 생각했습니다.

답변:


167

태그는 항상 태그 가까운 기호가 닫혀 있어야합니다 >(우리는 명목상이 아닌 XHTML HTML에 적용되는 특정 SGML 규칙을 무시하지만 브라우저에서 구현되지 않았던 경우).

의미하는 것은 요소 를 종료 태그로 닫아야 하는지 여부 입니다. 답은 (HTML 직렬화에서 HTML5 포함) HTML - XHTML 비, 끝 태그가 필요하거나 허용되는 것입니다 metalink요소. 그러나 실제로 브라우저는 사용하는 경우 /이전 컬트 컬트뿐만 아니라 명시적인 엔드 태그를 무시 >합니다. 또한 HTML5는 /HTML 직렬화를 공식적으로 허용함으로써 이러한 허용 성을 규칙으로 만듭니다 .

XHTML에서는 XML 규칙이 적용되므로 예외없이 모든 요소에 시작 태그와 끝 태그가 모두 있어야하지만 요소 내용이 비어있는 경우 (예 :의 경우 <meta name="foo" content="bar"/>와 같이) 같은 역할을 두 역할에 모두 사용할 수 있습니다 <meta name="foo" content="bar"></meta>. XML (XHTML) 컨텐츠 유형의 문서를 해당 브라우저에 제공 할 때이를 위반하면 문서가 전혀 표시되지 않습니다. 대신 오류 메시지가 표시됩니다.

Content-Type: text/htmlXHTML 문서가 거의 항상 웹에 있으므로 HTML 컨텐츠 유형 ( )으로 XHTML 서버를 사용하는 경우 브라우저는 실제로 비 HTML HTML 규칙을 적용합니다.

요약:

  • 일반적으로, 단지 사용하지 <meta ...>아니하여/
  • XHTML 파싱이 실제로 적용되는 상황에서 XHTML을 실제로 사용하는 경우 XML 규칙을 사용하여 잘 알고 있어야합니다.
  • 당신의 상사가 당신에게 글을 쓰라고하면 <meta ... />, 그렇게하십시오; 유용하지는 않지만 해를 끼치 지 않습니다 (예 : HTML 4.01 doctype에 대해 유효성 검사를 시도하는 경우 제외).

3
/>를 사용하면 Google 봇이 메타 로봇 ​​태그를 인식하지 못하는 문제가 발생했습니다. 이상한!!!
DevZer0

13
이 맥락에서 "화물 숭배"라는 용어가 부적절하다고 생각합니다. 어떤 사람들은 XHTML이 우세하지 않다는 탄압 때문에 그러한 요소들을 닫습니다.
Marcus

6
페달 경고! "카고 컬트 (cargo cult)"는 일반적인 관례에서 하이픈으로 연결되지 않지만, 전체 문구를 다른 것에 대한 형용사로 사용할 때만 (즉, "카고 컬트 프로그래밍", "카고 컬트 /이전 >"). 더 혼란스러워 인터넷을 흐릿하게 만드는 것을 피하고 싶다고 생각했습니다. </pedant_alert>:)
아론 Wallentine

1
@ DevZer0-슬래시가 원인 이었습니까? 나는 구글이 그런 것들에 유연 할 것으로 기대한다.
Simon East

3
HTML을 XHTML 규칙과 일치하게 만드는 이유가 / before>를 포함시키는 이유가 아닙니까?
Kyle Delaney

28

doctype에 따라 다릅니다. HTML5는 닫을 필요가 없습니다. XHTML은 않습니다.

HTML5에서 소위 void 요소 (콘텐츠를 가질 수없는 요소)는 자체 닫기이므로 닫을 필요가 없습니다. 그러나 닫으면 여전히 유효합니다 ..

여기에 대해 더 읽어보십시오 : void-elements


4
HTML5에는 두 개의 직렬화가 있으며 그 중 하나 (XHTML 직렬화)는 종료 태그를 필수로 만듭니다.
Jukka K. Korpela
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.