如何删除Bootstrap 4中的下拉箭头?

Hon*_*iao 82 css twitter-bootstrap twitter-bootstrap-4

我正在使用Bootstrap 4.我试图删除下拉列表中的箭头.

我找到的Bootstrap 3 的答案不再适用.

jsfiddle在这里.

<div class="dropdown open">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenu1">
    <a class="dropdown-item" href="#">Action</a>
    <a class="dropdown-item" href="#">Another action</a>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

iko*_*iko 126

只需从元素中删除"dropdown-toggle"类.如果您具有data-toggle属性,则下拉列表仍然有效,如下所示

<button role="button" type="button" class="btn" data-toggle="dropdown"> 
    Dropdown Without Arrow
</button>
Run Code Online (Sandbox Code Playgroud)

重写.dropdown-toggle类样式会影响所有下拉菜单,您可能希望将箭头保留在其他按钮中,这就是为什么这看起来是最简单的解决方案.

  • 这对我来说不太合适.按钮的右侧不再是圆形的. (9认同)
  • 出于某种原因,其他解决方案对我不起作用.我正在运行Bootstrap 4.这是唯一有效的方法. (3认同)
  • 我对此进行了测试,效果很好!经过FF,Chrome,IE和Opera的测试-甚至在带有内置浏览器的移动android设备上也没有烦人的箭头-非常感谢先生!注意:请勿删除完整的“ dropdown-toggle”属性,而仅删除“ -toggle”属性,以免您使用dropdownmenu设置样式。因此,“下拉式切换”变为“下拉式”-希望对您有所帮助。 (2认同)

Cly*_*yff 121

使用css,你可以这样做:

.dropdown-toggle::after {
    display:none;
}
Run Code Online (Sandbox Code Playgroud)

  • 我还必须包含`!important`以使这个自定义CSS生效. (9认同)

ryb*_*111 25

我不建议任何现有的答案,因为:

  • .dropdown-toggle有更多的造型,而不仅仅是插入符号.从元素中删除类会导致样式问题.

  • 覆盖.dropdown-toggle没有意义.仅仅因为你不需要对某个特定元素进行插入,并不意味着你以后就不需要了.

  • ::after不包括下拉变体(某些用途::before).

.caret-off改为使用自定义类:

.caret-off::before {
    display: none;
}
.caret-off::after {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案,我只是为其他人添加一些额外的信息,比如这个类应该与“dropdown-toggle”一起添加。 (5认同)
  • 很好的答案。就我而言,我需要添加 `!important`。例如:`显示:无!重要;`。 (2认同)

Abd*_*rdi 9

删除"dropdown-toggle"类

  • 这就是iko在你之前7个月回答的问题. (7认同)
  • 这更像是评论 (3认同)
  • 这就是[公认的答案](/sf/answers/3120425871/)在这之前六个月所说的:“*只需从元素中删除“dropdown-toggle”类。*” (3认同)

小智 9

.dropdown-toggle::after { 
 content: none; 
 }
Run Code Online (Sandbox Code Playgroud)

你也可以尝试这个


小智 6

如果您有兴趣用另一个图标(例如 FontAwesome)替换箭头,您只需要删除 .dropdown-toggle 的伪元素上的边框

.dropdown-toggle::after { border: none; }
Run Code Online (Sandbox Code Playgroud)


ben*_*bwd 5

我在我的项目中使用了很长一段时间的公认答案,但刚刚偶然发现了 bootstrap 使用的一个变量

$enable-caret: true !default;
Run Code Online (Sandbox Code Playgroud)

如果您将此设置为 false,那么插入符号将被删除,而无需执行任何自定义代码。

我的项目是 Ruby/Rails,所以我使用的是bootstrap-rubygem。我通过在文件/文件之前custom-variables.scss上述变量设置为 false 来更改变量。application.scss bootstrap.scss