yii2 Nav::widget() 和 Menu::widget()


Nav::widget http://www.yiiframework.com/doc-2.0/yii-bootstrap-nav.html

Menu::widget()  http://www.yiiframework.com/doc-2.0/yii-widgets-menu.html#$items-detail

這兩個widget都是顯示菜單的,或者說可以這么干,使用之中返現有個很明顯的不同:

Nav 的子菜單或者子項目默認使用的ul樣式是'dropdown-menu',Menu 默認只用一個display:block。Nav的UL標簽的樣式要該需要改api才會變,目前我還不知道怎么不改api就可以修改UL標簽的class,可以添加,但是原來的dropdown-menu 是在的。

Nav 給子項目添加樣式方法

 1                   [
 2                                     'label' => 'xx管理',
 3                                     'url' => ['url0'],
 4                                     'options'=>['class'=>'accordion'],
 5                                     'items' => [
 6                                         [
 7                                             'label' => '管理xx', 'url' => ['ulr1'],
 8                                         ],
 9                                         [
10                                             'label' => '添加xx', 'url' => ['url2']
11                                         ],
12                                     ],
13                                 ],

在11行后添加   

'dropDownOptions'=>['class'=>'nav nav-pills nav-stacked'],

可以修改子items的ul樣式,如圖,dropdown-menu還是在的

 

Menu::widget有個 submenuTemplate 屬性,可以通過修改該屬性來自定義子項目UL標簽的樣式

1 echo Menu::widget([
2                                 'options' => ['class' => 'nav nav-pills nav-stacked main-menu'],
3                                 'items' => $menuItems,
4                                 'submenuTemplate' => "\n<ul class='nav nav-pills nav-stacked' role='menu'>\n{items}\n</ul>\n",
5                             ]);

Menu::widget是一定要有'label'屬性的,不然是會報錯的,但是Nav就可以直接在兩個子項目間寫li標簽之類的,看官方文檔。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM