Переопределить Bootstrap CSS в Yii2

У меня есть NavBar и я хочу переопределить все классы, которые Yii накладывает на этот виджет. После поиска в гостинице Google и чтения документов я обнаружил, что этот код:

 Yii::$container->set('yii\bootstrap\NavBar', [ 'containerOptions' => [ 'class' => '' ] ]); NavBar::begin([ 'containerOptions' => [ 'class' => 'no-horizontal-padding navbar-content' ] ]); 

должен исключать (удалить, фактически) все классы в container моего NavBar , но это не так. Я продолжаю видеть свои 2 класса и классы NavBar по умолчанию.

Как я могу удалить эти классы и сохранить только мои?

Пожалуйста, воздержитесь от любых хакерских решений, таких как удаление классов с помощью 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> 

Если вы хотите удалить collapse и navbar-collapse из коробки, используя параметры виджета, вы не сможете.

Как вы можете видеть в коде для компонента NavBar в Yii2 , эти классы жестко закодированы.

Ваши варианты:

  • Измените файл Navbar.php и удалите эти классы (не рекомендуется).
  • Напишите непосредственно в HTML свой навигатор (не идеальный, но допустимый обходной путь).
  • Создайте свой собственный компонент Navbar для Yii2 (рекомендуется, поскольку вы можете скопировать файл Navbar.php, удалить эти классы и изменить пространство имен).

Вот простой учебник для создания ваших компонентов и их использования.