消息关闭
    暂无新消息!
<img src=" http://image.dydata.io/YQqzz7AY5kTURfaHHemW4f.jpg"> 

这样做完全没有问题,图片可以正常显示,
但是,如果是在一个div上设置 background-image: url( 其他网站的图片路径 ) ,则无法正常显示,官方文档上说css background-image:url() 里面只能是相对路径,请问一下背后的机制是什么样的?求大神解答~


14个回答

︿ 2

刚刚验证过了,肯定是可以的,

html部分:<div id="ddd" style="width:100%;height: 159px;"></div>
js部分:var src ="http://image.dydata.io/YQqzz7AY5kTURfaHHemW4f.jpg";
$("#div").css('background', "url("+src+") center center no-repeat");
︿ 1

……这个属性就叫url你说它不支持URL?Excuse me?
看了下MDN上,写的是可以用相对地址,下边的例子好几个都是直接用URL的。
看到题主提了下“其他网站”,如果对方没有做防盗链的话,那么最有可能的就是这个<div>有问题。

︿ 1

是可以的。
你怎么判断的无法正常显示?network里加载了背景图了吗?div有高度吗?

︿ 1

你这个问题是因为<img>标签本身是元素,其默认大小由内容(也就是图片大小)决定。
而如果你把图片作为<div>的背景,背景大小并不属于元素内容区的部分,所以由于你没定义div标签的高度,而且div标签中没有任何内容,所以div标签的默认高度为0,你也就看不到div的背景图了。

︿ 1

background是一个元素的属性,那个元素都没有显示出来,背景当然没有啊。img标签是一个独立的元素,它自己有宽高,那个元素的宽高会被img撑大

︿ 1

还有这种操作???不管是绝对路径还是相对路径都是可以的,背景图的渲染是根据你div的大小进行渲染的,高度为0当然就什么都看不到啦!

︿ 0

background-image:url() 里面是可以写绝对路径的,可能是你没有给div高宽。

︿ 0

求一发官方文档,
绝对路径和相对路径都可以的,你看下是不是 CSS出错了,没用给 div加 style

︿ 0

首先 img background 中的src都是接受绝对路径的。要注意的是background中你设置url后要给对应的元素设置宽高才会出现图片