在带有HTML样式标记的url中编码的&符号

时间:2016-11-12 09:41:50

标签: html css ampersand

我有以下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>

Chrome会在https://somedomain.com/services/storage?id=89174&amp;type=picture&amp;secret=ucWEYqzpQk8QCaHHp3lfDy5vRrISWwUgzGLnWaDD&amp;timestamp=1478862301中查询此网址&amp;而不转动&,因此无法正确显示图片。

文档doctype为<!DOCTYPE html>,因此HTML 5。

如果我不编码这些&符号,一切正常,但根据此帖子what's the de facto practice on ampersand encoding in html,所有&符必须编码。

我尝试使用&#38;代替&amp;,在网址周围使用双引号或单引号但没有任何效果。

这是一个浏览器错误还是在这种情况下,不应编码&符号?

1 个答案:

答案 0 :(得分:2)

<style>(和<script>)个元素(在HTML 4术语中)定义为包含CDATA。 (HTML 5 says the same thing,但不是很清楚)。

这意味着标记的常规规则不适用,实体也不会扩展。

如果你想在<style>元素中使用&符号,那么你必须使用文字符号。