2012-05-30 76 views
0

最近我在代码中发现了这个错误。css HTML安全文件名图片背景与图片标签

此链接“http://www.zendez.com/beta/files/retreatphotos/larges/idretreat70/Mayacamas Ranch, Calistoga, California_ Paradise with a Purpose.jpg”是安全的,如果我有

<img scr="http://www.zendez.com/beta/files/retreatphotos/larges/idretreat70/Mayacamas Ranch, Calistoga, California_ Paradise with a Purpose.jpg"> 

使用它,但不是有效的以及至少图像不显示,如果我用

<div style="background:url(http://www.zendez.com/beta/files/retreatphotos/larges/idretreat70/Mayacamas Ranch, Calistoga, California_ Paradise with a Purpose.jpg)" style="width:100%; height:300px"></div> 

有哪位知道是什么原因,如果有效对于img,但对背景无效?任何建议都会很棒。

+1

虽然我讨厌W3Schools的...查一查多少[url编码(http://www.w3schools.com/tags/ref_urlencode.asp) – Louis

+0

我会避免在文件名中使用空格。在URI中用%20替换它们可能会起作用,但我只是将实际文件中的下划线替换为空格,然后完成它。 –

回答

1

网址更改为http://www.zendez.com/beta/files/retreatphotos/larges/idretreat70/Mayacamas%20Ranch,%20Calistoga,%20California_%20Paradise%20with%20a%20Purpose.jpg可能会工作..

正如我在评论说,您的网址是无法正常urlencoded。网址是不允许的空格。我假设浏览器知道如何处理IMG标签写得不好的src属性,但不能在CSS中,很有可能是因为你不封装的URL在引号,像这样:

background:url('http://www.zendez.com/beta/files/retreatphotos/larges/idretreat70/Mayacamas Ranch, Calistoga, California_ Paradise with a Purpose.jpg');

无论哪种方式,尽量避免空格一起在文件名中,你最终会少一些头痛。

+0

嗯好想法让我试试我会在一分钟后... – ncubica

+1

完美的作品作为一种魅力! :)我在我的javascript中使用encodeURI,因为我无法更改所有代码 – ncubica

0

考虑到上次样式可能无法正常工作,您不应在div中放置两个Style属性。

+0

实际上,css很好,是从jquery一侧的编码问题我正在分配$(“#id”)。attr(“background”,somefuncionTogetImage( )); (“#id”)。attr(“background”,encodeURI(somefuncionTogetImage()));并工作 – ncubica

1

将您的URL放在引号中。这是...你:

background:url(http://yadda/yadda.jpg); 

将其更改为:

background:url('http://yadda/yadda.jpg'); 

当我这样做,我的作品,均与空间和与%20替代空间。总是尽量保持文件名简单。标点符号和空格可能会被文件系统或编程环境严重处理。

无论如何,报价是你的朋友。

另外,考虑将您的风格放入标签中,而不是嵌入到内嵌中。

<head> 
<style type="text/css"> 
    .foo { 
    background:url=('http://yadda/yadda.jpg') no-repeat; 
    } 
</style> 
</head> 

<body> 
<p class="foo">Hello, world.</p> 
</body> 
+0

谢谢,但问题是,我使用jquery $ .attr方法来分配背景,所以我不认为我可以分配引号,最好的选择是用javascript编码encodeURI方法,并且像魅力一样工作...但无论如何是一个很好的做法使用报价。我与你在使用外部CSS ...但在这种情况下是不分配设计问题... – ncubica