我知道参考图片时CSS的相对路径是相对于CSS文件本身的。
我想在HTML文件夹中引用一个图像,这样尽管该图像将始终具有相同的名称,但是访问的每个目录都将具有不同的图像。

我有一个类似于以下的目录结构:

book/
-index.html
-style.css
-chapter1/
--background.png
--index.html
-chapter2/
--index.html
--background.png


我希望style.css引用每个index.html的background.png图像作为在相关index.html的同一目录中的background.png。

那可能吗?如果是这样,我该怎么办。

最佳答案

这在外部样式表中是不可能的。图片网址是相对于样式表网址的,而不是文档网址。

您可以通过将CSS添加到文档本身来解决此问题。您不需要文档中的整个CSS,但是您可以在文档中添加背景图片:

<style>.yourclass{ background-image: url('background.png'); }</style>


这不是很好,但是我认为这是目前最好的解决方案。

或者,您可以为css中的所有文档指定背景,并为该文档添加一个类。例如,您可以将文档标题作为类添加到正文中,并在此基础上设置样式,这样您将获得类似

body.chapter-1 .yourclass{ background-image: url('../chapter1/background.png'); }


当然,缺点是您必须了解文档并将每个文档添加到样式表中。因此,这取决于您的情况,哪一种效果最好。如果您想从各种样式中选择章节,最好添加一个类。如果每个文档都有自己的背景,我认为将其嵌入文档本身是最好的选择,否则样式表将包含完整的网站索引,并且每次添加新内容时都必须进行更改。

08-17 09:34
查看更多