"& nbsp;"의 차이점은 무엇입니까 그리고 ""?


146

둘 다 공간을 의미하지만 차이점이 있습니까?

답변:


195

하나는 속하지 않는 공간 이고 다른 하나는 일반 공간입니다. 줄 바꿈이없는 공간은 단어 중간에 줄 바꿈이되지 않는 것처럼 해당 지점에서 줄을 줄 바꿈하지 않아야한다는 의미입니다.

또한 Svend가 그의 의견에서 지적했듯이, 비 공백 공간은 축소되지 않습니다.


42
& nbsp; 또한 아마 그 사용의 가장 중요한 측면이다 즉, 비 무너지고 (적어도, 그것은 쉬운 패드 물건을 밖으로, 빠르고, 내가 그들을 사용하는 경향이 방법)
스벤

47
팁 : 15 % nbsp;를 연속해서 사용하지 마십시오. 사람들이 그렇게 할 때 나를 미치게합니다. CSS 패딩 또는 여백을 사용하십시오.
Matthew Rapati

5
내가 마이크로 소프트 워드도 그렇게했을 때 나를 미치게한다.
Josh Lee

@Amarghosh : 전문가의 단지 종류 난 항상 ... :)되고 싶어
브라이언 라스무센

1
&hairsp      [ jsfiddle.net/medmunds/4crt3c9j/]
Mark Gavagan

70

이 엔터티  는 비 분리 공간을 생성하며,이 위치에서 자동 줄 바꿈을 원하지 않을 때 사용됩니다. 일반 공간에는 문자 코드 32가 있고, 비 공백 공간에는 문자 코드 160이 있습니다.

예를 들어, 공백이있는 숫자를 천 단위 구분 기호 : 1 234 567로 표시 할 경우 숫자를 별도의 줄로 나눌 수 없도록 끊지 않는 공백을 사용합니다. 통화를 표시하고 금액과 통화 사이에 공백이있는 경우 : 42 SEK, 한 줄에 금액을 가져 오지 않고 다음 줄에 통화를 얻지 않도록 비 공백 공백을 사용합니다.


3
nbsp 사용의 좋은 예입니다. 나는 나 자신을 찾고 있었지만 생각할 수 없었다.
Pete

47

여기의 다른 답변 외에도 일반 공간과 같이 비 분리 공간은 "축소"되지 않습니다. 예를 들어

<p>Word1          Word2</p>

<p>Word1 Word2</p>

모든 브라우저에서 동일하게 렌더링됩니다.

<p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p>

렌더링 될 때 공백을 유지합니다.


아니요, 그런 다음 & amp; 전역. & amp를 해석하지 않았지만 & nbsp를 해석했습니다.
Graeme Perrow

33

예만큼 대답이 아닙니다 ...

예 # 1 :

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello&nbsp;There
</div>  

예 # 2 :

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello There
</div>

그리고 바이올린에 연결하십시오 .


2
다른 답변을 한눈에 볼 필요가 없습니다. 9 년간 유효합니다.
snr

10

여기에 실제 예제가 있습니다.

http://codepen.io/anon/pen/GJzBxo

http://codepen.io/anon/pen/LVqBQo

같은 div, 같은 텍스트, 다른 "공백"

<div style="width: 500px; background: red"> [loooong text with spaces]</div>

vs

<div style="width: 500px; background: red"> [loooong text with &nbsp;]</div>

왜 저에게이 답을 내려 놓을 수 있는지 설명해 주시겠습니까?
alberto-bottarini

나는 그것을 upvoted했다. 나는 그것이 설명하지 않는다고 생각합니다. 그러나 당신은 유용한 시각적 인 것을 지적하고 있습니다.
Nishant

1
따라서 질문과 답변은 독립적입니다. codepen에 외부 링크입니다 또한 , 허용되는 경우 전체 답이있다 또한 직접 게시물에 포함되어 있습니다. SO 정책을 준수하기 edit위해 게시물에 답변의 코드 결과를 포함하거나 SO의 자체 내장 버전의 코드 펜을 추가하여 방문자가 외부 페이지를 떠나지 않고도 결과를 볼 수 있도록 코드를 실행할 수 있습니다. 자체 포함 된 정책의 이유는 링크에 도달 할 수 없으면 응답이 쓸모 없게되기 때문입니다. 또한 UX 사용자가 떠날 것을 요구 하고 답을 얻기 만하면 좋지 않습니다.
SherylHohman

6

여러 일반 공백 문자 (공백, 표 및 줄 바꿈)는 하나의 공백 문자로 처리됩니다 .

를 제외한 모든 HTML 요소의 경우 PRE공백 시퀀스는 "단어"를 분리합니다 (여기서는 "단어가 아닌 공백 문자의 순서"를 의미하기 위해 "단어"라는 용어를 사용합니다). 텍스트를 형식화 할 때 사용자 에이전트는 이러한 단어를 식별하고 특정 서면 언어 (스크립트) 및 대상 매체의 규칙에 따라 배치해야합니다.

그래서

foo    bar

로 표시됩니다

foo bar

그러나 휴식 공간이 항상 표시됩니다. 그래서

foo&‍nbsp;&‍nbsp;&‍nbsp;bar

로 표시됩니다

foo   bar

5

이미 언급했듯이 "중단 공간 없음"이있는 줄 바꿈은받지 않습니다.

또한 ""만 포함 된 요소가 잘못 표시 될 수 있습니다. & nbsp; 작동합니다. 즉 6에서 (내가 기억하는 한 IE7에는 동일한 문제가 있습니다) 빈 테이블 요소가있는 경우 내용이 없거나 흰색 만있는 경우 요소와 같은 스타일을 적용하지 않습니다 (예 : 테두리) 우주. 따라서 다음과 같이 테두리가 렌더링되지 않습니다.

<td></td>
<td> <td>

이 예제에서 테두리가 표시되는 반면 :

<td>& nbsp;</td>

흠-여기에 올바르게 렌더링하기 위해 더미 공간에 넣어야했습니다.


@Stewart-amp를 사용해 보았지만 텍스트에서는 작동했지만 코드 예제에서는 작동하지 않았습니다. "amp"부분도 작성했기 때문에
Pete

아주 이상한. 분명히 버그입니다.
Stewart

2

첫 번째는 HTML 파서에 의해 공백으로 처리되지 않으며 두 번째는 공백으로 처리됩니다. 결과적으로 ""이 (가) 특정 HTML 마크 업 내에 표시되는 것을 보장하지는 않지만 깨지지 않는 공간은 항상 표시됩니다.


1

&nbsp; 공백으로 처리해야합니다.

&nbsp;&nbsp; 공백 두 개로 처리해야합니다.

''는 흥미롭지 않은 공백으로 처리 될 수 있습니다.

''+ ''는 단일 ''로 처리 할 수 ​​있습니다


1

&nbsp; 스택 가능하므로 여러 공간을 모두 만들 수 있습니다.

HTML은 한 칸만 구문 분석하고 나머지는 삭제합니다 ...

5 개의 공백을 원하면 5 x를 배치합니다 &nbsp;


0

예를 들어 @Zoidberg가 맞습니다.

<h1>title</h1> <h2>date</h2>

헤더 마크 업 사이에 공백을 표시하지 않습니다.

& nbsp ; 

공간을 할 것입니다 :)


0

줄 바꿈이있을 때 $ bnsp를 사용할 때 줄이 끊어지지 않습니다. 그것은 '깨지지 않는 공간'이기 때문입니다. 이것은 항상 함께 작성해야하는 특정 제품 이름 등이있는 경우 중요 할 수 있습니다.

프랑스에서 12 344 567로 표시되는 12344567과 같이 숫자를 공백으로 구분 기호로 사용하면 흥미로울 수 있습니다. 줄이 없으면 숫자의 중간에 줄이 끊어 질 것입니다. 테스트 : 12344567


0

TLDR; 허용 된 답변 외에; 하나는 암시적이고 하나는 명시 적입니다.

브라우저가 애플리케이션 / 라이브러리 / 프레임 워크에서 작성했거나 생성 한 HTML을 읽을 때 HTML이 의미하는 바를 해석하는 것이 가장 좋습니다 (브라우저마다 다를 수 있음). HTML 엔터티 코드를 사용하면 브라우저에 더 구체적입니다. 사용자에게 캐릭터를 표시하고 싶다고 명시 적으로 말하고 있습니다. (예를 들어 개발자가 쉽게 읽을 수 있도록 HTML 간격을 두는 것이 아닙니다).

출력 HTML이 다음과 같은 경우 더 구체적으로 말하면 :

<html>
   <title>hello</title>
   <body>
       <p>
           Tell me and I will forget. Teach me and I
           may remember.  Involve me and I will learn.
       </p>
   </body>
</html>

브라우저는 이러한 모든 단어 사이 (한층 더 나은 개발자 가독성을 위해 들여 쓰기 된 단어까지) 사이에 하나의 공백 만 렌더링합니다.

그러나 같은 것을 넣고 <p>태그를 다음 과 같이 변경 한 경우 :

<p>Hello&nbsp;&nbsp;&nbsp;There</p>

그런 다음 더 명확하게 지시 한대로 공백을 렌더링합니다. 스타일링을 위해 이러한 공간을 사용한 역사가 있습니다. CSS가 발전함에 따라이 사용은 다소 줄어 들었습니다. 그러나 많은 HTML 문자 엔터티에는 여전히 유효하게 사용됩니다. 예를 들어 예기치 않게 / 의도하지 않은 해석을 피합니다 (예 : 코드를 표시하려는 경우). W3은 다른 문자 코드를 보여줄 수있는 좋은 페이지가 있습니다 .


: 시도 <p>Hello &nbsp; There</p>OR <p>Hello &nbsp; &nbsp; &nbsp; There</p>(파괴 당신이 전에 모든 후 정기적으로 빈 공간을 사용하여 일부 비트를 저장할 수있는 문제가 아닌 경우 &nbsp;).
사이보그
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.