【问题标题】:Bootstrap - Buttons inside List Group ItemBootstrap - 列表组项内的按钮
【发布时间】:2016-07-14 12:09:20
【问题描述】:

我想创建一个 Web GUI,它分为两部分:一个不同操作的列表,实现为引导列表组和一个可以更改这些操作设置的详细信息区域。

单击该项目应显示该操作的详细信息/设置部分。

我还想要快速操作,它们是列表组项目右侧的小按钮。

这个概念在 Bootstrap 中有效,但我的 IDE 给了我关于嵌套按钮/链接的警告。最大的问题是,这不是有效的 HTML5,可能会导致错误的结果。我已经注意到的一个错误是,单击一个小按钮也会在 Firefox 中执行列表项操作。

这是一个 GUI 概念的示例,因为这很难用语言来描述:https://jsfiddle.net/drx7xhw7/

<div class="container">
  <div class="row">
    <div class="col-md-4">
      <h3>Actions</h3>
      <div class="list-group">
        <a class="list-group-item clearfix" onclick="alert('Action1 -> Details');">
          Action1
          <span class="pull-right">
            <button type="button" class="btn btn-xs btn-default" onclick="alert('Action1 -> Play');">
              <span class="glyphicon glyphicon-play" aria-hidden="true"></span>
            </button>
          </span>
        </a>
        <a class="list-group-item clearfix" onclick="alert('Action2 -> Details');">
          Action2
          <span class="pull-right">
            <button type="button" class="btn btn-xs btn-default" onclick="alert('Action2 -> Play');">
              <span class="glyphicon glyphicon-play" aria-hidden="true"></span>
            </button>
          </span>
        </a>
      </div>
    </div>

    <div class="col-md-8">
      <h3>Settings</h3>
    </div>
  </div>
</div>

有没有一种简单的方法来获得完全相同的 GUI 但使用有效的 HTML5?

【问题讨论】:

    标签: css html twitter-bootstrap


    【解决方案1】:

    @Kim:如果您仍想在有效的 HTML 标准中使用 Bootstrap 实现相同的功能,请使用以下代码。我将按钮更改为 span 并添加了相同的类btn btn-xs btn-default

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
    
    <div class="container">
        <div class="row">
            <div class="col-md-4">
                <h3>Actions</h3>
                <div class="list-group">
                    <a class="list-group-item clearfix" onclick="alert('Action1 -> Details');">
                        Action1
                        <span class="pull-right">
                            <span class="btn btn-xs btn-default" onclick="alert('Action1 -> Play'); event.stopPropagation();">
                                <span class="glyphicon glyphicon-play" aria-hidden="true"></span>
                            </span>
                        </span>
                    </a>
                    <a class="list-group-item clearfix" onclick="alert('Action2 -> Details');">
                        Action2
                        <span class="pull-right">
                            <span class="btn btn-xs btn-default" onclick="alert('Action2 -> Play'); event.stopPropagation();">
                                <span class="glyphicon glyphicon-play" aria-hidden="true"></span>
                            </span>
                        </span>
                    </a>
                </div>
            </div>
    
            <div class="col-md-8">
                <h3>Settings</h3>
            </div>
        </div>
    </div>

    【讨论】:

    • 如何将单击按钮与单击选项卡分开?,我需要在单击按钮时仅触发播放警报
    • @CampDev 我更新了代码,只需要将 event.stopPropagation() 添加到 children 元素中,这样事件就不会传播给 parent。
    • 这应该是答案。
    【解决方案2】:

    我认为这接近使用 flex 的标准引导 4 列表组

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <ul class="list-group cProductsList"> 
                    <li class="list-group-item d-flex"><p class="p-0 m-0 flex-grow-1">First item</p> 
                       <button class="btn-success">EDIT</button>  <button class="btn-danger">DELETE</button>
                    </li>
                   <li class="list-group-item d-flex"><p class="p-0 m-0 flex-grow-1">Second item</p>  
                       <button class="btn-success">EDIT</button>  <button class="btn-danger">DELETE</button>
                    </li> 
    </ul>

    【讨论】:

    • .justify-content-between&lt;li&gt; 上不需要,因为您将.flex-grow-1 应用于&lt;p&gt;
    【解决方案3】:
        <ul class="list-group mb-5">
            <a class="list-group-item list-group-item-action" href="#">My List Item One<button class="btn-success btn-sm" style="float:right">EDIT</button>&nbsp&nbsp<button class="btn-danger btn-sm mr-2" style="float:right">DELETE</button></a>
    
    
    
    
        </ul>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多