슬래시를 닫기 전 공백?


93

XML 및 HTML 태그에서 닫는 슬래시 앞에 공백이있는 것을 자주 보았습니다. XHTML 줄 바꿈은 아마도 표준적인 예일 것입니다.

<br />

대신에:

<br/>

공간이 불필요 해 보입니다. 실은 불필요하다고 생각합니다.

이 공간을 쓰는 이유는 무엇입니까?

나는이 공간이 일부 "이전 호환성 문제"를 해결한다고 읽었습니다. 이전 버전과의 호환성 문제는 무엇입니까? 이러한 문제가 여전히 관련이 있습니까? 아니면 IE3 호환성을 위해 여전히 추가 공간을 추가하고 있습니까? 이것에 대한 확실한 답을 가진 스펙이 있습니까?

이전 버전과의 호환성이 아니라면 가독성 문제입니까? Great Open Curly Brace 토론과 유사합니까?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

나는 확실히 다른 문체 의견을 존중할 수 있으므로 공간을 쓰는 것은 단순히 취향의 문제라는 것을 알게되어 기쁩니다.


5
나는 그것에 너무
익숙해서

답변:


64

대답은 사람들 이 XHTML1.0 사양의 부록 C 를 준수하기를 원한다는 것 입니다. XHTML을 text / html로 제공하는 경우에만 수행해야합니다 . 대부분의 사람들은 XHTML의 실제 MIME 유형 (application / html + xml)이 Internet Explorer에서 작동하지 않기 때문에 수행합니다.

현재 브라우저는 공간을 신경 쓰지 않습니다. 브라우저는 이러한 것들을 매우 관대합니다.

HTML 파서가 후행 슬래시를 인식 할 수없는 속성으로 처리하도록하는 데 필요한 공백입니다.


2
"예전에는"에 대해 좀 더 구체적으로 말씀 해주시겠습니까? 연도 및 / 또는 브라우저 버전이 가능합니다. 감사합니다!
Greg Mattes

5
나는 w3.org/TR/xhtml1/#C_2 가이 답변에 대한 더 정확한 링크 라고 생각합니다 . 따라서 XHTML 1.0 Appendix C2는 사실상 쓸모없고 공간을 쓰는 것은 순전히 문제의 맛인 것 같습니다.
Greg Mattes

1
죄송합니다. 예전에는 "is"를 의미합니다. HTML 파서가 후행 슬래시를 인식 할 수없는 속성으로 취급하는지 확인하는 것과 관련하여 모든 HTML 파서가 브라우저가 아닌 것은 아닙니다. 나는 어떤 브라우저 버전이 있으면 질식시킨 것을 추측하고 싶지는 않지만 IE4 또는 Netscape 4가 불평하는 것을 기억하지 못합니다.
Lee Kowalkowski

3
실제로 실제 MIME 유형은 application / xhtml + xml입니다.
mk12

3
@JanAagaard : 저도 잘 모르겠습니다. 그렇다면 IE4와 Netscape 4에서 웹 개발을 시작했습니다. 링크 한 답변에이 효과에 대한 설명도 있습니다. 실제로 Netscape 3이라고 표시됩니다.
Lee Kowalkowski

31

HTML에서 <br/> 및 <br />의 다른 동작을 보여주는 Netscape 4.80

문서를 보여주는 Netscape 4.80 스크린 샷으로 bobince의 답변 지원

data:text/html,<title>space</title>foo<br />bar

(왼쪽 상단, 렌더링 된 줄 바꿈) 및

data:text/html,<title>no space</title>foo<br/>bar

(왼쪽 하단, 줄 바꿈 무시).


사진을 보여주기 위해 답변으로 게시

사실 내가 즉, 오해의 SGML 사양에 (공백을 포함하고 결과 추천) 고대의 브라우저와 같은 잘못된 행동의 원인을 식별하는 긴 대답했다 : 접선 방향으로 관련 SGML 널 종료 태그 ( NET을 ) (여기서이 1<tag/2/3동일 1<tag>2</tag>3하므로 1<tag/>2것 실제로 평균 1<tag>>2)하지만, 표준의 좋은 증거와 구체적인 버전을 찾을 수 없었을뿐만 아니라 적절한 표준 준수 동작도 파악할 수 없었습니다. 참조 용 원시 링크가 거의 없습니다.

(지금은 재현 할 수 없지만 이로 인해 영향을받는 여러 브라우저에 대한 Lee Kowalkowski의 진술을 지원합니다.)


25

이러한 문제가 여전히 관련이 있습니까? 아니면 IE3 호환성을 위해 여전히 추가 공간을 추가하고 있습니까?

당신은 가까웠습니다. Netscape 4 용입니다.

다른 합리화를 보는 것은 흥미롭지 만 그게 의도 된 전부입니다.


2
감사! 이에 대한 참조를 제공 할 수 있습니까?
Greg Mattes

1
흠,이 오래된 주요 소스를 찾기가 어렵습니다. 공식 W3 자료는 UA 하나를 언급하지 않으며 목록의 토론은 상황을 읽은대로 간주하는 것 같습니다. 공간이 필요한 다른 UA가있을 수 있지만 N4가 마지막으로 웹 마스터에게 문제를 일으켰습니다.
bobince 09.01.21

XHTML 문서도 Netscape에서 렌더링되기 때문입니다. 특히 중단 태그와 이미지 태그를위한 것입니다. Primary Source : 10 년 전에 IE4 및 NS3 호환성을 위해 코딩하고있었습니다.
Philihp Busby

4

아니요, 공간은 필요하지 않지만 일부 오래된 브라우저에서 이러한 태그를 올바르게 렌더링하는 데 필요합니다. 이를 수행하는 적절한 방법은 XHTML이 XML에서 상속 된 것이므로 추가 공간이없는 것입니다.


1
구체적으로 어떤 오래된 브라우저입니까? 나는 우리가 상당한 시장 점유율을 가진 브라우저에 대해 이야기하고 있는지 알고 싶습니다.
Greg Mattes

하지 않았다. 대부분 IE5 이상.
jmucchiello


3

공백은 태그를 더 읽기 쉽게 만듭니다. 나는 더 읽기 쉬운 코드를위한 포맷팅의 큰 지지자입니다. 그런 작은 것들이 먼 길을 가고 있습니다. 공백이 없으면 닫는 태그가 여는 태그와 혼합됩니다. 코드를 빠르게 읽을 때 처리하는 데 시간이 조금 더 걸립니다.


0

아주 게으른 HTML 작성자가 있거나 인용 부호에 대한 두려움이 있다면 어떨까요? 그의 로봇 페이지 크롤러라면 다음을 고려하십시오.

<img src=http://myunquotedurl.com/image.jpg />

<img src=http://myunquotedurl.com/image.jpg/>

이것은 작게 보일 수 있지만 공간이 없으면 무엇을 할 수 있는지보세요. 로봇은 슬래시가 URL의 일부인지 닫는 태그의 일부인지 알지 못합니다.


12
음, 어쨌든 URL 주위에 따옴표 가 있어야 합니다.
Florian Wendelborn 2015-08-30

-1

여백은이 태그가 비어 있고 저절로 닫혀 있다는 생각을 강화하는 방법이라고 생각합니다.

오늘은 공백이없는 문제가 없었기 때문에 더 이상 공백을 사용하지 않습니다.


1
"reinforce"는 "strong"의 적절한 단어입니다
Hao

통지 해 주셔서 감사합니다. 여기에 글의 질을 보장 ​​할 사람들이 있다는 것을 알게되어 기쁩니다.
nicruo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.