Bootstrap拆分按钮下拉列表使用默认样式没有正确设置样式?

时间:2016-05-07 22:10:29

标签: html css twitter-bootstrap twitter-bootstrap-3

引导程序CSS中是否存在错误?我试图使用默认的bootstrap下拉菜单和分割按钮,但是侧面的向下箭头按钮比实际菜单短得多。

我认为这是我的代码中的一些重叠样式问题,但我设法使用JSFiddle中的boostrap代码重现了这一点。

<div class="btn-group">
  <button type="button" class="btn btn-danger">Action</button>
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span class="sr-only">Toggle Dropdown</span>
  </button>
  <div class="dropdown-menu">
    <a class="dropdown-item" href="#">Action</a>
    <a class="dropdown-item" href="#">Another action</a>
    <a class="dropdown-item" href="#">Something else here</a>
    <div class="dropdown-divider"></div>
    <a class="dropdown-item" href="#">Separated link</a>
  </div>
</div>

2 个答案:

答案 0 :(得分:5)

下拉列表的默认结构使用无序列表(UL),您也缺少caret类。

请参阅docs

<ul class="dropdown-menu">
    <li><a href="#">Action</a></li>
</ul>

工作示例:

body {
  padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<!-- Split button -->
<div class="btn-group">
  <button type="button" class="btn btn-danger">Action</button>
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span class="caret"></span>
    <span class="sr-only">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    <li><a href="#">Action</a>
    </li>
    <li><a href="#">Another action</a>
    </li>
    <li><a href="#">Something else here</a>
    </li>
    <li role="separator" class="divider"></li>
    <li><a href="#">Separated link</a>
    </li>
  </ul>
</div>

答案 1 :(得分:0)

发生这种情况是因为你的span标签只有类sr-only而且这个类在booststrap.css中有固定的宽度和高度1px

.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 border: 0;
 }