ThinkSAAS 默認(rèn)模板下,頂部導(dǎo)航欄都是隨頁面滾動的,不少朋友想修改成新浪微博那種固定在瀏覽器窗口頂部的樣子,其實很簡單。
第一步,固定頂部導(dǎo)航欄
其實只需要給導(dǎo)航欄的div增加一個position屬性,編輯/theme/sample-blue/base.css文件,在
.header{}
加入
position: fixed;z-index:999999;
position實現(xiàn)了固定,z-index 使導(dǎo)航欄不至于被其它頁面元素遮擋。這個步驟實現(xiàn)了基本需求,頂部導(dǎo)航固定在瀏覽器窗口頂部了。
第二步,細(xì)節(jié)調(diào)整
完成上一步后,你也許很快就發(fā)現(xiàn),app導(dǎo)航欄會被頂部導(dǎo)航遮擋,所以還需要再調(diào)整下方div的位置或者邊距,我的方法給appnav這個div增加padding,所以編輯base.css文件,在
.appnav{}
增加
padding:40px 0px 0px 0px;
這樣就解決了app導(dǎo)航欄就不會再被遮擋了,但是未登錄前的首頁會存在問題,因為未登錄前的首頁是沒有appnav這個div的,我的解決辦法是在header之后增加名appnva的空白div,編輯/app/home/html/index.html,在
{php doAction('home_index_css')}
之后添加
<div class="clear"></div>
第三步,注意ie6的兼容性
完成上一步后應(yīng)該沒什么大問題了,但是小編聽說ie6 根本不支持position:fixed,如果在意ie6用戶的話,那可能還有一些工作需要做。
IE6以上版本的IE瀏覽器及其他主流瀏覽器都是支持“position:fixed”的,但是IE6卻不支持它。幸好,IE6 支持“position:absolute” 和 Internet Explorer 的CSS表達(dá)式(expression)。所以,對于別的瀏覽器,我們可以用“position:fixed” 進(jìn)行固定定位,而對于IE6,我們可以用“position:absolute” 和CSS表達(dá)式,比如:
.header{
/* 對于其他瀏覽器 */
position:fixed;
top:0px;
/* 對于 IE6 */
_position: absolute;
_top: expression(documentElement.scrollTop + "px");
}
采用以上代碼,頂部的導(dǎo)航條,在IE6情況下,確實固定在頂部了,但是,拉動垂直滾動條時,這個導(dǎo)航條有跳動現(xiàn)象,解決此問題的方法是使用“background-attachment:fixed”為body添加一個背景圖片,強制頁面在重畫之前先處理CSS,而且這個圖片可以是虛擬的,比如“background:url(任意名稱)”。
body {background: url(about:blank); background-attachment: fixed;}
ie6 兼容代碼來自:http://jdm.jimdo.com/2012/01/24/topnav/,小編已經(jīng)好久沒有使用ie6了,所以這一部分沒有實測。
更多信息請查看IT技術(shù)專欄