全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Bootstrap源码解读下拉菜单(4)

源码解读Bootstrap下拉菜单

基本用法

在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件。因为Bootstrap的组件交互效果都是依赖于jQuery库写的插件,所以在使用bootstrap.min.js之前一定要先加载jquery.min.js才会生效果。
使用方法如下:
1. 使用一个名为“dropdown”的容器包裹了整个下拉菜单元素:<div class="dropdown"></div>
2. 使用一个<button>按钮做为父菜单,并且定义类名“dropdown-toggle”和自定义“data-toggle”属性,且值必须和最外容器类名一致:data-toggle=”dropdown”
3. 下拉菜单项使用一个ul列表,并且定义一个类名为“dropdown-menu”:<ul class="dropdown-menu">

完整如下:

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

实现原理

Bootstrap框架中的下拉菜单组件,其下拉菜单项默认是隐藏的,因为“dropdown-menu”默认样式设置了“display:none”。实现源码如下:

.dropdown-menu {
 position: absolute;
 top: 100%;
 left: 0;
 z-index: 1000;
 display: none;
 float: left;
 min-width: 160px;
 padding: 5px 0;
 margin: 2px 0 0;
 font-size: 14px;
 text-align: left;
 list-style: none;
 background-color: #fff;
 -webkit-background-clip: padding-box;
   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);
}

当点击父菜单项时,下拉菜单将会被显示出来,再次点击时,下拉菜单将继续隐藏。实现原理非常简单,通过js,给父容器“div.dropdown”添加或移除类名“open”来控制下拉菜单显示或隐藏。也就是说,默认情况,“div.dropdown”没有类名“open”,当用户第一次点击时,“div.dropdown”会添加类名“open”;当用户再次点击时,“div.dropdown”容器中的类名“open”又会被移除。实现源码如下:

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

下拉分隔线

下拉菜单还提供了下拉分隔线,假设下拉菜单有两个组,那么组与组之间可以通过添加一个空的<li>,并且给这个<li>添加类名“divider”来实现添加下拉分隔线的功能。
例如: <li role="presentation" class="divider"></li>
实现源码如下:

.dropdown-menu .divider {
 height: 1px;
 margin: 9px 0;
 overflow: hidden;
 background-color: #e5e5e5;
}

菜单标题

组与组之间可以添加一个<li>,并添加类名“dropdown-header”可以给每个组添加一个头部(标题)。
例如:<li role="presentation" class="dropdown-header">第一部分菜单头部</li>
实现源码:

.dropdown-header {
 display: block;
 padding: 3px 20px;
 font-size: 12px;
 line-height: 1.42857143;
 color: #999;
}

对齐方式

下拉菜单默认是左对齐,如果你想让下拉菜单相对于父容器右对齐时,可以在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-right”类名,
例如:<ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenu1">
实现源码:

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

不过这样的话,下拉列表会跑到页面的最右边去,我们显然不希望这样,所以一定要为.dropdown添加float:left的css样式:

.dropdown{
 float: left;
}

另外,还有个类名“dropdown-menu-left”,其实就是下拉菜单与父容器左边对齐的默认效果,

实现源码:

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

菜单项状态

下拉菜单项的默认的状态有悬浮状态(:hover)和焦点状态(:focus),实现源码如下:

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
 color: #262626;
 text-decoration: none;
 background-color: #f5f5f5;
}

另外还有当前状态(.active)和禁用状态(.disabled)。这两种状态使用方法只需要在对应的菜单项<li>上添加对应的类名“active”或“disabled”。

实现源码如下:

.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基础教程 专题中,欢迎点击学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Bootstrap下拉菜单  # Bootstrap菜单  # Bootstrap每天必学之下拉菜单  # Bootstrap每天必学之级联下拉菜单  # Bootstrap 中下拉菜单修改成鼠标悬停直接显示  # Bootstrap实现下拉菜单效果  # 学习Bootstrap组件之下拉菜单  # Bootstrap+jfinal实现省市级联下拉菜单  # Bootstrap按钮下拉菜单组件详解  # Bootstrap下拉菜单效果实例代码分享  # Bootstrap CSS组件之按钮下拉菜单  # Bootstrap CSS组件之下拉菜单(dropdown)  # 菜单项  # 分隔线  # 移除  # 都是  # 如果你  # 有个  # 将会  # 才会  # 只需  # 要在  # 可以通过  # 跑到  # 自定义  # 又会  # 想让  # 相对于  # 这两种  # 来实现  # 第一部分  # 大家多多 


相关文章: 网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何配置IIS站点权限与局域网访问?  网站制作免费,什么网站能看正片电影?  如何在橙子建站中快速调整背景颜色?  定制建站价位费用解析与套餐推荐全攻略  如何在阿里云高效完成企业建站全流程?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  制作网站公司那家好,网络公司是做什么的?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何安全更换建站之星模板并保留数据?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何快速辨别茅台真假?关键步骤解析  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站之星云端配置指南:模板选择与SEO优化一键生成  临沂网站制作企业,临沂第三中学官方网站?  如何高效搭建专业期货交易平台网站?  建站之星导航配置指南:自助建站与SEO优化全解析  建站之星如何保障用户数据免受黑客入侵?  免费网站制作appp,免费制作app哪个平台好?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  seo网站制作优化,网站SEO优化步骤有哪些?  油猴 教程,油猴搜脚本为什么会网页无法显示?  网站专业制作公司有哪些,做一个公司网站要多少钱?  网站代码制作软件有哪些,如何生成自己网站的代码?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何彻底卸载建站之星软件?  建站VPS能否同时实现高效与安全翻墙?  建设网站制作价格,怎样建立自己的公司网站?  ,怎么用自己头像做动态表情包?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何用虚拟主机快速搭建网站?详细步骤解析  Swift中swift中的switch 语句  如何登录建站主机?访问步骤全解析  学校为何禁止电信移动建设网站?  建站之星官网登录失败?如何快速解决?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何确认建站备案号应放置的具体位置?  如何快速配置高效服务器建站软件?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  Python多线程使用规范_线程安全解析【教程】  网站制作壁纸教程视频,电脑壁纸网站?  山东云建站价格为何差异显著?  简单实现Android文件上传  ,sp开头的版面叫什么? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。