章节
问答
课签
笔记
评论
占位
占位

下拉菜单(对齐方式)

实现右对齐方法:

Bootstrap框架中下拉菜单默认是左对齐,如果你想让下拉菜单相对于父容器右对齐时,可以在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-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 pull-right" role="menu" aria-labelledby="dropdownMenu1">
   …
  </ul>
</div>

上面代码中的“pull-right”类可以用“dropdown-menu-right”代替,两个类的作用是一样的,可从下面的源代码中看出。

实现原理:

对应的样式如下:

/*源码请查看bootstrap.css文件第3030行~第3033行和3082行~第3085行*/

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

同时一定要为.dropdown添加float:leftcss样式。

.dropdown{
  float: left;
}

运行效果如下所示:

下拉菜单与父容器边对齐:

与此同时,还有一个类名刚好与“dropdown-menu-right”相反的类名“dropdown-menu-left”,其效果就是让下拉菜单与父容器左边对齐,其实就是默认效果。

/*请查看bootstrap.css文件第3086行~第3089行*/

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

任务

我来试试:完成下面任务

编写代码实现下拉菜单,效果如下图:

 

?不会了怎么办

参考代码:

<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 pull-right" 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"><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>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">萝卜</a></li>
    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">茄子</a></li>
</div>

备注:这一小节没有正确性验证,请查看结果窗口与教案所给的结果图片是否一致,从而判断输入代码是否正确。

||
1
2
<!DOCTYPE HTML>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
body {
padding: 50px
      100px;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 绝尘kinoko
前面不是讲了原理吗,通过js,或者说是jQuery代码实现的。详见5-2。如果你说的是按钮和列表的一一对应,按钮是有id,对应的是ul的aria-labelledby属性。

已采纳回答 / 慕斯卡7269444
抱歉,前面回答不对。需要添加 float:left;

最新回答 / 慕移动9181930
成员变量和局部变量的用法mitshvxhotrojxwlzppkbybcwwbvxarspzrzsz

最新回答 / 慕婉清64744
因为ul.dropdown-menu加了min-width为160px;里面的a标签也加了padding值

最新回答 / MR帽子先生
说清楚一点,我没看懂啊?是要靠边还是怎么的?你要靠边的话可以通过ID重新写个CSS覆盖上去,而且你说的应该是UL默认的边距造成的你可以重新覆盖的。希望对你有帮助。祝你学习愉快!

最赞回答 / 慕哥0602982
dropdown-menu-right效果跟pull-right是一样的

最赞回答 / 褐色情调
<div class="dropdown" >   <button type="button" class="btn btn-defaule dropdown-toggle" data-toggle="dropdown">    你喜欢干什么    <span class="caret"></span>   </button>   <ul class="dropdown-menu dropdown-menu-left" role="menu...

已采纳回答 / 慕仙0914885
是为了考虑到有视力障碍人士使用读屏软件,当读屏软件识别到aria-labelledby时,会读出以aria-labelledby的值为id的内容。(这里是会读出id为dropdownMenu1的内容)

最赞回答 / 冷眼看尽繁华丿
给.dropdown的父元素设置浮动就OK了,或者说让.dropdown的父元素脱离文档流。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言