Одиночные и двойные кавычки («против») - PullRequest
234 голосов
/ 03 марта 2010

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

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

Ответы [ 15 ]

380 голосов
/ 03 марта 2010

W3 org сказал :

По умолчанию SGML требует, чтобы все значения атрибутов были разделены с помощью двойных кавычек (десятичный ASCII 34) или одинарных кавычек (десятичный ASCII 39). Одинарные кавычки могут быть включены в значение атрибута, когда значение ограничено двойными кавычками, и наоборот. Авторы также могут использовать числовые ссылки на символы для представления двойных кавычек (") и одинарных кавычек ('). Для двойных кавычек авторы также могут использовать ссылку на символьную сущность ".

Итак ... похоже, нет никакой разницы. Зависит только от вашего стиля.

63 голосов
/ 03 марта 2010

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

<a href="#" onclick="alert('Clicked!');">Click Me!</a>

В этом примере вы должны использовать оба, это неизбежно.

25 голосов
/ 26 ноября 2014

Соглашения о цитировании для веб-разработчиков

Краткий ответ

В HTML использование одинарных кавычек (') и двойных кавычек (") взаимозаменяемо, разницы нет.

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

Длинный ответ

Веб-разработка часто состоит из множества языков программирования. HTML, JS, CSS, PHP, ASP, RoR, Python и т. Д. Из-за этого у нас много синтаксических соглашений для разных языков программирования. Часто привычки с одного языка будут следовать за нами на другие языки, даже если это не будет считаться «правильным», то есть комментируя соглашения. Соглашения о цитировании также подпадают под эту категорию для меня.

Но я склонен использовать HTML тесно в сочетании с PHP. А в PHP существует основная разница между одинарными и двойными кавычками. В PHP с двойными кавычками «вы можете вставлять переменные непосредственно в текст строки». (scriptingok.com) А при использовании одинарных кавычек "текст отображается как есть". (Scriptingok.com)

PHP занимает больше времени для обработки строк в двойных кавычках . Поскольку синтаксический анализатор PHP должен заранее прочитать всю строку, чтобы обнаружить любую переменную внутри и объединить ее, обработка занимает больше времени, чем строка в одинарных кавычках. (Scriptingok.com)

Одинарные кавычки проще на сервере . Поскольку PHP не нужно читать всю строку заранее, сервер может работать быстрее и счастливее. (Scriptingok.com)

Другие вопросы, которые следует учитывать

  1. Частота двойных кавычек в строке. Я считаю, что мне нужно использовать двойные кавычки (") в моих строках чаще, чем мне нужно использовать одинарные кавычки (') в строках. Чтобы уменьшить количество необходимых экранирований символов, я предпочитаю разделять одинарные кавычки.
  2. Проще сделать одинарную кавычку. Это довольно очевидно, но для выяснения, зачем нажимать клавишу SHIFT больше, чем нужно.

Моя конвенция

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

<button onClick='func("param");'>Press Me</button>

Конечно, если мы находимся в PHP и хотим, чтобы синтаксический анализатор обрабатывал переменные PHP внутри строки, мы должны намеренно использовать двойные кавычки. $a='Awesome'; $b = "Not $a";

Источники

Одинарные кавычки против двойных кавычек в PHP. (Н.о.). Получено 26 ноября 2014 г., с http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP

13 голосов
/ 13 февраля 2011

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

11 голосов
/ 03 марта 2010

В HTML я не думаю, что имеет значение, используете ли вы " или ', но это должно использоваться последовательно во всем документе.

Мое собственное использование предпочитает, чтобы атрибуты / html использовали ", тогда как весь JavaScript использует вместо '.

Это немного облегчает мне чтение и проверку. Если ваше использование имеет больше смысла для вас, чем мое, нет необходимости в изменениях. Но, по-моему, ваш код будет казаться беспорядочным. Это личное, это все.

8 голосов
/ 28 октября 2015

На самом деле, лучший способ - это то, что рекомендует Google.Двойные кавычки: https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Quotation_Marks#HTML_Quotation_Marks

См. https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity Цитируемый совет от Google: «Использование допустимого HTML - это измеримый базовый атрибут качества, который помогает узнать о технических требованиях и ограничениях и обеспечивает правильное использование HTML.. "

5 голосов
/ 08 мая 2015

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

Пример:

<form method=post action=#>
<fieldset>
<legend>Register here: </legend>
  <label for=account>Account: </label>
  <input id=account type=text name=account required><br>
  <label for=password>Password: </label>
  <input id=password type=password name=password required><br>
...

Двойные кавычки используются только тогда, когда в значениях атрибута есть пробелы или что-то еще:

<form class="val1 val2 val3" method=post action=#>
  ...
</form>
5 голосов
/ 23 апреля 2015

Использование двойных кавычек для HTML

т.е.

<div class="colorFont"></div>

Использование одинарных кавычек для JavaScript

т.е.

$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');
2 голосов
/ 04 декабря 2014

У меня была проблема с использованием Bootstrap, когда использование двойных кавычек имело значение по сравнению с использованием одинарных кавычек (которые не работали). class = 'row-liquid' вызвал у меня проблемы, из-за которых последний промежуток упал ниже других промежутков, а не сидел рядом с крайним правым краем, тогда как class = "row-liquid" сработал.

1 голос
/ 13 июня 2018

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

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

String s = "<a href=\"link\">a Link</a>"

У вас нет такой проблемы с одинарной кавычкой, поэтому использование одинарной кавычки делает код на Java более читабельным.

String s = "<a href='link'>a Link</a>"

Особенно, если вам нужно написать html-элементы со многими атрибутами. (Обратите внимание, я обычно использую библиотеку, такую ​​как jhtml, для написания html на Java, но это не всегда практично)

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