搜索
首页web前端Bootstrap教程深入浅析Bootstrap中的下拉菜单组件

深入浅析Bootstrap中的下拉菜单组件

相关推荐:《bootstrap教程

bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,他对应的文件:

less 对应的源码文件为:dropdowns.less

sass对应的源码文件为:_dropdowns.scss

在使用bootstrap矿建的下拉菜单时,必须调用bootstrap框架提供的bootstrap.js文件。对于未编译版本,可以在js下找到一个名为dropdown.js的文件,也可以调用这个文件。也可以调用压缩好的文件bootstrap.min.js

由于bootstrap组件交互效果都是依赖于jQuery库写的插件,所以在使用bootstrap.min.js之前一定要先加载jQuery.min.js

官网上的示例:

<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">

下拉菜单

<span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>

   …
   
<li role="presentation" class="divider"></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul> </div>

详解:

1、使用一个名为dropdown的容器包裹了整个下拉菜单元素

<div class="dropdown"></div>

2、使用了bb9345e55eb71822850ff156dfde57c8按钮作为父菜单,并且定义类名dropdown-toggle和自定义data-toggle属性,且值必须和最外容器类名一致

data-toggle=“dropdown”

3、下拉菜单项使用了一个ul列表,并且定义一个类名为dropdown-menu

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

bootstrap中的下拉菜单项默认是隐藏的,dropdown-menu设置了display:none

.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); }

当用户点击父级菜单时,下拉菜单会显示出来,再次点击时下拉菜单将继续隐藏

image

image

详解:

通过js给父级容器p.dropdown添加或一处open来控制下拉菜单显示或隐藏,也就是说,默认情况,p.dropdown没有类名open,当用户第一次点击时,p.dropdown会添加类名open,当用户再次点击时,p.dropdown容器中的类名会被移除

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

下拉分隔线

假设下拉菜单有两个组,那么组与组之间可以通过添加一个空的25edfb22a4f469ecb59f1190150159c6,并且给这个li添加类名.piderl来实现添加下拉分隔线的功能

.dropdown-menu .divider {

  height: 1px;

  margin: 9px 0;

  overflow: hidden;

  background-color: #e5e5e5; 
}

深入浅析Bootstrap中的下拉菜单组件

菜单标题

为了让这个分组更明显,还可以给每个组添加一个头部标题。

<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="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" class="divider"></li> <li role="presentation" class="dropdown-header">第二部分菜单头部</li>

…

<li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul> </div>

css样式:

.dropdown-header {

  display: block;

  padding: 3px 20px;

  font-size: 12px;

  line-height: 1.42857143;

  color: #999;
 }

bootstrap框架中下拉菜单默认是左对齐,如果要下拉菜单相对于父级容器右对齐,可以在dropdown-menu上添加一个类.dropdown-menu-right,注意,从v3.1.0版本开始,不再建议对下拉菜单使用.pull-right类

<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">

  下拉菜单
  
<span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="dropdownMenu1">

   …
  
</ul> </div>
.dropdown-menu-right {

  right: 0;

  left: auto;
   }

.dropdown{
float: left; 
}

菜单项状态

下拉菜单的默认状态有悬浮状态:hover和焦点状态:focus

.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {

  color: #262626;

  text-decoration: none;

  background-color: #f5f5f5; }

下拉菜单还有当前状态和禁用状态,这两种状态使用方法只需要在对应的菜单项上添加对应的类名

<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">

  下拉菜单
  
<span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation" class="active"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li>

    ….
    
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul> </div>

CSS:

.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {

  color
: #fff;

  text-decoration
: none;

  background-color
: #428bca;

  outline
: 0; }

.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus 
{
  color: #999; 
 }

.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus 
{

  text-decoration: none;

  cursor: not-allowed;

  background-color: transparent;

  background-image: none;

  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 
}

更多编程相关知识,请访问:编程视频!!

以上是深入浅析Bootstrap中的下拉菜单组件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:博客园。如有侵权,请联系admin@php.cn删除
Bootstrap网格:如何适应移动设备?Bootstrap网格:如何适应移动设备?May 16, 2025 am 12:02 AM

Bootstrap的网格系统可通过以下步骤适配移动设备:1)使用col-xs-类定义元素在小屏幕上的跨度;2)简化网格结构,避免过度嵌套;3)根据需要调整offset-xs-类以优化空间使用;4)利用order-*类重新排列元素顺序;5)使用开发工具测试不同屏幕尺寸下的布局,并关注性能优化。这样可以确保网格系统在移动设备上提供最佳的查看体验。

了解响应式网络设计的引导网格系统了解响应式网络设计的引导网格系统May 14, 2025 am 12:07 AM

Bootstrap'SgridSemiteStemfiveDuetoIts12-columnlayOutAndResponsiveClasses,允许ForfforFlexibleanDmaintabainbabledesignsignsigns.toleverations.toleveration:1)userowsandcolumnswithclasseslikecol-md,col sm,col-lggfordforentscreenscreenscreens.2)

Bootstrap网格系统:响应迅速布局的综合指南Bootstrap网格系统:响应迅速布局的综合指南May 13, 2025 pm 04:17 PM

BootstrapGridSemessentialForCreatingResponsivElayouts.1)ItuseScontainers,行,和ColumnSbasedona12-ColumnLaylayOut.2)cssflexboxandMediaqueriesensEnsureflexibilityAcrossscreenscreensacribilityAcrosscreensacrizes.3)classLikeCol-XSSLLIKECOL-XSSLIKECOL-XM,COLIKECOL-XM,COL-SM,COLCHANGCHANGCHANGCHENSCHENTCHESCHEN.4)

Bootstrap:所解释的应用和优势Bootstrap:所解释的应用和优势May 10, 2025 am 12:18 AM

Bootstrap是一个前端框架,用于快速构建响应式网站。其优势包括:1.快速开发:利用预定义样式和组件。2.一致性:提供统一设计风格。3.响应式设计:内置网格系统适应各种设备。通过CSS类和JavaScript插件,Bootstrap简化了网页开发过程。

Bootstrap:简化响应式Web开发Bootstrap:简化响应式Web开发May 09, 2025 am 12:13 AM

Bootstrap简化开发流程主要通过其栅格系统、预定义组件和JavaScript插件。1.栅格系统允许灵活布局,2.预定义组件如按钮和导航栏简化样式设计,3.JavaScript插件增强交互功能,提升开发效率。

Bootstrap:响应式Web设计的关键Bootstrap:响应式Web设计的关键May 08, 2025 am 12:24 AM

Bootstrap是由Twitter开发的开源前端框架,提供了丰富的CSS和JavaScript组件,简化了响应式网站的构建。1)其网格系统基于12列布局,通过类名控制元素在不同屏幕尺寸下的显示。2)组件库包括按钮、导航栏等,易于定制和使用。3)工作原理依赖于CSS和JavaScript文件,需注意处理依赖关系和样式冲突。4)使用示例展示了基本和高级用法,强调了自定义功能的重要性。5)常见错误包括网格系统计算错误和样式覆盖,需使用开发者工具调试。6)性能优化建议只引入必要组件,使用预处理器定制样

Bootstrap:一个强大的Web设计框架Bootstrap:一个强大的Web设计框架May 07, 2025 am 12:05 AM

Bootstrap是一个开源的前端框架,由Twitter团队开发,旨在简化和加速网页开发过程。1.Bootstrap基于HTML、CSS和JavaScript,提供了丰富的组件和工具,用于创建现代化的用户界面。2.它的核心在于响应式设计,通过预定义的类和组件实现各种布局和样式。3.Bootstrap提供了预定义的UI组件,如导航栏、按钮、表单等,易于使用和调整。4.使用示例包括创建简单的导航栏和高级的可折叠侧边栏。5.常见错误包括版本冲突、CSS覆盖和JavaScript错误,可通过版本管理工具

Bootstrap在React中的力量:详细的外观Bootstrap在React中的力量:详细的外观May 06, 2025 am 12:06 AM

Bootstrap在React中可以通过两种方式集成:1)使用Bootstrap的CSS和JavaScript文件;2)使用React-Bootstrap库。React-Bootstrap提供了封装好的React组件,使得在React中使用Bootstrap更加自然和高效。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中