我有以下HTML样式标记
<style>
#loginBackground {
background-image: url(https://somedomain.com/services/storage?id=89174&type=picture&secret=ucWEYqzpQk8QCaHHp3lfDy5vRrISWwUgzGLnWaDD&timestamp=1478862301);
background-size: cover;
background-position: center center;
}
</style>
Chrome会在https://somedomain.com/services/storage?id=89174&type=picture&secret=ucWEYqzpQk8QCaHHp3lfDy5vRrISWwUgzGLnWaDD&timestamp=1478862301
中查询此网址&
而不转动&
,因此无法正确显示图片。
文档doctype为<!DOCTYPE html>
,因此HTML 5。
如果我不编码这些&符号,一切正常,但根据此帖子what's the de facto practice on ampersand encoding in html,所有&符必须编码。
我尝试使用&
代替&
,在网址周围使用双引号或单引号但没有任何效果。
这是一个浏览器错误还是在这种情况下,不应编码&符号?
答案 0 :(得分:2)
<style>
(和<script>
)个元素(在HTML 4术语中)定义为包含CDATA。 (HTML 5 says the same thing,但不是很清楚)。
这意味着标记的常规规则不适用,实体也不会扩展。
如果你想在<style>
元素中使用&符号,那么你必须使用文字符号。