后浪云Bootstrap4教程:Bootstrap4 下拉菜单

Bootstrap4 下拉菜单

Bootstrap4 下拉菜单依赖于 popper.min.js。

下拉菜单是可切换的,是以列表格式显示链接的上下文菜单。

实例

<
div

class
=
"
dropdown
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary dropdown-toggle
"

data-toggle
=
"
dropdown
"
>
Dropdown button
</
button
>

<
div

class
=
"
dropdown-menu
"
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Link 1
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Link 2
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Link 3
</
a
>

</
div
>

</
div
>

尝试一下 »

实例解析

.dropdown 类用来指定一个下拉菜单。

我们可以使用一个按钮或链接来打开下拉菜单, 按钮或链接需要添加 .dropdown-toggledata-toggle="dropdown" 属性。

<div> 元素上添加 .dropdown-menu 类来设置实现下拉菜单,然后在下拉菜单的选项中添加 .dropdown-item 类。

我们也可以在 <a> 标签中使用:

实例

<
div

class
=
"
dropdown
"
>

<
a

class
=
"
btn btn-secondary dropdown-toggle
"

href
=
"
#
"

role
=
"
button
"

id
=
"
dropdownMenuLink
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>
Dropdown link
</
a
>

<
div

class
=
"
dropdown-menu
"

aria-labelledby
=
"
dropdownMenuLink
"
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Action
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Another action
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Something else here
</
a
>

</
div
>

</
div
>

尝试一下 »

下拉菜单中的分割线

.dropdown-divider 类用于在下拉菜单中创建一个水平的分割线:

实例

<
div

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

尝试一下 »

下拉菜单中的标题

.dropdown-header 类用于在下拉菜单中添加标题:

实例

<
div

class
=
"
dropdown-header
"
>
Dropdown header 1
</
div
>

尝试一下 »

下拉菜单中的可用项与禁用项

.active 类会让下拉菜单的选项高亮显示 (添加蓝色背景)。

如果要禁用下拉菜单的选项,可以使用.disabled 类。

实例

<
a

class
=
"
dropdown-item active
"

href
=
"
#
"
>
Active
</
a
>

<
a

class
=
"
dropdown-item disabled
"

href
=
"
#
"
>
Disabled
</
a
>

尝试一下 »

下拉菜单的定位

如果我们想让下拉菜单右对齐,可以在元素上的 .dropdown-menu 类后添加 .dropdown-menu-right 类。

实例

<
div

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

尝试一下 »

下拉菜单弹出方向设置

下拉菜单弹出方向默认为向下,当然我们也可以设置不同的方向。

指定向右弹出的下拉菜单

如果你希望下拉菜单向右弹出,可以在 div 元素上添加 "dropright" 类:

实例

<!--
Default dropright button
-->

<
div

class
=
"
btn-group dropright
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>
Dropright
</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

<!--
Split dropright button
-->

<
div

class
=
"
btn-group dropright
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary
"
>
Split dropright
</
button
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle dropdown-toggle-split
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>

<
span

class
=
"
sr-only
"
>
Toggle Dropright
</
span
>

</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

尝试一下 »

指定向上弹出的上拉菜单

如果你希望上拉菜单向上弹出,可以在 div 元素上添加 "dropup" 类:

实例

<!--
Default dropup button
-->

<
div

class
=
"
btn-group dropup
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>
Dropup
</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

<!--
Split dropup button
-->

<
div

class
=
"
btn-group dropup
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary
"
>
Split dropup
</
button
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle dropdown-toggle-split
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>

<
span

class
=
"
sr-only
"
>
Toggle Dropdown
</
span
>

</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

尝试一下 »

指定向左边弹出的下拉菜单

如果你希望下拉菜单向上弹出,可以在 div 元素上添加 "dropleft" 类:

实例

<!--
Default dropleft button
-->

<
div

class
=
"
btn-group dropleft
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>
Dropleft
</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

<!--
Split dropleft button
-->

<
div

class
=
"
btn-group
"
>

<
div

class
=
"
btn-group dropleft
"

role
=
"
group
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary dropdown-toggle dropdown-toggle-split
"

data-toggle
=
"
dropdown
"

aria-haspopup
=
"
true
"

aria-expanded
=
"
false
"
>

<
span

class
=
"
sr-only
"
>
Toggle Dropleft
</
span
>

</
button
>

<
div

class
=
"
dropdown-menu
"
>

<!--
Dropdown menu links
-->

</
div
>

</
div
>

<
button

type
=
"
button
"

class
=
"
btn btn-secondary
"
>
Split dropleft
</
button
>

</
div
>

尝试一下 »

下拉菜单设置文本

.dropdown-item-text 类可以设置下拉菜单中的文本项:

实例

<
div

class
=
"
dropdown-menu
"
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
链接 1
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
链接 2
</
a
>

<
a

class
=
"
dropdown-item-text
"

href
=
"
#
"
>
文本链接
</
a
>

<
span

class
=
"
dropdown-item-text
"
>
仅仅是文本
</
span
>

</
div
>

尝试一下 »

按钮中设置下拉菜单

我们可以在按钮中添加下拉菜单:

实例

<
div

class
=
"
btn-group
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary
"
>
Sony
</
button
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary dropdown-toggle dropdown-toggle-split
"

data-toggle
=
"
dropdown
"
>

<
span

class
=
"
caret
"
>
</
span
>

</
button
>

<
div

class
=
"
dropdown-menu
"
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Tablet
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Smartphone
</
a
>

</
div
>

</
div
>

尝试一下 »

垂直按钮组带下拉菜单:

实例

<
div

class
=
"
btn-group-vertical
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary
"
>
Apple
</
button
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary
"
>
Samsung
</
button
>

<
div

class
=
"
btn-group
"
>

<
button

type
=
"
button
"

class
=
"
btn btn-primary dropdown-toggle
"

data-toggle
=
"
dropdown
"
>
Sony
</
button
>

<
div

class
=
"
dropdown-menu
"
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Tablet
</
a
>

<
a

class
=
"
dropdown-item
"

href
=
"
#
"
>
Smartphone
</
a
>

</
div
>

</
div
>

</
div
>

尝试一下 »

THE END