在Yii2中覆盖Bootstrap CSS

ale*_*nst 2 html css php twitter-bootstrap yii2

我有一个NavBar,我想覆盖Yii放在该小部件上的所有类.在搜索谷歌并阅读文档后,我发现这段代码:

Yii::$container->set('yii\bootstrap\NavBar', [
    'containerOptions' => [
        'class' => ''
    ]
]);

NavBar::begin([
    'containerOptions' => [
        'class' => 'no-horizontal-padding navbar-content'
    ]
]);
Run Code Online (Sandbox Code Playgroud)

应该覆盖(删除,实际上)container我的所有类NavBar,但事实并非如此.我一直在看我的2个类和默认NavBar类.

我怎样才能删除那些课程而只保留我的课程?

请避免任何hacky解决方案,如在客户端删除JS类.我正在寻找一种正确的方法.

编辑:

我正在按要求添加生成的HTML:

<nav id="w0" class="navbar-inverse navbar" role="navigation">
    <div class="container-fluid no-horizontal-padding">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w0-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div id="w0-collapse" class="no-horizontal-padding navbar-content collapse navbar-collapse">
        </div>
    </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

XzA*_*eRo 5

如果要删除collapsenavbar-collapse开箱即用,使用窗口小部件参数,则不能.

正如您在Yii2中NavBar组件的代码中所看到的那样,那些类在那里是硬编码的.

你的选择:

  • 修改Navbar.php文件并删除此类(不推荐).
  • 直接在HTML中编写导航栏(不理想,但是有效的解决方法).
  • 为Yii2创建自己的自定义Navbar组件(推荐,因为您可以复制Navbar.php文件,删除这些类并更改命名空间).

这是一个用于创建组件并使用它们的简单教程.