<img> 태그를 올바르게 닫는 방법은 무엇입니까?


122
<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />

그들 중 어느 것이 맞습니까?


6
질문은 "<img> 태그를 올바르게 닫는 방법"입니다. 실제 질문이고 답변이 유용합니다. 이 질문은 종료되어서는 안됩니다.

3
현재 질문은 괜찮습니다. 그것은이다 하지 , 불완전, 지나치게 광범위하거나 rhetorial, 애매 모호한. 아래에도 훌륭한 답변이 있습니다.
David J.

다음 답변 중 어떤 것이 올바른지 모르겠지만 흥미롭게도 Firefox의 Code Inspector는 태그 끝에 </ img>를 추가하지 않으면 태그 끝에 추가합니다. 그리고 IE는 그렇지 않습니다. 이것은 내 우주에서 중요합니다.
Chiwda

PS Dreamweaver는 /> XHTML 태그를 삽입합니다.
Chiwda

답변:


50
<img src='stackoverflow.png' />

잘 작동하고 태그를 제대로 닫습니다. alt시각 장애인을위한 속성 을 추가하는 것이 가장 좋습니다.


4
<img />[X] HTML / XML에서 유효한 것은 옳지 만, 오늘날 XHTML의 사용은 매우 드물고 서버가 페이지를 제공하는 경우 text/html유효한 HTML을 작성하는 것뿐입니다. HTML 앱을 XHTML로 마이그레이션해야 할 확률은 거의 없습니다.
Fabrício Matté 2013.02.13

1
위의 답변은 4.01 Transitional 이상을 대상으로하는 경우 W3C의 HTML 검사기로 유효성을 검사하지 못합니다. W3C Markup Validation Service 도 참조하십시오 . 위의 답변에는 HTML5 또는 XHTML이 필요하다고 생각합니다. 유효성 검사 실패를 방지하려면 하나를 사용해야합니다 <img src='stackoverflow.png'>(중요한 경우).
jww

1
@ FabrícioMatté 실제 사용에서 xhtml을 심각하게 과소 평가합니다. 회사가 클수록 html보다 xhtml 또는 xhtml과 같은 형식의 html5 (쉽고 빠른 파싱을 위해)로 작업하거나 마이크로 데이터와 같은 다른 작업이나 ixbrl과 같은 향상된 마크 업으로 작업 할 가능성이 높습니다.
Robert McKee 2011

"잘 작동 함"과 "지정됨"사이에는 큰 차이가 있으며 해당 태그에서 닫는 슬래시를 사용하는 HTML 사양을 찾을 수 없습니다. 다른 사람들이 언급했듯이 원래 XHTML / XML을 사용하기 위해 작성된 웹 사이트를 손상시키지 않는 것이 허용되지만 그 사용법이 필요하다는 문구 나 예제는 어디에도 없습니다. 사실, 의미가없고 브라우저가이를 무시하도록 지시하는 문구를 찾을 수 있습니다!
Rob

Rob-6 년 전에 문제가있었습니다. 이것은 그것을 고쳤습니다. 브라우저가 더 나은 지금 추측
에드 치유

163

이것은 유효한 HTML5 이며 닫지 않아도 절대적으로 괜찮습니다. 소위 void 요소입니다.

<img src='stackoverflow.png'>

다음은 유효한 XHTML 태그입니다. 닫아야합니다. 나중에 HTML 5에서도 괜찮습니다.

<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />

5
유효한 HTML5 일뿐만 아니라 HTML4에서도 유효합니다. HTML은 당신이 말했듯이 자체적으로 닫히는 "void"요소를 필요로하지 않습니다. 일관된 답변에 +1.
Fabrício Matté 2013

2
4.01 Transitional 이상을 대상으로하는 경우 HTML5 또는 XHTML은 W3C의 HTML 검사기로 유효성을 검사하지 못합니다. W3C Markup Validation Service 도 참조하십시오 . 하나를 사용해야합니다 <img src='stackoverflow.png'>(중요한 경우).
jww

수년 후 댓글 달기 ... <img src="about:logo" alt="about:logo">firefox 76의 about:logo페이지 에서 태그를 보는 것이 혼란 스러웠습니다 ! document.body.innerHTML쇼 이지만 <img src=\"about:logo\" alt=\"about:logo\">... 아주 좋은 대답 ...
S.Goswami

4

사실 첫 번째 만 HTML5에서 유효합니다 .

<img src='stackoverflow.png'>  

마지막 두 개만 XHTML에서 유효합니다.

<img src='stackoverflow.png'></img>  
<img src='stackoverflow.png' />

( alt엄격히 필요한 것은 아니지만 _usually_ 속성도 포함되어야합니다).

즉, 브라우저가 사용자가 의미하는대로 HTML을 다시 작성하거나 해석하기 때문에 HTML5 페이지가 의도 한대로 표시 될 것입니다. 그 는, 예를 들어, 태그를 턴 의미
<div /><div></div>. 또는의 마지막 슬래시를 무시할 수도 있습니다 <img ... />.
2016 : 레거시 유효성 검사를 위해 HTML5를 XHTML 5.0으로 제공을 참조하십시오.
참조 : 2011 년 토론 및 여기에 추가 링크, 시간이 지남에 따라 일부 변경 될 수 있음

부분적으로 이것은 브라우저가 오류를 수정하기 위해 매우 노력하기 때문입니다. 또한 자동 닫는 태그와 무효 태그에 대해 많은 혼란이 있기 때문입니다. 마지막으로 사양이 변경되었거나 항상 명확하지 않았으며 브라우저는 이전 버전과 호환되도록 노력합니다.

따라서 세 가지 옵션 중 하나를 선택할
수는 있지만 첫 번째 옵션 만 HTML5 표준을 준수하며 HTML5 유효성 검사기를 통과 할 수 있습니다.

건전한 전략은 다음과 같습니다.

  • 닫는 슬래시없이 새 코드를 작성하십시오.
  • 코드를 리팩토링 할 때 주변 이미지 태그를 실행하면서 업데이트하십시오.
  • 특별한 필요가 발생하지 않는 한 만지지 않는 레거시 파일의 태그에 대해 지나치게 걱정하지 마십시오.

다음은 HTML5에서 닫으면 안되는 태그 목록입니다 .

 <br>    <hr>    <input>       
 <img>  <link>   <source>  
 <col>  <area>   <base>
 <meta> <embed>  <param>  
<track>  <wbr>   <keygen> (HTML 5.2 Draft removed)

1
이것은 기술적으로 올바르지 않습니다. 자체 폐쇄 무효 요소가 HTML에서 완벽하게 유효 5. 참조 html.spec.whatwg.org/#start-tags을 만들 것이다 <img src='stackoverflow.png' />XHTML과 HTML 5의 모든 버전에서 유효한
로버트 맥키

1
@RobertMcKee 아니요, 기술적으로 정확합니다. 닫는 슬래시를 사용할 수 있고 오류로 플래그가 지정되지는 않지만 HTML 사양의 어느 곳에서도 사용하도록 지정되어 있음을 알 수 없습니다. XHTML / XML을 기반으로 한 오래된 웹 사이트를 깨지 않는 것이 허용되지만 W3C에 의해 지정된 태그에 닫는 슬래시 사용을 단어 또는 예로 보여주는 HTML 사양은 어디에도 없습니다. 또는 WHATWG.
Rob

@Rob 12.1.2.1.6 섹션에서 위에 링크 한 WHATWG 문서에 따르면-img 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.는 섹션 12.1.2 당 void 요소입니다.
Robert McKee

1
@RobertMcKee 예. 이것은 슬래시가 허용되는 이유를 설명하는 사양의 (일부)입니다 (이전 의견에서 언급 한 이유 때문에). 그러나 해당 요소에 대한 실제 사양 (이 경우 img)을 살펴보면 닫는 슬래시가 필요하거나 지정되지 않음을 단어와 예를 통해 명확하게 보여줍니다. 사실, 그것을 찾아 보지 않고 그 섹션을 더 읽으면 닫는 슬래시가 의미가없고, 아무것도하지 않으며, 브라우저가 그것을 무시해야한다고 명시 할 것입니다. 그래서 그것은 쓸모없고 무의미하며 우리를 내 원래 코멘트로 돌아갑니다. 닫는 슬래시는 사용되지 않습니다.
Rob

1
@Rob 예, 선택 사항이지만 완전히 유효합니다. 어떤 문장이 만들어 Actually, only the first one is valid in HTML5기술적으로 잘못된. 두 번째는 HTML5에서도 유효합니다. 필수는 아니지만 유효합니다. 아무도 그것이 필요하다고 주장하지 않습니다. 사양에 따라 태그의 자동 닫힘 형식을 사용하는 것만이 현재의 모든 XHTML 및 HTML 형식에서 유효합니다.
로버트 맥키

2

사용해야하는 태그의 최상의 사용 :

<img src="" alt=""/>

또한 HTML5에서 사용할 수 있습니다.

<img src="" alt="">

이 두 가지는 HTML5에서 완전히 유효합니다. 그중 하나를 선택하고 그대로 유지하십시오.


첫 번째는 하지 가 지정되어 있지 않은 것을 최고의 어떤 두 번째는 동안 HTML 표준입니다. 첫 번째는 역사적인 이유로 만 허용됩니다! (브라우저가이를 허용하지 않으면 중단되는 오래된 웹 사이트에서 XHTML / XML 사용과의 호환성.)
Rob

Rob이 여기서 무엇을 말하려고하는지 확실하지 않지만 html 사양은 첫 번째가 유효하다고 지정합니다.
Robert McKee

2

둘 다 정답입니다. HTML5는 엄격한 규칙을 따르며 HTML5에서는 모든 태그를 닫을 수 있습니다. 따라서 HTML5 또는 HTML을 사용하고 적절한 답변을 따르는 것은 귀하에게 달려 있습니다.

<img src='stackoverflow.png'>
<img src='stackoverflow.png' />

두 번째 속성이 더 적절합니다.


틀 렸습니다. 첫 번째로 지정된 유일 어떤 HTML 사양. 두 번째는 역사적 이유로 만 허용되지만 다시 한 번 필요에 따라 지정되지 않습니다.
Rob

1

-태그가 비어 있고 속성 만 포함합니다. -태그에는 '클로징'태그가 없습니다.

그래서,

<img src='stackoverflow.png'>
<img src='stackoverflow.png' />

둘 다 HTML5에서도 정확합니다.


번째 가 맞습니다! 두 번째는 역사적인 이유로 만 허용됩니다. (브라우저가 허용하지 않을 경우 중단되는 이전 웹 사이트의 XHTML / XML 사용과의 호환성)
Rob

1

XHTML 파서로 읽으려고 할 때 닫는 태그가 있으면 유용합니다. 엣지 케이스가 될 수도 있지만 항상 그렇게합니다. 그것은 해를 끼치 지 않으며, 닫히지 않은 태그를 쳤을 때 킬하지 않는 XML 판독기 배열을 사용할 수 있음을 알고 있음을 의미합니다.

콘텐츠를 구문 분석하지 않으려면 닫기를 무시하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.