8

我正在尝试向使用 Bootstrap-Vue 的下拉菜单组件添加一些自定义样式。我在这里使用文档。

这是我的模板:

<div class="container">
  <b-dropdown id="dropdownMenuButton" text="Dropdown Button" no-caret class="custom-dropdown">
    <b-dropdown-item>First Action</b-dropdown-item>
    <b-dropdown-item>Second Action</b-dropdown-item>
    <b-dropdown-item>Third Action</b-dropdown-item>
    <b-dropdown-divider></b-dropdown-divider>
    <b-dropdown-item>Something else here...</b-dropdown-item>
    <b-dropdown-item disabled>Disabled action</b-dropdown-item>
  </b-dropdown>
</div>

我发现我可以设置#dropdownMenuButton 的样式,但是当下拉菜单在浏览器中呈现时,它会在#dropdownMenuButton 内部创建一个元素,而我无法设置它的样式。我试过这样做:

<style scoped>
  #dropdownMenuButton > button {
    width: 100%;
  }

  #dropdownMenuButton__BV_toggle_ {
    width: 100%;
  }
</style>

但没有运气。仅供参考,创建的按钮的 id 是dropdownMenuButton__BV_toggle_.

4

2 回答 2

15

这是因为您将样式设置为组件的范围,并且由于 bootstrap vue 下拉菜单是另一个组件,您将无法使用范围样式执行此操作。

https://vue-loader.vuejs.org/guide/scoped-css.html

尝试像这样删除作用域属性。

<style>
  #dropdownMenuButton > button {
    width: 100%;
  }

  #dropdownMenuButton__BV_toggle_ {
    width: 100%;
  }
</style>
于 2018-06-08T14:52:59.803 回答
12

/deep/如果您不想弄乱全局样式,也可以使用关键字仅影响子组件:

<style scoped>
  /deep/ #dropdownMenuButton > button {
    width: 100%;
  }

  /deep/ #dropdownMenuButton__BV_toggle_ {
    width: 100%;
  }
</style>
于 2019-08-12T12:27:22.640 回答