Home >Web Front-end >Bootstrap Tutorial >A simple introduction to drop-down menus in Bootstrap

A simple introduction to drop-down menus in Bootstrap

青灯夜游
青灯夜游forward
2021-06-22 11:10:402770browse

This article will give you a detailed introduction to the drop-down menu in Bootstrap. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

A simple introduction to drop-down menus in Bootstrap

When interacting with web pages, context menus or hidden/show menu items are often required. Bootstrap provides a switchable, contextual menu by default for displaying a link list. Moreover, the menu display in various interactive states needs to be used in conjunction with the javascript plug-in. [Related recommendations: "bootstrap Tutorial"]

How to use

When using the drop-down menu of the Bootstrap framework, you must call the drop-down menu provided by the Bootstrap framework bootstrap.js file. Of course, if you are using the uncompiled version, you can find a file named "dropdown.js" in the js folder, and you can also call this js file

Because Bootstrap's component interaction effects all depend on A plug-in written by the jQuery library, so jquery.js must be loaded before using bootstrap.js to have an effect

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>

Basic usage

When using the Bootstrap framework When using a drop-down menu component, it is very important to use its structure correctly. If the structure and class name are not used correctly, it will directly affect whether the component can be used normally

 1. Use a container named "dropdown" Wraps the entire drop-down menu element

<div></div>

 2. Use a

<button></button>

3. Use a ul list for the drop-down menu item, and define a class name "dropdown-menu"


    <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropdown
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
      </ul>
    </div>

    A simple introduction to drop-down menus in Bootstrap

    4. By setting the .dropup class for the parent element of the drop-down menu, you can make the menu pop up (the default is to pop down)

    <div class="dropup">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropup
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
      </ul>
    </div>

    A simple introduction to drop-down menus in Bootstrap

    Principle Analysis

    The drop-down menu component in the Bootstrap framework, its drop-down menu items are hidden by default because the "dropdown-menu" default style is set to "display:none"; when the user clicks When the parent menu item is selected, the drop-down menu will be displayed; when the user clicks again, the drop-down menu will continue to be hidden

    .dropdown-menu {
      position: absolute;/*设置绝对定位,相对于父元素div.dropdown*/
      top: 100%;/*让下拉菜单项在父菜单项底部,如果父元素不设置相对定位,该元素相对于body元素*/
      left: 0;
      z-index: 1000;/*让下拉菜单项不被其他元素遮盖住*/
      display: none;/*默认隐藏下拉菜单项*/
      float: left;
      min-width: 160px;
      padding: 5px 0;
      margin: 2px 0 0;
      font-size: 14px;
      list-style: none;
      background-color: #fff;
      background-clip: padding-box;
      border: 1px solid #ccc;
      border: 1px solid rgba(0, 0, 0, .15);
      border-radius: 4px;
      -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
      box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
    }

    [Implementation Principle]

     1. The Dropdown plug-in is loaded when the web page is loaded , event binding for all elements with data-toggle="dropdown" style

    2. When the user clicks a link or button with data-toggle="dropdown" style, the javascript event code is triggered

    3. Add an .open style to the parent container in the javascript event code

    4. The .dropdown-menu menu that is hidden by default can be displayed after it has an .open style externally. To achieve the expected effect

     5. When the user clicks again, the class name "open" in the "p.dropdown" container will be removed again

    .open > .dropdown-menu {
      display: block;
    }

    [Other usage]

    Another interesting usage is that the trigger element can be placed outside the parent container of the menu

    However, there are two points to note in this usage

    1. Set the parent The id value of the container

    2. Set the data-toggle attribute and data-target attribute of the trigger element. The data-target attribute value is #id

    <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" data-target="#dropdown1">外部触发器</button>
    <div class="dropdown" id="dropdown1">
        <ul class="dropdown-menu" role="menu" aria-labelledby="tutorial">
            <li role="presentation"><a href="##">HTML</a></li>
            <li role="presentation"><a href="##">CSS</a></li>
            <li role="presentation"><a href="##">javascript</a></li>
        </ul>
    </div>

    A simple introduction to drop-down menus in Bootstrap

    Extended Usage

    [Separator]

    The drop-down menu in the Bootstrap framework provides a drop-down separator. Assuming that the drop-down menu has two groups, then the group and the group You can add a drop-down divider by adding an empty

  • and adding the class name "divider" to this
  • .dropdown-menu .divider {
      height: 1px;
      margin: 9px 0;
      overflow: hidden;
      background-color: #e5e5e5;
    }
    <li role="separator" class="divider"></li>

    A simple introduction to drop-down menus in Bootstrap

    【Menu Title】

    You can add a title to any drop-down menu to indicate a group of actions

    <li class="dropdown-header">Dropdown header</li>
    .dropdown-header {
      display: block;
      padding: 3px 20px;
      font-size: 12px;
      line-height: 1.42857143;
      color: #999;
    }
    <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropdown
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
        <li role="presentation" class="dropdown-header">第一部分菜单头部</li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>
        <li role="presentation" class="divider"></li>
        <li role="presentation" class="dropdown-header">第二部分菜单头部</li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>
      </ul>
    </div>

    A simple introduction to drop-down menus in Bootstrap

    【Alignment】

    The drop-down menu in the Bootstrap framework is left aligned by default. If you want the drop-down menu to be right-aligned relative to the parent container, you can add a "dropdown-menu-right" class name to "dropdown-menu"

    .dropdown-menu-right {
      right: 0;
      left: auto;
    }

    Since

The above is the detailed content of A simple introduction to drop-down menus in Bootstrap. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete