Как избежать кавычек в встроенных стилях?
Если у меня есть встроенная таблица стилей, может и я хочу - по какой-то странной причине - использовать те же кавычки, что и для инкапсуляции значения атрибута в свой HTML-код внутри css.
Правильно ли это?
<div style="background: url(\"http://my-url.com/img.jpg\")"></div>
<div style="background: url("http://my-url.com/img.jpg")"></div>
Я думаю, что первый из них правильный, а второй - бессмыслица. Я прав или нет, и почему?
изменить:
Сотрудник написал второй путь, и проблема заключалась в том, что некоторые браузеры (включая, но не обязательно ограничиваемые Internet Explorer 6 + 7 + 8) запрашивали URL-адрес, ВКЛЮЧАЯ " знаки, которые приводят к запросу 404.
edit 2:
Теперь это действительно странно. это оригинальная копия кода и вставлена из нашего файла.
<div class="cover" style="background-image: url("http://www.flimmit.com/media/search/filmcovers/105x152/ka/false/kf/false/F7780E.jpg");">
и это прямо из нашего журнала ошибок:
13:09:45 (0.2424) [header] requ_uri /schauspieler/Kelly+Trump/"http:/www.flimmit.com/media/search/filmcovers/105x152/ka/false/kf/false/F6TYO8.jpg"
Mar 18 13:09:45 (0.0001) [header] server_addr 10.48.195.172
Mar 18 13:09:45 (0.0001) [header] http_user_agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; AskTbFF/5.9.1.14019)
Mar 18 13:09:45 (0.0001) [error] 404-Seite wurde aufgerufen
Mar 18 13:09:45 (0.0386) [header] remote_ip 212.95.7.69 - AT
Mar 18 13:09:45 (0.0001) [header] visitor_id 4095543, -
Mar 18 13:09:45 (0.0001) [header] requ_url http://www.flimmit.com/schauspieler/Kelly+Trump/"http:/www.flimmit.com/media/search/filmcovers/105x152/ka/false/kf/false/F6TYO8.jpg"
Mar 18 13:09:45 (0.0001) [header] http_referer http://www.flimmit.com/schauspieler/Kelly+Trump/
Mar 18 13:09:45 (0.0000) [header] finished at 0.2816
это был клиент IE8. на IE6 запрос uri даже имеет "
вместо "
в нем.
Итак, либо мы все ошибаемся, либо интернет-исследователь не соблюдает какие-либо стандарты?
Ответы
Ответ 1
используйте одинарные кавычки, и я думаю, что это должны быть круглые скобки:
<div style="background: url('http://my-url.com/img.jpg')"></div>
Работает также "
(проверено в jsFiddle):
<div style="background: url("http://my-url.com/img.jpg")">test</div>
Ответ 2
Во-первых, почему?
Вы должны использовать ()
вместо '{}'
Этот способ лучше всего:
<div style="background: url('http://my-url.com/img.jpg')"></div>
Этот способ в порядке:
<div style="background: url("http://my-url.com/img.jpg")"></div>
Это также работает:
<div style="background: url(http://my-url.com/img.jpg)"></div>
Это не работает:
<div style="background: url(\"http://my-url.com/img.jpg\")"></div>
Примечание. Удалите пробел после url
.
Ответ 3
Второй вариант является правильным, если говорить об экранировании:
<div style="background: url {"http://my-url.com/img.jpg"}"></div>
Чтобы избежать двойных кавычек в HTML, вы используете "
, будь то в атрибутах или нет.
Смотрите jsfiddle (взято из этого ответа SO).