首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在Bulma选项卡中使用Bulma下拉菜单吗?

我可以在Bulma选项卡中使用Bulma下拉菜单吗?
EN

Stack Overflow用户
提问于 2018-08-17 15:49:06
回答 2查看 871关注 0票数 0

我用的是Nuxt.js和Bulma。我正在使用Bulma标签(https://bulma.io/documentation/components/tabs/)进行导航。

我想插入Bulma dropdown(https://bulma.io/documentation/components/dropdown/#hoverable-or-toggable)。但是它不能在Tabs中间工作。

我知道谁想使用Bulma dropdown需要使用javascript,所以我使用它。但它不起作用。

我怎么才能修复它?

EN

回答 2

Stack Overflow用户

发布于 2019-01-26 12:09:05

要在Bulma的选项卡中使用下拉菜单,您需要调整tabs div中的溢出CSS。我不确定为什么我必须设置overflow-x和overflow-y来让它正常工作,但我做到了。

当下拉菜单处于活动状态时:

代码语言:javascript
复制
overflow-x : visible;
overflow-y : visible;

当下拉菜单未激活时,重置为其默认值:

代码语言:javascript
复制
overflow-y : hidden;
overflow-x : auto;
票数 1
EN

Stack Overflow用户

发布于 2020-03-26 00:49:38

是的,你可以只需要一点点的摆弄

主要有两个问题:

问题1

由于bulma选项卡容器是flexbox,并且选项卡列表是此flexbox的子项,因此下拉列表将不可见,因为它溢出出flexbox容器。

如果您添加overflow-y:对选项卡容器div可见,将会发生滚动,这不是我们需要的行为

解决方案

为了解决这个问题,要在选项卡选择上显示的内容也应该作为第二个子项出现在选项卡容器中,以便选项卡列表中的下拉按钮/链接在单击/悬停时有空间显示下拉。

代码语言:javascript
复制
#tab-container {
 flex-direction: column;
 height: 500px;
 width: 100%
}

#content-child {
 flex-grow: 1;
 width: 100%
}

#list-child {
 flex-grow: 0; //should be set to 0 as it will take up vertical space (it is set to 1 in bulma)
 width: 100%;
}

问题2

当在bulma选项卡中使用dropdown时,dropdown中的锚定标签由tabs.This中为锚定标签指定的样式是主要问题之一。

这样显示的下拉列表将有非常不同的样式。

解决方案

div Bulma下拉菜单还允许我们在中插入

我们可以利用这一点来克服问题1。

只需在dropdown中为div添加此css,以使其行为类似于链接。

代码语言:javascript
复制
div.dropdown-item.is-active {
  background-color: rgba(55, 122, 195, 0.95);
  color: #fff;
}

div.dropdown-item {
  padding-right: 3rem;
  text-align: left;
  white-space: nowrap;
  width: 100%;
  cursor: pointer;
  text-decoration: none;
}

div.dropdown-item:hover {
  background-color: whitesmoke;
  color: #0a0a0a;
}

完整的解决方案可以在下面看到,您可以根据需要根据您的用例进行更改。

代码语言:javascript
复制
div.dropdown-item.is-active {
  background-color: rgba(55, 122, 195, 0.95);
  color: #fff;
}

div.dropdown-item {
  padding-right: 3rem;
  text-align: left;
  white-space: nowrap;
  width: 100%;
  cursor: pointer;
  text-decoration: none;
}

div.dropdown-item:hover {
  background-color: whitesmoke;
  color: #0a0a0a;
}

#content-child {
  flex-grow: 1;
  width: 100%
}

#tab-container {
  flex-direction: column;
  height: 500px;
  width: 100%
}

#list-child {
  flex-grow: 0;
  width: 100%;
}
代码语言:javascript
复制
<link href="https://cdn.jsdelivr.net/npm/bulma@0.8.1/css/bulma.min.css" rel="stylesheet" />


<div class="tabs is-boxed" id="tab-container">
  <ul id="list-child">
    <li><a>Pictures</a></li>
    <li><a>Music</a></li>
    <li><a>Videos</a></li>
    <li><a>Documents</a></li>
    <li class="dropdown is-active">
      <div class="dropdown-trigger">
        <a class="has-text-right custom-padding" aria-haspopup="true" aria-controls="dropdown-menu">
            Drop Down
          </a>
      </div>

      <div class="dropdown-menu" id="dropdown-menu" role="menu">
        <div class="dropdown-content">
          <div class="dropdown-item">Dropdown item</div>
          <div class="  dropdown-item">Other dropdown item</div>
          <div class="  dropdown-item is-active">Active dropdown item</div>
          <div class="  dropdown-item">Other dropdown item</div>
          <hr class="dropdown-divider" />
          <div class="  dropdown-item">With a divider</div>
        </div>
      </div>
    </li>
  </ul>
  <div id="content-child">
    content
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51890672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档