在今天写页面的时候遇到一个这样的问题,不知道有没有跟我一样遇到过这样类似的问题“在css里使用background-image插入背景图片时,浏览器没有任何反应”并且css引用语法、路径都没问题,在你还没想到绝对路径与相对路径时,你肯定很纳闷why?why?why?经过一番搜索资料和尝试可算是找到关键所在,于是就写这篇博客记录下关于问题的解决过程和办法,加深自己的印象,同样的错误绝不能再有第二次了,其实问题关键所在就是路径问题,如下图:
比如我想在css外部样式文件里为网页添加img里的一张图片做背景,那么可能会写这样一条代码:body { background-image : url(‘img/bg.jpg’) ;background-repeat:no-repeat; },然后打开浏览器,唉??什么都没有,然后我就看css引入没错啊,于是我就在css里给body添加个背景颜色,body { background-image : url(img/bg.jpg) ;background-repeat:no-repeat; background:blue;}这时打开浏览器发现背景变成了蓝色,说明样式文件引入是没问题的,那问题肯定就在(background-image : url(img/bg.jpg) ;)这块了,猛地一看是没什么问题,就是引用img文件夹下的图片啊,但是别忘了,我是在css文件夹下的css文件里引用img文件夹下的图片,说到这里肯定有人就想到了绝对路径与相对路径,的确根据相对路径的说法,正确的写法应该是这样的body { background-image : url(’…/img/bg.jpg’) ;background-repeat:no-repeat; }
(百度搜索搜素绝对路径与相对路径)知识补充:这里补充一下相对路径与绝对路径的写法用于以后回顾记忆。
相对路径:就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。
1 两个文件在同一个文件夹下,直接写文件名即可
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\index.html
在info.html加入index.html超链接的href应该这样写:index.html
2 要引用的文件在下一级文件夹下,文件名前加子文件夹名称
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\html\tutorials\index.html
在info.html加入index.html超链接的href应该这样写:html/tutorials/index.html
3 要引用的文件在上一级文件夹下,文件名前加…/
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\index.html
在info.html加入index.html超链接的代码应该这样写:index.html
举一反三: …/表示源文件所在目录的上一级目录,…/…/表示源文件所在目录的上上级目录,以此类推。
4 更复杂的情况:
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\html\index.html
在info.html加入index.html超链接的代码应该这样写:index.html
绝对路径(absolute path)指带域名的文件的完整路径。
表示源文件所在目录的上上级目录,以此类推。正确地引用文件,我们需要学习一下HTML路径。
假设你注册了域名baidubaikewww.seo-xy . com,并申请了虚拟主机,你的虚拟主机提供商会给你一个目录,比如www,这个www就是你网站的根目录。
假设你在www根目录下放了一个文件index.html,这个文件的绝对路径就是: baidubaikewww.seo-xy .com/index.html 假设你在www根目录下建了一个目录叫archives,然后在该目录下放了一个文件index.html,这个文件的绝对路径就是baidu。baikewww.seo-xy. com/archives/index.html。