Как избежать кавычек во встроенных стилях? - PullRequest
14 голосов
/ 18 марта 2011

Если у меня есть встроенная таблица стилей, можно и я хочу - по какой-то странной причине - использовать те же кавычки, которые вы использовали для инкапсуляции значения атрибута в моем HTML-коде внутри CSS.

Является одним из нихправильно?

<div style="background: url(\"http://my-url.com/img.jpg\")"></div>


<div style="background: url(&quot;http://my-url.com/img.jpg&quot;)"></div>

Я думаю, что первый правильный, а второй - чепуха.Прав ли я или нет, и почему?

edit:

Сотрудник написал это вторым способом, и проблема заключалась в том, что некоторые браузеры (включали, но не обязательно ограничивались Internet Explorer 6+)7 + 8) запросил URL, ВКЛЮЧАЯ "знаки, которые появляются в запросе 404.

edit 2:

хорошо, теперь это действительно странно. Это оригинальная копия кода, вставленная из нашегофайл.

<div class="cover" style="background-image: url(&quot;http://www.flimmit.com/media/search/filmcovers/105x152/ka/false/kf/false/F7780E.jpg&quot;);">

, и это прямо из нашего журнала ошибок:

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 запроса даже есть &quot; вместо "в нем.

Значит, либо мы все не правы, либо интернет-исследователь не соблюдает какие-либо стандарты?

Ответы [ 3 ]

16 голосов
/ 18 марта 2011

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

<div style="background: url('http://my-url.com/img.jpg')"></div>

&quot; тоже работает (проверено в jsFiddle):

<div style="background: url(&quot;http://my-url.com/img.jpg&quot;)">test</div>
4 голосов
/ 18 марта 2011

Прежде всего, почему?

Вы должны использовать () вместо '{}'

Этот способ лучше всего:

<div style="background: url('http://my-url.com/img.jpg')"></div>

Этот способ хорош:

<div style="background: url(&quot;http://my-url.com/img.jpg&quot;)"></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 голосов
/ 18 марта 2011

Второй вариант является правильным, если говорить о экранировании:

<div style="background: url {&quot;http://my-url.com/img.jpg&quot;}"></div>

Для экранирования двойных кавычек в HTML вы используете &quot;, независимо от того, в атрибутах это или нет.

См. jsfiddle (взято из этого ТА ответа).

...