<img/> 및 기타 HTML 태그를 "닫아야"합니까?

4278 단어

TL; DR


  • XHTML을 사용하는 경우 기간을 닫습니다.
  • HTML5를 사용하더라도 닫아야 합니다.



  • 긴 이야기...



    XHTML과 HTML5의 기원



    우리가 여행 기계를 가지고 있고 2000년으로 간다면, 우리는 기본적으로 당시 웹 브라우저에서 지원되었던 세 가지 HTML 4 문서 유형의 재구성인 XHTML의 첫 번째 릴리스를 발견할 것입니다.

    XHTML은 HTML 문서가 XML 엄격한 트리 구조와 호환되도록 하기 위해 HTML 4.x의 확장으로 만들어졌습니다. 이는 일반적인 XML 도구를 사용하여 HTML 문서(올바른 형식의 XML 문서도 포함)를 처리하고 작업할 수 있는 이점을 제공했습니다.

    그러나 몇 년 동안 그리고 HTML5가 실제 W3C 권장 사항으로 2014년에 등장할 때까지 무엇을 사용해야 하는지 또는 문서 유형 측면에서 어떻게 진행해야 하는지, 따라서 HTML 문서를 만드는 올바른 방법에 대해 약간의 불확실성이 있었습니다.

    우리는 이제 2020년에 있으며 표준 및 웹 브라우저 지원 측면에서 상황이 더 명확하고 성숙해졌습니다. 그러나 엔터프라이즈 시스템 및 프로세스에서 XHTML의 실제 사용을 과소평가해서는 안 됩니다. 프로젝트/범위가 클수록 HTML 대신 XHTML로 작업할 가능성이 높아지기 때문입니다.

    예를 들어 HTML 문서의 구문 분석, 정리 또는 크롤링과 같은 작업은 올바른 형식의 XML 트리가 있는 경우 훨씬 쉬워집니다.

    그런 종류의 작업에 대한 다음 예는 확실한 데이터 및 사실보다 더 일화적입니다.
  • iText과 같이 HTML 문서를 PDF로 변환하는 Java에서 PDF 라이브러리로 작업하는 프로세스는 가장 일반적으로 사용되는 XML 구문 분석기가 XML 트리에서 더 잘 작동하기 때문에 오류 발생 가능성이 줄어듭니다.
  • 태그를 자동으로 닫기 위해 jsoup - 뛰어난 Java HTML 파서 - 같은 것을 사용하더라도 구문 분석/순회 작업에 약간의 처리 시간이 추가됩니다.

  • 그러나 내 작성자/도구가 모든 무효 요소를 "닫지" 않으면 어떻게 됩니까?



    우선, "보이드"요소란 무엇입니까?

    HTML 사양에서 void 요소는 시작 태그만 있는 요소입니다.

    공허 요소는 다음과 같습니다.

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


    자세한 내용은 이 페이지를 확인하십시오. https://html.spec.whatwg.org/#void-elements

    그리고 W3C HTML 사양에 따라:

    Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
    


    즉, 자동으로 닫히는 void 요소가 HTML5에서 완벽하게 유효하더라도(https://html.spec.whatwg.org/#start-tags 참조) void 요소를 닫아야 합니다. 구문 분석이 더 빠르고 "안전"한 XML 트리와 같은 구조입니다.

    따라서 다음을 갖는 대신:

    <img src="/path/to/image.png" alt="Image">
    


    다음 태그가 있어야 합니다.

    <img src="/path/to/image.png" alt="Image" />
    


    XML 엄격한 doctype이 있는 현재 웹사이트는 어떻습니까?



    다음과 같은 Doctype이 있다고 상상해 보십시오.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    


    즉, HTML5로 전환하기로 결정할 때까지 void 요소를 닫아야 합니다. 그러면 마음에 새로운 질문이 열릴 수 있습니다. 엄격 모드에서 XHTML을 사용하는 이유는 무엇입니까? 대답은 특정 사용 사례에 따라 다르지만 내 개인적인 경험에 따르면 HTML5는 대부분의 시나리오에서 사용하기에 적합한 doctype입니다.

    간단히 말해서 제 개인적인 권장 사항은 HTML5로 전환하고 항상 태그를 닫는 것입니다. 예를 들면 다음과 같습니다.

    이런 종류의 태그:

    <input type="text" name="search">
    


    다음과 같이 변환해야 합니다.

    <input type="text" name="search" />
    


    이견있는 사람? 나는 당신의 의견을 알고 기뻐할 것입니다.

    좋은 웹페이지 즐겨찾기