在網(wǎng)頁(yè)中js和css中引用圖片的相對(duì)路徑問(wèn)題
2016/8/8 9:32:44 閱讀:1854
發(fā)布者:1854
在網(wǎng)頁(yè)中css一般寫(xiě)圖片的相對(duì)路徑都用./(當(dāng)前路徑) 或../(上級(jí)路徑) 或../../(上上級(jí)路徑);一直以為js也可以這么寫(xiě),但今天發(fā)現(xiàn)js中引用圖片的相對(duì)路徑不能和css中引用圖片似的相對(duì)于當(dāng)前css代碼所在的位置寫(xiě)相對(duì)路徑。
在JS中引用圖片相對(duì)路徑:JS文件是指在頁(yè)面中引用的外部JavaScript文件,其中可能采用JavaScript代碼生成html代碼,由于生成的html代碼是嵌入在引用該JS文件的頁(yè)面中,因此,在描述相對(duì)路徑時(shí),應(yīng)該使用被引用的文檔或素材相對(duì)于引用JS文件的頁(yè)面之間的相對(duì)路徑。
例如,文檔“/www/yanet/index.html”中引用了JS文件“/www/yanet.cn/js/hello.js”,而在該JS中生成一段引用素材“/www/yanet/images/1.jpg”的html代碼,則在這段代碼中,其相對(duì)路徑應(yīng)該是“./images/1.jpg”或“images/1.jpg”,而不能是“../images/1.jpg”。
在CSS中引用圖片相對(duì)路徑:CSS文件是指在頁(yè)面中引用的外部樣式定義文件,該文件通常用于定義頁(yè)面中各種html標(biāo)記的顯示效果(例如文本的字體名稱(chēng)、字體大小、縮進(jìn)、邊距等),CSS文件中同樣可以引用外部的素材或文檔(例如設(shè)置某個(gè)DIV對(duì)象的背景圖片)。和JS文件不同,瀏覽器認(rèn)為CSS文件也是一個(gè)獨(dú)立的文檔,因此,在CSS中對(duì)素材的引用可以通過(guò)計(jì)算素材文件和該CSS文件之間的相對(duì)路徑來(lái)實(shí)現(xiàn),而與引用該CSS文件的頁(yè)面所在的位置無(wú)關(guān)。
例如,文檔“/www/yanet/index.html”中引用了CSS文件“/www/yanet/css/main.css”,而在該CSS中引用了素材“/www/yanet/images/1.jpg”,則在CSS中對(duì)于該素材引用的相對(duì)路徑應(yīng)該是“../images/1.jpg”,而不能是“./images/1.jpg”或“images/1.jpg”。
簡(jiǎn)單的說(shuō)就是js中引用圖片是根據(jù)引用的頁(yè)面去定位圖片路徑的;css中引用圖片是根據(jù)css文件來(lái)定位圖片路徑的。所以最好在js中定義一個(gè)全局的圖片路徑,方便更改。