2010-09-04 120 views
1

我有以下的HTML代码:麻烦背景图像出现在HTML

<div style="background-image:url(~/Images/MyImage.jpg); width:100%; height:100%"> 

我不是太熟悉HTML,而是形成所有我见过的文章,这应该很好地工作。如果我在一个asp.net图像控件中显示图像,那么它显示正常。不过,我想把文本放在上面。有谁能告诉我我做错了什么吗?

回答

2

默认情况下,不能在普通HTML元素的路径中使用~。这只能被ASP.NET理解,但是你的元素被视为标记,只是简单地发送到浏览器而不被服务器端脚本处理。

您应该的id属性和属性runat="server"添加到您的<div>所以,它是由ASP.NET的认可,否则你将不得不使用相对或绝对URL,而不在路径中~

<div id="mydiv" style="background-image:url(~/Images/MyImage.jpg);" runat="server"> 

<div style="background-image:url(/Images/MyImage.jpg);"> 
1

您的DIV不计算作为服务器控件,因此“〜”字符不被识别,因为它应该。不是100%肯定,但添加RUNAT =“服务器”应该工作...

<div style="background-image:url(~/Images/MyImage.jpg); width:100%; height:100%" runat="server"> 
1

在上面你把<div ...> </div>之间的任何文本会过来背景图像的情况。

此外,由于runat = server标签丢失,它甚至不会被asp.net触及。所以你的网址也是错误的〜。