2016-11-12 47 views
1

我有以下HTML樣式標記與符號編碼,URL與HTML樣式標記

<style> 
    #loginBackground { 
     background-image: url(https://somedomain.com/services/storage?id=89174&amp;type=picture&amp;secret=ucWEYqzpQk8QCaHHp3lfDy5vRrISWwUgzGLnWaDD&amp;timestamp=1478862301); 
     background-size: cover; 
     background-position: center center; 
    } 
</style> 

鉻查詢這個網址:https://somedomain.com/services/storage?id=89174&amp;type=picture&amp;secret=ucWEYqzpQk8QCaHHp3lfDy5vRrISWwUgzGLnWaDD&amp;timestamp=1478862301沒有&所以圖像顯示不正常轉彎&amp;

文檔的文檔類型爲<!DOCTYPE html>所以HTML 5

一切,如果我不編碼這些連詞符號,但是根據這個線索what's the de facto practice on ampersand encoding in html所有&符號必須被編碼工作正常。

我試過使用&#38;而不是&amp;,在URL上使用雙引號或單引號,但沒有任何效果。

這是一個瀏覽器錯誤還是在這種情況下&符號不應該被編碼?

回答

2

<style>(和<script>)元素被定義(包含HTML 4術語)爲包含CDATA。 (HTML 5 says the same thing,但不是很清楚)。

這意味着標記的常規規則不適用,實體不擴展。

如果要在<style>元素中包含&符號,則必須使用文字&符號。

+0

@arkascha - OP *觀察到*,並詢問它是否是瀏覽器錯誤或者它是否應該不被編碼。這個答案清楚地表明它是HTML規範中定義的行爲。 – Quentin

+0

@Quention謝謝! –