Можно ли использовать одинарные кавычки для атрибутов 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? Как я уже подчеркивал выше, это также проблематично, потому что вам нужно избегать Апостроф.

521   15  

15 ответов:

конечно, можно использовать одинарные кавычки (HTML 4.01, раздел 3.2.2). Я не заметил такой тенденции, но, возможно, есть некоторые рамки, которые позволяют веб-сайтам, которые вы посетили, цитировать с помощью одинарных кавычек.

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

например

String.Format("<a href='{0}'>{1}</a>", Url, Desc)

при использовании PHP для генерации HTML может быть проще сделать что-то вроде:

$html = "<img src='$url' />";

чем конкатенация строки с переменной со строкой, так как PHP анализирует переменные в строках с двойными кавычками.

кто-то может использовать его в PHP, чтобы избежать экранирования", если они используют строку с двойными кавычками для анализа переменных внутри нее или избегают использования оператора конкатенации строк.

пример:

echo "<input type='text' value='$data'/>";

вместо

echo "<input type=\"text\" value=\"$data\" />";

или

echo '<input type="text" value="' . $data . '" />';

В настоящее время я всегда придерживаюсь использования двойных кавычек для HTML и одинарных кавычек для Javascript.

Это легче, когда вы хотите вставить двойные кавычки.

In ASP.NET, проще использовать одинарные кавычки, если вы используете выражения привязки данных в атрибуты:

<asp:TextBox runat="server" Text='<%# Bind("Name") %>' />

одинарные кавычки совершенно законны в (X)HTML. Использование обратной косой черты, чтобы избежать их, с другой стороны, нет.<img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' /> Это изображение с текстом alt " Ross\", и пустой s и Widget/Widget' атрибуты. Правильный способ избежать Апострофа в HTML-это &#39;.

в PHP echo принимает кратные параметры. Итак, если вы хотите опустить оператор конкатенации, они могут сделать что-то вроде и по-прежнему использовать двойные кавычки :

echo '<input type="text" value="', $data, '" />';

одинарные кавычки создают более чистую страницу с меньшим количеством беспорядка. Вы не должны избегать их в строках HTML, и это ваш выбор, который нужно использовать... обычно я предпочитаю одинарные кавычки, и если мне нужно включить одинарную кавычку в строку (например, в качестве разделителей для строки внутри строки), я использую двойные кавычки для одного и одного для другого.

Если вы хотите html действительной html4 или xhtml тогда как одиночные кавычки или двойные кавычки будет работать для атрибутов. HTML4 можно проверить здесь:https://validator.w3.org/

Если вы поддержка только современных браузеров (ie10 и выше), то вы можете использовать в HTML5 синтаксис, который позволяет одинарные кавычки, двойные кавычки, и нет кавычки (если в значении атрибутов нет специальных символов). HTML5 можно проверить здесь:https://validator.w3.org/nu

что против одинарных кавычек?

вы можете иметь одинарные/двойные кавычки по всему вашему html-коду без каких-либо проблем, если вы сохраняете тот же стиль цитирования внутри текущих тегов ( многие браузеры не будут жаловаться даже на это, и проверка просто хочет, чтобы если вы начинаете с цитаты, заканчиваются тем же, внутри той же уместности )

бесплатная поддержка случайных стилей цитирования!!! (yay ;D )

Я знаю, что это старый поток, но все еще очень актуально.

Если вы хотите контролировать кавычки в сгенерированном HTML, вы можете использовать sprintf () функция в PHP (и подобные вызовы доступны на многих других языках):

$html = sprintf('<a href="%s">%s</a>', $url, $text);

использование sprintf () позволяет легко изменять строку формата, извлекая ее из базы данных или файла конфигурации или с помощью механизмов перевода.

это очень читабельно, и позволяет либо двойные или одинарные кавычки в сгенерированном HTML, с очень небольшим изменением и никогда не вырваться:

$html = sprintf("<a href='%s'>%s</a>", $url, $text);

Почему бы не сохранить нажав SHIFT ключ. Одним нажатием клавиши меньше для того же пробега.

другой случай, когда вы можете использовать одинарные кавычки: хранение данных в формате JSON атрибуты:

<tr data-info='{"test":true}'></tr>

ключи объектов JSON должны быть в двойных кавычках, поэтому сам атрибут не может.

вы должны избегать кавычки.

в вашем примере только один цитируемый атрибут действительно нуждался в кавычках.

<!-- best form -->
<a href=http://widget-site-example.com/example.html>
  <img src=http://widget-site-example.com/ross.jpg alt='Ross&#39;s Widget' />
</a>

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

использование двойных кавычек не пройдет некоторые валидаторы.

Comments

    Ничего не найдено.