Почему нельзя использовать "& apos;" для экранирования одинарных кавычек? - PullRequest
145 голосов
/ 18 января 2010

Как указано в, Когда одинарные кавычки в HTML стали настолько популярными? и Встроенная цитата Jquery в атрибуте , запись в Википедии по HTML говорит следующее:

Символ одинарных кавычек ('), когда он используется для цитирования значения атрибута, также должен быть экранирован как ' или ' (НЕ должен экранироваться как ', за исключением документов XHTML), когда он появляется внутри само значение атрибута.

Почему нельзя использовать '? Кроме того, можно ли использовать " вместо "?

Ответы [ 5 ]

162 голосов
/ 18 января 2010

" находится в официальном списке действительных HTML 4 объектов , но ' нет.

С C.16. Справочник по именованным символам ':

Ссылка на именованный символ ' (апостроф U + 0027) был введен в XML 1.0, но не появляются в HTML. Авторам следует поэтому используйте ' вместо ' для правильной работы в HTML 4 пользовательские агенты.

27 голосов
/ 18 января 2010

' не является частью стандарта HTML 4.

", тем не менее, это хорошо для использования.

24 голосов
/ 31 августа 2013

" допустимо как в HTML5, так и в HTML4.

' действительно в HTML5 , но не HTML4 . Однако большинство браузеров в любом случае поддерживают ' для HTML4.

16 голосов
/ 23 декабря 2014

Если вам нужно написать семантически правильную разметку, даже в HTML5, вы должны , а не использовать ' для экранирования одинарных кавычек. Хотя, я могу представить, что вы на самом деле имели в виду апостроф, а не одиночную кавычку.

одинарные кавычки и апострофы не являются семантически одинаковыми, хотя они могут выглядеть одинаково.

Вот один апостроф.

Используйте ’, чтобы вставить его, если вам нужна поддержка HTML4.

В британском английском одинарные кавычки используются так:

«Он сказал мне« попробовать », - сказал я.

Цитаты идут парами. Вы можете использовать:

<p><q>He told me to <q>give it a try</q></q>, I said.<p>

иметь вложенные кавычки семантически правильным способом, откладывая замену фактических символов на механизм рендеринга. На эту замену могут повлиять правила CSS , например:

q {
  quotes: '"' '"' '<' '>';
} 

Старая, но, казалось бы, все еще актуальная статья о семантически правильной разметке: Проблема с EM ’n EN (и другими затененными символами) .

2 голосов
/ 29 августа 2012

Если вам действительно нужны одинарные кавычки, апострофы, вы можете использовать

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote
...