如何逃避内联样式的引号?

The*_*can 14 html css xml markup escaping

如果我有一个内联样式表,可以和我想要 - 出于一些奇怪的原因 - 使用你用来封装css中我的html代码中的属性值的相同引号.

其中一个是正确的吗?

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


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

我认为第一个是正确的,第二个是无稽之谈.我是对还是不对,为什么?

编辑:

一位同事以第二种方式编写了它,问题是某些浏览器(包括但不一定限于Internet Explorer 6 + 7 + 8)请求包含"404请求中产生的符号"的URL.

编辑2:

好吧现在真的很奇怪了.这是原始代码副本并从我们的文件中粘贴.

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

这是我们的错误日志:

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
Run Code Online (Sandbox Code Playgroud)

这是一个IE8客户端.在IE6上,请求uri甚至&quot;没有"在其中.

那么要么我们都错了,要么互联网浏览器不尊重任何标准?

Luk*_*dge 16

使用单引号,我认为它应该是圆括号:

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

&quot;作品太(在测试的jsfiddle):

<div style="background: url(&quot;http://my-url.com/img.jpg&quot;)">test</div>
Run Code Online (Sandbox Code Playgroud)


Ode*_*ded 5

就转义而言,第二个选项是正确的:

<div style="background: url(&quot;https://my-url.com/img.jpg&quot;)"></div>
Run Code Online (Sandbox Code Playgroud)

要转义 HTML 中的双引号&quot;,无论是否在属性中,都可以使用 。

请参阅此jsfiddle(取自SO 答案)。


RDL*_*RDL 5

首先,为什么?

您应该使用()而不是“{}”

这种方式最好:

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

这种方式很好:

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

这也有效:

<div style="background: url(http://my-url.com/img.jpg)"></div>
Run Code Online (Sandbox Code Playgroud)

这不起作用:

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

注意:去掉后面的空格url