2011-12-27 58 views
-2

检查出来:CSS唯一的工作直列

External

Inline

我已经成功地再现了问题..外部网页(test.php的链接到test.css),你会看到一个非常简单的html页面。有一个div,其中有一个图像。它具有适用于它的css风格,但背景(这是一对阴影)缺失。

在第二组页面(test2.php和test2.css)中,唯一的区别是样式属性已经内联移动,其他所有内容都是IDENTICAL,但现在样式正常。

怎么回事?我之前多次看到过这种情况,但人们总是喜欢声称“在某个地方显然有一些重要的样式,你忘记了或者没有注意到”,但在这种情况下,我已经走出去了,不是压倒一切的造型。

然而,它是浏览器独立和一致的,所以我确信有一个简单的答案。

+1

当使用背景图像时,路径是相对于资源而不是页面。因此,内联加载bg图像,并且css-ified不会因为它找不到 – Alfabravo 2011-12-27 15:31:17

+2

此问题永远不会帮助其他任何人,尤其是当这些链接停止工作时。 – 2011-12-27 15:33:08

+0

为他添加了CSS代码以帮助未来的用户。 – Dave 2011-12-27 16:06:52

回答

3

外部CSS文件中的相对路径需要相对于CSS文件而不是页面。

2

既然你已经把图像的URL一个css里面,css文件夹里面,背景图像的URL必须先从../

0

可以

一)把你test.css文件放在与new.html文件相同的目录中,并在您的html文件中用<link rel="stylesheet" href="test.css">替换<link rel="stylesheet" href="support/css/test.css">。将工作。

OR

二)改变从support/images/content_bgshadow.png背景图像的URL ../../support/images/content_bgshadow.png在test.css

1

在你的网线,可以使用完整的路径开始http://

在你的外部,你使用相对路径support/imag...

外部不工作的原因是因为图像的路径不正确。可以使用完整路径(不建议如果它位于与页面位于同一站点上),或者更正相对路径以使其相对于CSS文档而不是实际页面。

例如,如果您的CSS位于像您的“css”文件夹中,您通常需要以'../'开始它的相对路径,以在访问您的'图像'文件夹之前向上跳一级(或任何文件夹是)。

0

你的css文件中有错误的网址。因为它位于support/css文件夹中,所以您必须相对于此文件夹设置路径,因此它应该是../images/content_bgshadow.png