第 7 章 图标菜单按钮组件

学习要点:

1.小图标组件

2.下拉菜单组件

3.按钮组组件

4.按钮式下拉菜单

主讲教师:李炎恢

本节课我们主要学习一下 Bootstrap 的三个组件功能:小图标组件、下拉菜单组件和各种按钮组件。

一.小图标组件

Bootstrap 提供了免费的 263 个小图标(数了两次),具体可以参考中文官网的组件链接:http://v3.bootcss.com/components/#glyphicons。

部分图标如下:

可以使用<i>或<span>标签来配合使用,具体如下:

//使用小图标

<i class="glyphicon glyphicon-star"></i>
<span class="glyphicon glyphicon-star"></span>

//也可以结合按钮

<button class="btn btn-default btn-lg">
    <span class="glyphicon glyphicon-star"></span>
</button>
<button class="btn btn-default btn">
    <span class="glyphicon glyphicon-star"></span>
</button>
<button class="btn btn-default btn-sm">
    <span class="glyphicon glyphicon-star"></span>
</button>
<button class="btn btn-default btn-xs">
    <span class="glyphicon glyphicon-star"></span>
</button>

二.下拉菜单组件

下拉菜单,就是点击一个元素或按钮,触发隐藏的列表显示出来。

//基本格式

<div class="dropdown">
    <button class="btn btn-default" data-toggle="dropdown"> 下拉菜单 <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
        <li>
            <a href="#">首页</a>
        </li>
        <li>
            <a href="#">资讯</a>
        </li>
        <li>
            <a href="#">产品</a>
        </li>
        <li>
            <a href="#">关于</a>
        </li>
    </ul>
</div>

按钮和菜单需要包裹在.dropdown 的容器里,而作为被点击的元素按钮需要设置data-toggle="dropdown"才能有效。对于菜单部分,设置 class="dropdown-menu"才能自动隐藏并添加固定样式。设置 class="caret"表示箭头,可上可下。

//设置向上触发

<div class="dropup">

//菜单项居右对齐,默认值是 dropdown-menu-left

<ul class="dropdown-menu dropdown-menu-right">

//设置菜单的标题,不要加超链接

<li class="dropdown-header">网站导航</li>

//设置菜单的分割线

<li class="divider"></li>

//设置菜单的禁用项

<li class="disabled"><a href="#">产品</a></li>

//让菜单默认显示

<div class="dropdown open">

三.按钮组组件

按钮组就是多个按钮集成在一个容器里形成独有的效果。

//基本格式

<div class="btn-group">
    <button type="button" class="btn btn-default"> 左 </button>
    <button type="button" class="btn btn-default"> 中 </button>
    <button type="button" class="btn btn-default"> 右 </button>
</div>

//将多个按钮组整合起来便于管理

<div class="btn-toolbar">
    <div class="btn-group">
        <button type="button" class="btn btn-default"> 左 </button>
        <button type="button" class="btn btn-default"> 中 </button>
        <button type="button" class="btn btn-default"> 右 </button>
    </div>

    <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>

//设置按钮组大小

<div class="btn-group btn-group-lg">
<div class="btn-group>
<div class="btn-group btn-group-sm">
<div class="btn-group btn-group-xs">

//嵌套一个分组,比如下拉菜单

<div class="btn-group">
    <button type="button" class="btn btn-default"> 左 </button>
    <button type="button" class="btn btn-default"> 中 </button>
    <button type="button" class="btn btn-default"> 右 </button>
    <div class="btn-group">
        <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 下拉菜单 <span class="caret"></span>
        </button>

        <ul class="dropdown-menu">
            <li>
                <a href="#">首页</a>
            </li>
            <li>
                <a href="#">资讯</a>
            </li>
            <li>
                <a href="#">产品</a>
            </li>
            <li>
                <a href="#">关于</a>
            </li>
        </ul>
    </div>
</div>

注意:这里<div>中并没有实现 class="dropdown",通过源码分析知道嵌套本身已经有定位就不需要再设置。而右边的圆角只要多加一个 class="dropdown-toggle"即可。

//设置按钮组垂直排列

<div class="btn-group-vertical">

//设置两端对齐按钮组,使用<a>标签

<div class="btn-group-justified">
    <a type="button" class="btn btn-default">左</a>
    <a type="button" class="btn btn-default">中</a>
    <a type="button" class="btn btn-default">右</a>
</div>

//如果需要使用<button>标签,则需要对每个按钮进行群组

<div class="btn-group-justified">
    <div class="btn-group">
        <button type="button" class="btn btn-default"> 左 </button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default"> 中 </button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default"> 右 </button>
    </div>
</div>

四.按钮式下拉菜单

这个下拉菜单其实和第二个知识点一样,只不过,这个是在群组里,不需要<div>声明class="dropdown"。

//群组按钮下拉菜单

<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="#">首页</a>
        </li>
        <li>
            <a href="#">资讯</a>
        </li>
        <li>
            <a href="#">产品</a>
        </li>
        <li>
            <a href="#">关于</a>
        </li>
    </ul>
</div>

//分裂式按钮下拉菜单

<div class="btn-group">
    <button type="button" class="btn btn-default"> 下拉菜单 </button>
    <button type="button" class="btn btn-default dropdown-toggle"data-toggle="dropdown">
        <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
        <li>
            <a href="#">首页</a>
        </li>
        <li>
            <a href="#">资讯</a>
        </li>
        <li>
            <a href="#">产品</a>
        </li>
        <li>
            <a href="#">关于</a>
        </li>
    </ul>
</div>

//向上弹出式

<div class="btn-group dropup">