如果我有一個內(nèi)聯(lián)樣式表,我希望——出于某種奇怪的原因——使用你在css中封裝html代碼中的屬性值時使用的引號。
其中一個是正確的嗎?
<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)請求包含& quot導致404請求的標志。
編輯2:
好吧,現(xiàn)在真的越來越奇怪了。這是從我們的文件中復制粘貼的原始代碼。
<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甚至有& ampquot而不是“在里面。
所以要么是我們都錯了,要么是ie瀏覽器不尊重任何標準?
使用單引號,我認為應(yīng)該是圓括號:
<div style="background: url('http://my-url.com/img.jpg')"></div>
& ampquot也能工作(在jsFiddle中測試):
<div style="background: url("http://my-url.com/img.jpg")">test</div>
首先,為什么?
您應(yīng)該使用()而不是“{ 0 }”
這種方式是最好的:
<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后面的空格。
就逃跑而言,第二種選擇是正確的:
<div style="background: url("https://my-url.com/img.jpg")"></div>
要在HTML中轉(zhuǎn)義雙引號,您可以使用& ampquot,不管是不是在屬性上。
看到這個jsfiddle(摘自這個SO回答)。
如果要使用多個雙引號和單引號
您可以將雙引號和單引號組合在一起(嵌套)
style="background-image: url( 'image.jpg' );"
或者
style='background-image: url( "image.jpg" );'
并且可以嵌套更多
比如(如果你使用框架模板(Django))
style="background-image: url( ' {% static "image.jpg" %}' ); "