`& mdash;`또는`& # 8212;`HTML 출력에 차이가 있습니까?


79

— 또는 —

이것들 사이에 차이점이 있습니까? 하나가 다른 것보다 더 잘 지원됩니까?


7
완전성을 위해 : 실제 긴 대시 ( "mdash") 문자는 다음과 같습니다. — 문자 "m"만큼 넓어야합니다
.

6
예, 자본 M
레이 Tayek

답변:


85

SGML 파서 (또는 XHTML의 경우 XML 파서)는 —DTD를 처리 하지 않고도 처리 할 수 ​​있지만 (브라우저에서는 태그 수프를 찌푸 리기 때문에 문제가되지 않음) —사람이 소스 코드를 읽고 쓰기가 더 쉽습니다.

개인적으로 나는 문자 그대로의 em-dash를 고수하고 내 문자 인코딩 설정이 일관 적인지 확인했습니다.


13

그들은 정확히 같은 캐릭터입니다. 참조 : http://en.wikipedia.org/wiki/Dash

브라우저 버그를 제외하고는 모든 경우에 동일하게 표시되므로 코드 가독성에 관한 유일한 차이점은 —.

또는 HTML 문서에서 문자 집합으로 UTF-8을 사용하는 경우 문자를 직접 입력 할 수 있습니다. 그것은 또한 정확히 동일하게 표시됩니다.


5
이것은 HTML의 경우에만 해당되며 XML에서는 &8212;항상 작동하지만 —엔티티 선언에 따라 다릅니다.
Flimm 2014 년

10

—:: —::\u2014

HTML로 출력하기 위해 JavaScript 텍스트 문자열에서 m- 대시를 표시하는 경우 유니 코드 값으로 표시됩니다. 앰퍼샌드 문자 ( '&')가 해결되지 않는 경우가 있습니다. 특히 JSX 내의 특정 컨텍스트가 있습니다. 이 경우 —에도 —작동 하지 않습니다 . 대신 유니 코드 이스케이프 시퀀스를 사용해야합니다 \u2014..

예를 들어 render()JavaScript 변수에서 텍스트를 출력 하는 메서드를 구현하는 경우 :

render() {
   let text='JSX transcoders will preserve the & character—to ' 
            + 'protect from possible script hacking and cross-site hacks.'
   return (
     <div>{text}</div>
   )
}

그러면 다음이 출력됩니다.

<div>JSX transcoders will preserve the & character&mdash;to protect from possible script hacking and cross-site hacks.</div>

&– 접두사 표시 대신 \ u2014를 사용해야합니다.

let text='JSX transcoders will preserve the & character\u2014to …'

1
React와 잘 작동합니다.
Green

2

W3 웹 사이트 에서 타이포그래피에 사용되는 공통 HTML 엔티티

이식성을 위해 유니 코드 엔티티 참조는 UTF-8 또는 UTF-16 문자 세트로 작성되는 문서에서 사용하도록 예약되어야합니다. 다른 모든 경우에는 영숫자 참조를 사용해야합니다.

번역 : 가장 광범위한 지원을 찾고 있다면 &mdash;


1

html 엔티티 테이블의 문자를 직접 참조하기 때문에 숫자 코드를 사용하는 것이 더 보편적 일 수 있지만 둘 다 어디에서나 작동한다고 생각합니다. 첫 번째 표기법은 많은 문자를 기억하기가 훨씬 쉽습니다.

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