統(tǒng)一設置MUI的導航欄樣式(重寫MUI控件)

MUI以iOS 7為基礎,補充了部分Android特有控件。其實這些控件就是一組CSS樣式+JS交互實現(xiàn)的,它們分別被封裝在mui.css和mui.js文件中。學過CSS的都知道,可以利用CSS樣式的優(yōu)先級重寫已存在的樣式。下面就用這種方法統(tǒng)一設置項目中的MUI導航欄。
原創(chuàng)文章,歡迎轉(zhuǎn)載.轉(zhuǎn)載請注明出處: http://www.itdecent.cn/p/7e27185debac

MUI的導航欄:

為頁面添加MUI導航欄只需要在HTML的body中加入如下代碼:

<header class="mui-bar mui-bar-nav">
    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
    <h1 class="mui-title">標題</h1>
</header>

界面效果如下:


原始MUI導航欄

重寫MUI導航欄:

下面將導航欄的背景顏色改為淺藍色,底部陰影改為一條深灰色的線,返回按鈕和標題顏色改為白色并調(diào)整大小和字體粗細程度。

首先以更改背景顏色為例:

將當前頁面用Google瀏覽器打開,點擊鼠標右鍵選中檢查會出現(xiàn)如下界面:


谷歌瀏覽器調(diào)試界面

選中導航欄標簽就可以在右下角看到關于導航欄的樣式。這里.mui-bar是一個類選擇器,其中background-color屬性正是導航欄的背景顏色(可以臨時修改一下對應的顏色值,觀察一下左邊導航欄視圖的變化,就可以確定這個顏色值是不是導航欄的背景顏色)。
所以只需要在引入mui.min.css樣式之后,加入下面的樣式:

/*導航欄背景顏色*/
.mui-bar {
    background-color: #20BBEF;
}

接下來可以參考更改導航欄背景顏色的方式修改其他樣式:

如何確定要修改的樣式,可以參考上面的方法,這里直接貼出代碼。

修改返回按鈕的顏色和大?。?/h4>
/*返回按鈕圖標*/
.mui-bar .mui-icon {
    font-size: 30px;
    padding-top: 7px;
    padding-bottom: 13px;
    color: #FFFFFF;
}

修改標題字體顏色和粗細程度:

/*標題*/
.mui-bar .mui-title {
    font-weight: 400;
    color: #FFFFFF;
}

修改導航欄底部陰影:

/*導航欄底部陰影*/
.mui-bar-nav {
    box-shadow: 0px 1px 0px 0px #999999;
}

統(tǒng)一封裝到一個css文件中

  • 可以將上面修改導航欄樣式的代碼統(tǒng)一放到一個css文件中,只需要在每個頁面中引入mui.min.css文件之后引入這個文件即可(當然也可以把這些代碼追加到mui.min.css文件末尾,這是因為我們重寫的樣式和MUI的樣式優(yōu)先權重相同,將我們重寫的樣式放在MUI樣式之后就會有更高的優(yōu)先級)。

  • 也可以在重寫的樣式前加上header標簽來增加權重,這樣就不需要關心文件引入的先后順序啦。以修改背景顏色為例如下:

    /*導航欄背景顏色*/
    header.mui-bar {
        background-color: #20BBEF;
    }
    

    注意:這里是交集選擇器,header和.mui-bar之間沒有空格!

重寫后的效果:

重寫后導航欄的界面效果如下:


重寫后的MUI導航欄

這里的狀態(tài)欄背景顏色依然是白色,字體顏色依然是黑色。如果想修改可以在App首次進入的頁面中添加如下js代碼:

<script type="text/javascript" charset="utf-8">
    mui.plusReady(function(){
        plus.navigator.setStatusBarStyle("light");
        plus.navigator.setStatusBarBackground("#20BBEF");
    });
</script>

或者使用另一種方式:設置沉浸式狀態(tài)欄。這種方式比較麻煩,不推薦使用,除非你用到了iOS原生側滑返回功能,可以參考下面這兩篇文章(請按順序看):
MUI-解決iOS原生側滑返回時狀態(tài)欄出現(xiàn)白色條的問題(設置沉浸式狀態(tài)欄)
MUI-設置沉浸式狀態(tài)欄后MUI導航欄的高度問題
解決完狀態(tài)欄后的效果如下:

解決完狀態(tài)欄問題的MUI導航欄

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 上篇文章實現(xiàn)了沉浸式狀態(tài)欄,如果不使用MUI的導航欄可以不用關心這個問題。由于我們的項目一開始被大量使用了MUI的...
    w_wh閱讀 10,353評論 10 11
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,040評論 25 709
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,204評論 3 119
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,994評論 2 59
  • 作:流尋常 遮太陽的屋檐下 遇見淅瀝碎淚雨下 枯葉掉落在那樹杈 在每天忘情時看晚霞 他說她會怕 她 卻從來不說話 ...
    虛構我的生活閱讀 228評論 0 1

友情鏈接更多精彩內(nèi)容