天天看點

DotNetNuke(DNN)皮膚制作--如何修改DNN中衆多的CSS檔案

DotNetNuke使用了好幾個CSS檔案,在什麼時候,如何針對不同的需求修改CSS檔案讓人覺得很難把握,其實隻要搞明白了DNN加載各個CSS檔案的順序,再遵循CSS檔案生效的優先級就能準确的把握什麼時候要修改哪個CSS檔案。

首先我們來看看DNN加載CSS檔案的順序:在任何一個頁面中檢視HMTL源檔案,在<head>部份可以看到這樣的代碼。很明顯:首先是default.css,然後是skin.css,然後是portal.css(這裡沒有讨論Container的CSS,原理是一樣的)

<style id="StylePlaceholder"></style>

<link id="_Portals__default_" rel="stylesheet" type="text/css" href="/Portals/_default/default.css" />

<link id="_Portals__default__skins_dnn_blue_" rel="stylesheet" type="text/css" href="/Portals/_default//skins/dnn-blue/skin.css" />

<link id="_Portals__default_Containers_Puresino_" rel="stylesheet" type="text/css" href="/Portals/_default/Containers/Puresino/container.css" />

<link id="_Portals__default_Containers_Puresino_Plain_css" rel="stylesheet" type="text/css" href="/Portals/_default/Containers/Puresino/Plain.css" />

<link id="_Portals_0_" rel="stylesheet" type="text/css" href="/Portals/0/portal.css" />

之後,我們對照一下這幾個CSS在DNN目錄中的位置(綠色塊表示目錄),這樣一來我們就能明白這幾個CSS是怎麼工作的。

對于任何一個頁面,DNN首先加載對全局起作用的“default.css”,之後,根據你選擇的皮膚,加載皮膚所帶的"skin.css",最後,根據你打開的“站點”加載“站點”目錄下的"portal.css"。後一個CSS中的定義都會覆寫前一個CSS中的定義。

其實每一個皮膚的ascx檔案還可以附加一個同名的CSS檔案,如果DNN檢查到有這樣的檔案,也會加載。因為我用dnn-blue皮膚做的示範,是以沒有這一個CSS。大家可以找個其它皮膚試試,看看DNN把這個CSS檔案放在第幾位加載。^_^

DotNetNuke(DNN)皮膚制作--如何修改DNN中衆多的CSS檔案

繼續閱讀