Bootstrap<基础十三> 按钮组

本文介绍了Bootstrap框架中的按钮组功能,包括基本按钮组、按钮工具栏、不同尺寸的按钮组、嵌套按钮组以及垂直按钮组的实现方法,并提供了丰富的代码示例。
原文: Bootstrap<基础十三> 按钮组

按钮组允许多个按钮被堆叠在同一行上。当你想要把按钮对齐在一起时,这就显得非常有用。你可以通过Bootstrap 按钮(Button) 插件 添加可选的 JavaScript 单选框和复选框样式行为。

下面的表格总结了 Bootstrap 提供的使用按钮组的一些重要的 class:

Class描述代码示例
.btn-group该 class 用于形成基本的按钮组。在 .btn-group 中放置一系列带有 class .btn 的按钮。
<div class="btn-group">
  <button type="button" class="btn btn-default">Button1</button>
   <button type="button" class="btn btn-default">Button2</button>
</div>
.btn-toolbar该 class 有助于把几组 <div class="btn-group"> 结合到一个 <div class="btn-toolbar"> 中,一般获得更复杂的组件。
<div class="btn-toolbar" role="toolbar">
  <div class="btn-group">...</div>
  <div class="btn-group">...</div>
</div>
.btn-group-lg, .btn-group-sm, .btn-group-xs这些 class 可应用到整个按钮组的大小调整,而不需要对每个按钮进行大小调整。
<div class="btn-group btn-group-lg">...</div>
<div class="btn-group btn-group-sm">...</div>
<div class="btn-group btn-group-xs">...</div>
.btn-group-vertical该 class 让一组按钮垂直堆叠显示,而不是水平堆叠显示。
<div class="btn-group-vertical">
  ...
</div>

基本的按钮组

下面的实例演示了上面表格中讨论到的 class .btn-group 的使用:

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 基本的按钮组</title>
   <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
   <script src="/scripts/jquery.min.js"></script>
   <script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>

<div class="btn-group">
  <button type="button" class="btn btn-default">按钮 1</button>
  <button type="button" class="btn btn-default">按钮 2</button>
  <button type="button" class="btn btn-default">按钮 3</button>
</div>

</body>
</html>

结果如下所示:

基本的按钮组

按钮工具栏

下面的实例演示了上面表格中讨论到的 class .btn-toolbar 的使用:

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 按钮工具栏</title>
   <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
   <script src="/scripts/jquery.min.js"></script>
   <script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>

<div class="btn-toolbar" role="toolbar">
  <div class="btn-group">
  <button type="button" class="btn btn-default">按钮 1</button>
  <button type="button" class="btn btn-default">按钮 2</button>
  <button type="button" class="btn btn-default">按钮 3</button>
 </div>
  <div class="btn-group">
  <button type="button" class="btn btn-default">按钮 4</button>
  <button type="button" class="btn btn-default">按钮 5</button>
  <button type="button" class="btn btn-default">按钮 6</button>
  </div>
  <div class="btn-group">
  <button type="button" class="btn btn-default">按钮 7</button>
  <button type="button" class="btn btn-default">按钮 8</button>
  <button type="button" class="btn btn-default">按钮 9</button>
  </div>
</div>

</body>
</html>

结果如下所示:

按钮工具栏

按钮的大小

下面的实例演示了上面表格中讨论到的 class .btn-group-* 的使用:

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 按钮组的大小</title>
   <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
   <script src="/scripts/jquery.min.js"></script>
   <script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>

<div class="btn-group btn-group-lg">
  <button type="button" class="btn btn-default">按钮 1</button>
  <button type="button" class="btn btn-default">按钮 2</button>
  <button type="button" class="btn btn-default">按钮 3</button>
 </div>
  <div class="btn-group btn-group-sm">
  <button type="button" class="btn btn-default">按钮 4</button>
  <button type="button" class="btn btn-default">按钮 5</button>
  <button type="button" class="btn btn-default">按钮 6</button>
</div>
  <div class="btn-group btn-group-xs">
  <button type="button" class="btn btn-default">按钮 7</button>
  <button type="button" class="btn btn-default">按钮 8</button>
  <button type="button" class="btn btn-default">按钮 9</button>
</div>

</body>
</html>

结果如下所示:

按钮组的大小

嵌套

您可以在一个按钮组内嵌套另一个按钮组,即,在一个 .btn-group 内嵌套另一个 .btn-group 。当您向让下拉菜单与一系列按钮组合使用时,就会用到这个。

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 嵌套的按钮组</title>
   <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
   <script src="/scripts/jquery.min.js"></script>
   <script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>

<div class="btn-group">
  <button type="button" class="btn btn-default">按钮 1</button>
  <button type="button" class="btn btn-default">按钮 2</button>

  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" 
      data-toggle="dropdown">
      下列
      <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li><a href="#">下拉链接 1</a></li>
      <li><a href="#">下拉链接 2</a></li>
    </ul>
  </div>
</div>

</body>
</html>

结果如下所示:

嵌套的按钮组

垂直的按钮组

下面的实例演示了上面表格中讨论到的 class .btn-group-vertical 的使用:

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 垂直的按钮组</title>
   <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
   <script src="/scripts/jquery.min.js"></script>
   <script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>

<div class="btn-group-vertical">
  <button type="button" class="btn btn-default">按钮 1</button>
  <button type="button" class="btn btn-default">按钮 2</button>

  <div class="btn-group-vertical">
    <button type="button" class="btn btn-default dropdown-toggle" 
      data-toggle="dropdown">
      下拉
      <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li><a href="#">下拉链接 1</a></li>
      <li><a href="#">下拉链接 2</a></li>
    </ul>
  </div>
</div>

</body>
</html>

结果如下所示:

垂直的按钮组
 
{% extends 'layout.html' %} {% block title %}Profile{% endblock %} {% block content %} <title>设备管理界面</title> <style> /* ===== 基础样式 ===== */ body { font-family: "Microsoft YaHei", sans-serif; font-size: 14px; font-weight: bold; background-color: #f5f7fa; margin: 0; padding: 0; color: #333; line-height: 1.5; } /* ===== 容器布局 ===== */ .container { display: flex; min-height: 100vh; } .main-panel { flex: 1; display: flex; flex-direction: column; border: 1px solid #dcdfe6; border-radius: 4px; background-color: #fff; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); margin: 10px; } /* ===== 标签页样式 ===== */ .tabs { display: flex; background-color: #f5f7fa; border-bottom: 1px solid #dcdfe6; } .tab { padding: 12px 20px; cursor: pointer; border: none; background-color: transparent; color: #606266; font-size: 14px; font-weight: bold; transition: all 0.3s; position: relative; } .tab:hover { color: #409eff; } .tab.active { color: #409eff; background-color: #fff; border-bottom: 2px solid #409eff; } .tab a { text-decoration: none; color: inherit; display: flex; align-items: center; gap: 5px; } /* ===== 分割面板 ===== */ .split-panel { display: flex; flex: 1; } .split-left { width: 100%; padding: 15px; } /* ===== 内容区域 ===== */ .tab-content { flex: 1; overflow-y: auto; } /* ===== 部分样式 ===== */ .section { margin-bottom: 20px; padding: 15px; border: 1px solid #ebeef5; border-radius: 4px; background-color: #fafafa; } .section-title { font-weight: bold; margin-bottom: 10px; color: #303133; font-size: 15px; padding-bottom: 8px; border-bottom: 1px solid #ebeef5; } /* ===== 表单行样式 ===== */ .form-row { display: flex; align-items: center; font-weight: 900; margin-bottom: 10px; flex-wrap: wrap; gap: 10px; } .form-row label { min-width: 120px; color: #606266; font-size: 14px; } /* ===== 输入控件样式 ===== */ input, select { padding: 8px 12px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 14px; font-weight: bold; color: #606266; transition: border-color 0.3s; background-color: #fff; } input:focus, select:focus { outline: none; border-color: #409eff; box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2); } input:disabled { background-color: #f5f7fa; color: #c0c4cc; cursor: not-allowed; } /* ===== 按钮样式 ===== */ button { padding: 8px 15px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 14px; font-weight: bold; cursor: pointer; transition: all 0.3s; background-color: #fff; color: #606266; } button:hover { color: #409eff; border-color: #c6e2ff; background-color: #ecf5ff; } button:active { transform: scale(0.98); } /* ===== 按钮组样式 ===== */ .button-group { display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px; } .button-group1 { display: flex; justify-content: flex-start; gap: 10px; margin-top: 10px; } /* ===== 控制面板样式 ===== */ .control-panel { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 15px; } .control-item { display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid #ebeef5; border-radius: 4px; background-color: #fff; } .control-item label { display: flex; align-items: center; gap: 5px; margin: 0; white-space: nowrap; } /* ===== 底部信息样式 ===== */ .bottom-info { font-size: 12px; font-weight: bold; color: #909399; margin-top: 10px; padding: 10px 15px; background-color: #f5f7fa; border-top: 1px solid #ebeef5; } /* ===== 响应式设计 ===== */ @media (max-width: 1200px) { .form-row { flex-direction: column; align-items: flex-start; } .form-row label { min-width: auto; margin-bottom: 5px; } .control-panel { flex-direction: column; } } @media (max-width: 768px) { .container { flex-direction: column; } .tabs { flex-wrap: wrap; } .tab { flex: 1; min-width: 120px; text-align: center; } .split-panel { flex-direction: column; } .split-left { width: 100%; } } /* ===== 特定布局调整 ===== */ .form-row > div { display: flex; flex-direction: column; margin-right: 20px; margin-bottom: 10px; } .form-row > div .section-title { margin-bottom: 8px; } .form-row > div .form-row { margin-bottom: 8px; } </style> <body> <div class="container"> <div class="main-panel"> <div class="tabs"> <div class="tab active"><a href="{{ url_for('home') }}"><i class="fas fa-sign-out-alt"></i>基本参数</a></div> <div class="tab"><a href="{{ url_for('act') }}"><i class="fas fa-sign-out-alt"></i>无线参数</a></div> <div class="tab"><a href="{{ url_for('scan') }}"><i class="fas fa-sign-out-alt"></i>扫频结果/参数</a></div> </div> <div class="split-panel"> <div class="split-left"> <div class="tab-content"> <div class="section"> <div class="section-title">状态</div> <div class="button-group"> <button>查询</button> <button>查询全部</button> </div> </div> <div class="section"> <div class="form-row"> <label>版本号:</label> <input type="text" style="width: 245px;"> <button>查询</button> <label>RX衰减:</label> <input type="text"> <button>查询</button> <button>设置</button> </div> <div class="form-row"> <label>4G干扰扫描10MHz时间:</label> <input type="text"> <label>4G干扰扫描10MHz时间:</label> <input type="text"> <button>查询</button> <button>设置</button> </div> </div> <div class="section"> <div class="section-title">相位差查询设置</div> <div class="form-row"> <label>主频段:</label> <input type="text" style="background-color:#eaeaea;width: 750px;"> </div> <div class="form-row"> <label>band34与主同步频段的相位差:</label> <input type="text"> <label>band39与主同步频段的相位差:</label> <input type="text"> </div> <div class="form-row"> <label>band34与主同步频段的相位差:</label> <input type="text"> <label>band39与主同步频段的相位差:</label> <input type="text"> </div> <div class="form-row"> <label>band34与主同步频段的相位差:</label> <input type="text"> <label>band39与主同步频段的相位差:</label> <input type="text"> </div> <div class="form-row"> <label>band34与主同步频段的相位差:</label> <input type="text"> <label>band39与主同步频段的相位差:</label> <input type="text"> </div> <div class="form-row"> <label>band34与主同步频段的相位差:</label> <input type="text"> <label>band39与主同步频段的相位差:</label> <input type="text"> </div> <div class="form-row"> <label>band41与主同步频段的相位差:</label> <input type="text"> <label>band78与主同步频段的相位差:</label> <input type="text"> <button>查询</button> </div> <div class="form-row"> <label>band40与主同步频段的相位差:</label> <input type="text"> <label>band79与主同步频段的相位差:</label> <input type="text"> <button>设置</button> </div> </div> <div class="section"> <div class="section-title">设置同步偏移频点</div> <div class="form-row"> <label>Band:</label> <select> <option></option> <option>34</option> <option>39</option> <option>40</option> <option>41</option> <option>78</option> <option>79</option> </select> <label>FRE:</label> <input type="text"> <label>PCI:</label> <input type="text"> <label>TYPE:</label> <select> <option></option> <option>5Gtdd</option> <option>4Gtdd</option> </select> <button>查询</button> <button>设置</button> </div> <div class="form-row"> <label>同步:</label> <select> <option></option> <option>同步成功</option> <option>同步失败</option> </select> <button>查询</button> <label style="justify-content: flex-end;">偷帧失败:</label> <input type="text"> <button>查询</button> </div> </div> <div class="section"> <div class="section-title">其他设置</div> <div class="button-group1"> <button>恢复出厂设置并且复位</button> <button>数据恢复出厂设置并且复位</button> <button>复位</button> <button>中心频点扫频结果自动设置</button> </div> </div> <div class="section"> <div class="form-row"> <div> <div class="section-title">设置单板工作模式</div> <div class="form-row"> <label>当前工作模式:</label> <select> <option></option> <option>全频段屏蔽主板模式</option> <option>全频段屏蔽从板模式</option> <option>纯5g屏蔽模式</option> <option>用户自定义模式</option> <option></option> <option></option> </select> </div> <div class="form-row"> <button>查</button> <button>设置</button> </div> </div> <div> <div class="section-title">设置单板扫频模式</div> <div class="form-row"> <label>当前扫频模式:</label> <select> <option></option> <option>双通道全频段扫频</option> <option>双通道默认频点扫频</option> </select> </div> <div class="form-row"> <button>查</button> <button>设置</button> </div> </div> <div> <div class="section-title">设置单板频点配置模式</div> <div class="form-row"> <label>当前频点配置模式:</label> <select> <option></option> <option>根据扫频结果自动配置</option> <option>用户手动配置</option> <option></option> <option></option> </select> </div> <div class="form-row"> <button>查</button> <button>设置</button> </div> </div> </div> </div> <div class="section"> <div class="form-row"> <div> <div class="section-title">设置单板同步模式</div> <div class="form-row"> <label>当前单板同步模式:</label> <select> <option></option> <option>公网同步</option> <option>gps同步</option> </select> </div> <div class="form-row"> <button>查询</button> <button>设置</button> </div> </div> <div> <div class="section-title">查询配置IP</div> <div class="form-row"> <label>IP:</label> <input type="text"> <button>查询</button> </div> <div class="form-row"> <label>网关:</label> <input type="text"> <button>查询</button> </div> <div class="form-row"> <label>掩码:</label> <input type="text"> <button>设置</button> </div> </div> </div> </div> <div class="section"> <div class="section-title">控制面板</div> <div class="control-panel"> <div class="control-item"> <label>功放电平 <select> <option></option> <option>高开低关</option> <option>低开高关</option> </select> </label> <button>查询</button> <button>设置</button> </div> <div class="control-item"> <label>射频状态 <select> <option></option> <option>断电前状态</option> <option>强制开射频</option> <option>强制关射频</option> </select> </label> <button>查询</button> <button>设置</button> </div> <div class="control-item"> <label>设备互联 <select> <option></option> <option>dantai</option> <option></option> </select> </label> <button>查询</button> <button>设置</button> </div> <div class="control-item" style="display: flex;flex-wrap: wrap;"> <label >WIFI及功放控制 <select> <option></option> <option>输出高</option> <option>输出低</option> </select> </label> <button>查询</button> <button>设置</button> </div> <div class="control-item"> <label>所有射频开关状态 <select> <option></option> <option>所有射频通道关闭</option> <option>所有通道射频开启S</option> </select> </label> <button>查询</button> <button>设置</button> </div> </div> </div> </div> </div> </div> <div class="bottom-info"> 查询同步偷帧失败次数 </div> </div> </div> </body> {% endblock %}在源代码变的情况,点击查询,判断有没有连接设备,如果没有就弹出未选择设备
11-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值