Правильно ли использовать одинарные кавычки для атрибутов HTML?
Недавно я видел много этого:
<a href='http://widget-site-example.com/example.html'>
<img src='http://widget-site-example.com/ross.jpg' alt='Ross's Widget' />
</a>
Можно ли использовать одинарные кавычки в HTML? Как я выделил выше, это также проблематично, потому что вам нужно избегать апострофов.
Ответы
Ответ 1
Это, безусловно, справедливо для использования одинарных кавычек (HTML 4.01, раздел 3.2.2). Я не заметил такой тенденции, но, возможно, есть некоторые рамки, которые обеспечивают веб-сайты, которые вы посещали, которые, как правило, цитируются с использованием одинарных кавычек.
Ответ 2
Я считаю, что использование одинарных кавычек удобно при динамическом создании HTML с использованием языка программирования, в котором используются литералы с прямыми буквами.
например.
String.Format("<a href='{0}'>{1}</a>", Url, Desc)
Ответ 3
При использовании PHP для генерации HTML может быть проще сделать что-то вроде:
$html = "<img src='$url' />";
чем конкатенация строки с переменной со строкой, поскольку PHP анализирует переменные в строках с двойными кавычками.
Ответ 4
Кто-то может использовать его в PHP, чтобы избежать экранирования "если они используют строку с двойными кавычками, чтобы анализировать переменные внутри нее или избегать использования оператора конкатенации строк.
Пример:
echo "<input type='text' value='$data'/>";
вместо
echo "<input type=\"text\" value=\"$data\" />";
или
echo '<input type="text" value="' . $data . '" />';
В настоящее время я всегда придерживаюсь использования двойных кавычек для HTML и одинарных кавычек для Javascript.
Ответ 5
Это проще, если вы хотите вставлять двойные кавычки.
Ответ 6
В ASP.NET проще использовать одинарные кавычки, если вы используете выражения привязки данных в атрибутах:
<asp:TextBox runat="server" Text='<%# Bind("Name") %>' />
Ответ 7
Одиночные кавычки совершенно законны в (X) HTML. С другой стороны, с помощью обратной косой черты сбежать от них нет. <img src='http://widget-site-example.com/ross.jpg' alt='Ross\ Widget' />
- это изображение с текстом alt "Ross \" и пустыми атрибутами s
и Widget
/Widget'
. Правильный способ избежать апострофа в HTML - '
.
Ответ 8
В PHP echo принимает кратные параметры. Итак, если вы хотите опустить оператор конкатенации, они могли бы сделать что-то вроде и использовать двойные кавычки:
echo '<input type="text" value="', $data, '" />';
Ответ 9
Одиночные кавычки создают более чистую страницу с меньшим количеством помех. Вы не должны избегать их в HTML-строках, и это ваш выбор, который следует использовать... Мое предпочтение - одинарные кавычки, и если мне нужно включить в строку одну цитату (например, в качестве разделителей для строки внутри строки) Я использую двойные кавычки для одного и одного для другого.
Ответ 10
Если вы хотите html чтобы быть действительным html4 или xhtml, а затем single-quotes или double-quotes будет работать для атрибутов. HTML4 можно проверить здесь: https://validator.w3.org/
Если вы поддерживаете только современные браузеры (ie10 и выше), затем вы можете использовать html5 синтаксис, который позволяет одинарные кавычки, двойные кавычки и никакие кавычки (пока в значении атрибутов нет специальных символов). HTML5 можно проверить здесь: https://validator.w3.org/nu
Ответ 11
Что против одиночных кавычек?
У вас могут быть одиночные/двойные кавычки по всему вашему html-коду без каких-либо проблем, если вы сохраняете один и тот же стиль цитирования внутри текущих тегов (многие браузеры не будут жаловаться даже на это, и проверка просто хочет, чтобы, если вы начните с цитаты, закончите тем же самым, внутри того же приличия)
Бесплатная поддержка случайных стилей цитирования!!! (yay; D)
Ответ 12
Я знаю, что это старый поток, но все же очень актуальный.
Если вы хотите контролировать кавычки в сгенерированном HTML, вы можете использовать функцию sprintf() в PHP (и подобные вызовы, доступные во многих другие языки):
$html = sprintf('<a href="%s">%s</a>', $url, $text);
Использование sprintf() позволяет легко модифицировать строку формата, извлекая ее из базы данных или файла конфигурации или с помощью механизмов перевода.
Это очень читаемо и позволяет использовать двойные или одинарные кавычки в сгенерированном HTML с очень небольшим изменением и никогда не сбрасывать:
$html = sprintf("<a href='%s'>%s</a>", $url, $text);
Ответ 13
Почему бы не сохранить нажатие клавиши SHIFT. Еще одно нажатие клавиши для одного и того же бедствия.
Ответ 14
Другой случай, когда вы можете использовать одинарные кавычки: Хранение данных JSON в атрибутах данных:
<tr data-info='{"test":true}'></tr>
Объектные ключи JSON должны быть в двойных кавычках, поэтому сам атрибут не может.
Ответ 15
Вам следует избегать котировок вообще.
В вашем примере только один цитируемый атрибут действительно нуждался в кавычках.
<!-- best form -->
<a href=http://widget-site-example.com/example.html>
<img src=http://widget-site-example.com/ross.jpg alt='Ross's Widget' />
</a>
Если вы используете кавычки, нет жесткого и быстрого правила, но я видел чаще всего одинарные кавычки с двойными кавычками внутри, если это необходимо.
Использование двойных кавычек не будет передавать некоторые валидаторы.