Действительно ли заключение в кавычки является значением URL () действительно необходимый?

Какое из следующего я должен использовать в своих таблицах стилей?

/* Example #1: */ background-image: url(image.png);
/* Example #2: */ background-image: url("image.png");
/* Example #3: */ background-image: url('image.png');

Что W3C указывает как корректный путь?

228
задан sshow 13 February 2014 в 05:12
поделиться

4 ответа

W3C говорит, что кавычки необязательны, все три ваших способа законны.

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

Если у вас есть специальные символы в URL, вы должны использовать кавычки или скрывать символы (см. ниже).

Синтаксис и типы основных данных

Формат значения URI - это 'url(', за которым следует необязательный пробел белого цвета, за которым следует необязательный символ одиночной кавычки (') или двойной кавычки ("), за которым следует сам URI, за которым следует необязательный символ одиночной кавычки (") или двойной кавычки ("), за которым следует необязательный пробел белого цвета, за которым следует ')'. Два знака кавычек должны быть одинаковыми.

Удаление специальных символов:

Некоторые символы, появляющиеся в нецитируемом URI, такие как круглые скобки, пробельные символы, одинарные кавычки (') и двойные кавычки ("), должны быть экранированы обратной косой чертой, чтобы полученное значение URI было лексемом URI: '\(', '\)'.

240
ответ дан 23 November 2019 в 03:47
поделиться

В W3C говорится, что цитаты необязательны, все три ваших дорожный легальны.

Открывающая и закрывающая кавычки должны быть одинаковыми.

Если в URL-адресе имеются специальные символы, следует использовать кавычки или избегать символов (см. ниже).

Синтаксис и основные типы данных

Формат значения URI: url (за которым следует необязательный пробел, за которым следует необязательный символ одной кавычки (') или двойной кавычки («), за которым следует сам URI, за которым следует необязательный символ одной кавычки (') или двойной кавычки (»), за которым следует необязательный космос, за которым следует символ ')'. Два символа кавычки должны быть одинаковыми.

Исключение специальных символов:

Некоторые символы, отображаемые в URI без кавычек, такие как круглые скобки, символы пробелов, одинарные кавычки (') и двойные кавычки ('), должны быть удалены с обратной косой чертой, чтобы результирующее значение URI было маркером URI: '\( ', '\)'.

-121--592273-

Примеры 2 или 3 лучше всего:

Из W3C: Формат значения URI: url (за которым следует необязательный пробел, за которым следует необязательный символ одной кавычки (') или двойной кавычки («), за которым следует сам URI, за которым следует необязательный символ одной кавычки (') или двойной кавычки (»), за которым следует необязательный космос, за которым следует ')'. Два символа кавычки должны быть одинаковыми.

Примечание из того же объяснения, пример 1 является приемлемым, если соответствующие символы исключены.

-121--592277-

Вот что говорится в спецификации W3 CSS 2,1:

Формат значения URI: 'url (' с последующим необязательным белым космосом за которым следует необязательная одна кавычка символ (') или двойная кавычка (") за которым следует сам URI, необязательной одиночной кавычкой (') или символ двойной кавычки ("), за которым следует необязательный пробел, за которым следует ')'. Два символа кавычки должны быть то же самое.

Источник: http://www.w3.org/TR/CSS21/syndata.html#uri

Поэтому все 3 примеры, которые вы предложили, верны, но я бы выбрал первый, потому что вы используете меньше символов, и, следовательно, результирующий CSS-файл будет меньше, что приведет к меньшему использованию полосы пропускания.

Это может показаться, что это не важно, но веб-сайты с высоким трафиком предпочитают сохранять пропускную способность и над большим количеством CSS-файлов, и ссылки на URL в них имеет смысл выбрать вариант, который делает файл меньше... Даже потому, что нет никакого преимущества в этом .

Примечание. Если URL-адреса содержат круглые скобки, запятые, символы пробела, одинарные кавычки или двойные кавычки, возможно, придется избегать символов. Это может сделать URL длиннее, чем просто использование кавычек (которые требуют меньшего пробега). Следовательно, вы можете подать CSS-файл с URL-адресами без кавычек только тогда, когда накладные расходы на побег не делают URL длиннее, чем просто использование кавычек (что очень редко).

Однако я не ожидал, что какой-либо человек даже рассмотрит эти крайние случаи... Оптимизатор Css справится с этим для вас... (но уверены, что вам нужно знать обо всем этом, если вы на самом деле пишете css optimizer: P)

11
ответ дан 23 November 2019 в 03:47
поделиться

Лучший пример 2 или 3:

Из W3C:. Формат значения URI - 'url(', за которым следует необязательный пробел белого, за которым следует необязательный символ одиночной кавычки (') или двойной кавычки ("), за которым следует сам URI, за которым следует необязательный символ одиночной кавычки (') или двойной кавычки ("), за которым следует необязательный пробел белого, за которым следует ')'. Два знака кавычек должны быть одинаковыми.

Примечание из того же разъяснения: пример 1 приемлем, если соответствующие знаки опущены.

3
ответ дан 23 November 2019 в 03:47
поделиться

Согласно W3C, три способа легальны. Если у вас есть специальные символы в названии (в виде пробела), то вы должны использовать второй или третий.

6
ответ дан 23 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: