Допустимы ли одинарные кавычки в HTML/XHTML?

Допустимы ли одинарные кавычки в HTML? А конкретнее: строгий XHTML.

<table width="100%">
<table width='100%'>

3 ответа

Решение

Да, одинарные кавычки действительны.

Из спецификации XML:

[10]   AttValue  ::= '"' ([^<&"] | Reference)* '"'
                  |  "'" ([^<&'] | Reference)* "'"

Источник путаницы в этом вопросе, похоже, исходит из этой статьи,

http://www.javascriptkit.com/howto/xhtml_intro.shtml

который, кажется, утверждает, что одинарные кавычки недопустимы в xhtml. Однако, поскольку ни одна спецификация не цитируется, и поскольку в статье также утверждается, что строчные имена для атрибутов и элементов запрещены, автор может просто выразить редакционный запрет на использование одинарных кавычек.

Согласно спецификации, оба действительны:-)

[9]    EntityValue    ::=    '"' ([^%&"] | PEReference | Reference)* '"'  
   |  "'" ([^%&'] | PEReference | Reference)* "'" 
[10]    AttValue    ::=    '"' ([^<&"] | Reference)* '"'  
   |  "'" ([^<&'] | Reference)* "'" 
[11]    SystemLiteral    ::=    ('"' [^"]* '"') | ("'" [^']* "'")  
[12]    PubidLiteral    ::=    '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

И W3C-Validator также принимает это.

Другие вопросы по тегам