Vue.JS 使用 bootstrap 创建菜单

Vue.JS creating Menu with bootstrap

您好,我在使用旧的 Vue 2 项目时创建了一个菜单。

创建一个新的 Vue 2 项目(将很快迁移到 Vue3)我导入了我的菜单。 HTML + CSS。 由于某种原因,这不能正常工作。有些 CSS 正在工作,有些则没有,请查看下面的屏幕截图。谁能告诉我我错过/没看到什么....已经好几个小时了。

这两个项目之间的唯一区别是第一个项目没有使用路由。第二个有路由。

new project not working css

folder structure

代码如下:

<template>
  <div id="custom-bootstrap-menu" class="navbar navbar-default navbar-static-top" role="navigation">
    <div class="container-fluid">
      <div class="navbar-header">
        <a class="navbar-brand" href="#">Calvue</a>
        <button
          type="button"
          class="navbar-toggle"
          data-toggle="collapse"
          data-target=".navbar-menubuilder"
        >
          <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 class="collapse navbar-collapse navbar-menubuilder">
        <ul class="nav navbar-nav navbar-left">
          <li>
            <a href="/">Home</a>
          </li>
          <li>
            <a href="/products">Products</a>
          </li>
          <li>
            <a href="/about-us">About Us</a>
          </li>
        </ul>
      </div>
    </div>
  </div>
</template>

<style>
#custom-bootstrap-menu.navbar-default .navbar-brand {
  color: rgba(255, 98, 0);
}
#custom-bootstrap-menu.navbar-default {
  font-size: 14px;
  background-color: rgba(248, 248, 248, 1);
  border-bottom-width: 1px;
}
#custom-bootstrap-menu.navbar-default .navbar-nav > li > a {
  color: rgba(51, 51, 51, 1);
  background-color: rgba(248, 248, 248, 1);
}
#custom-bootstrap-menu.navbar-default .navbar-nav > li > a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav > li > a:focus {
  color: rgba(51, 51, 51, 1);
  background-color: rgba(194, 194, 194, 1);
  background: -webkit-linear-gradient(
    top,
    rgba(255, 98, 0) 0%,
    rgb(255, 255, 255) 100%
  );
  background: linear-gradient(
    to bottom,
    rgba(255, 98, 0) 0%,
    rgb(255, 255, 255) 100%
  );
}
#custom-bootstrap-menu.navbar-default .navbar-nav > .active > a,
#custom-bootstrap-menu.navbar-default .navbar-nav > .active > a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav > .active > a:focus {
  color: rgba(51, 51, 51, 1);
  background-color: rgba(194, 194, 194, 1);
  background: -webkit-linear-gradient(
    top,
    rgba(102, 102, 102, 1) 0%,
    rgba(194, 194, 194, 1) 100%
  );
  background: linear-gradient(
    to bottom,
    rgba(102, 102, 102, 1) 0%,
    rgba(194, 194, 194, 1) 100%
  );
}
#custom-bootstrap-menu.navbar-default .navbar-toggle {
  border-color: #c2c2c2;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle:hover,
#custom-bootstrap-menu.navbar-default .navbar-toggle:focus {
  background-color: #c2c2c2;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle .icon-bar {
  background-color: #c2c2c2;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle:hover .icon-bar,
#custom-bootstrap-menu.navbar-default .navbar-toggle:focus .icon-bar {
  background-color: #f8f8f8;
}
</style>

这里是 App.vue 代码

<template>
  <div id="app">

      <app-menu></app-menu>
    <router-view/>
  </div>
</template>

<script>
import menu from "./components/menu";
export default {
  name: 'App',
  components: {
    appMenu: menu,
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
}

</style>

加载 bootStrap 后,我需要导入

import BootstrapVue from "bootstrap-vue"
import "bootstrap/dist/css/bootstrap.min.css"
import "bootstrap-vue/dist/bootstrap-vue.css"

Vue.use(BootstrapVue)

变成 index.js 而不是 main.js