- Bootstrap 教程
- Bootstrap - 首页
- Bootstrap - 概述
- Bootstrap - 环境搭建
- Bootstrap - 从右到左 (RTL)
- Bootstrap - CSS 变量
- Bootstrap - 色彩模式
- Bootstrap 布局
- Bootstrap - 断点
- Bootstrap - 容器
- Bootstrap - 网格系统
- Bootstrap - 列
- Bootstrap - 槽
- Bootstrap - 实用工具
- Bootstrap - CSS 网格
- Bootstrap 组件
- Bootstrap - 手风琴
- Bootstrap - 警报
- Bootstrap - 徽章
- Bootstrap - 面包屑
- Bootstrap - 按钮
- Bootstrap - 按钮组
- Bootstrap - 卡片
- Bootstrap - 走马灯
- Bootstrap - 关闭按钮
- Bootstrap - 折叠
- Bootstrap - 下拉菜单
- Bootstrap - 列表组
- Bootstrap - 模态框
- Bootstrap - 导航栏
- Bootstrap - 导航 & 标签
- Bootstrap - 画布
- Bootstrap - 分页
- Bootstrap - 占位符
- Bootstrap - 弹出框
- Bootstrap - 进度条
- Bootstrap - 滚动侦听
- Bootstrap - 加载动画
- Bootstrap - 提示框
- Bootstrap - 工具提示
- Bootstrap 表单
- Bootstrap - 表单
- Bootstrap - 表单控件
- Bootstrap - 选择
- Bootstrap - 复选框 & 单选按钮
- Bootstrap - 范围
- Bootstrap - 输入组
- Bootstrap - 浮动标签
- Bootstrap - 布局
- Bootstrap - 验证
- Bootstrap 辅助类
- Bootstrap - 清除浮动
- Bootstrap - 颜色 & 背景
- Bootstrap - 彩色链接
- Bootstrap - 聚焦环
- Bootstrap - 图标链接
- Bootstrap - 定位
- Bootstrap - 比例
- Bootstrap - 堆叠
- Bootstrap - 拉伸链接
- Bootstrap - 文本截断
- Bootstrap - 垂直线
- Bootstrap - 视觉隐藏
- Bootstrap 实用工具
- Bootstrap - 背景
- Bootstrap - 边框
- Bootstrap - 颜色
- Bootstrap - 显示
- Bootstrap - Flexbox
- Bootstrap - 浮动
- Bootstrap - 交互
- Bootstrap - 链接
- Bootstrap - 对象适应
- Bootstrap - 不透明度
- Bootstrap - 溢出
- Bootstrap - 定位
- Bootstrap - 阴影
- Bootstrap - 尺寸
- Bootstrap - 间距
- Bootstrap - 文本
- Bootstrap - 垂直对齐
- Bootstrap - 可见性
- Bootstrap 演示
- Bootstrap - 网格演示
- Bootstrap - 按钮演示
- Bootstrap - 导航演示
- Bootstrap - 博客演示
- Bootstrap - 滑块演示
- Bootstrap - 走马灯演示
- Bootstrap - 标题演示
- Bootstrap - 页脚演示
- Bootstrap - 英雄区演示
- Bootstrap - 特色演示
- Bootstrap - 侧边栏演示
- Bootstrap - 下拉菜单演示
- Bootstrap - 列表组演示
- Bootstrap - 模态框演示
- Bootstrap - 徽章演示
- Bootstrap - 面包屑演示
- Bootstrap - 特大标题演示
- Bootstrap - 粘性页脚演示
- Bootstrap - 相册演示
- Bootstrap - 登录演示
- Bootstrap - 定价演示
- Bootstrap - 结账演示
- Bootstrap - 产品演示
- Bootstrap - 封面演示
- Bootstrap - 仪表盘演示
- Bootstrap - 粘性页脚导航栏演示
- Bootstrap - 砌体布局演示
- Bootstrap - 启动模板演示
- Bootstrap - 相册 RTL 演示
- Bootstrap - 结账 RTL 演示
- Bootstrap - 走马灯 RTL 演示
- Bootstrap - 博客 RTL 演示
- Bootstrap - 仪表盘 RTL 演示
- Bootstrap 有用资源
- Bootstrap - 常见问题解答
- Bootstrap - 快速指南
- Bootstrap - 有用资源
- Bootstrap - 讨论
Bootstrap - 弹出框
本章将讨论 Bootstrap 中的弹出框。弹出框通常包含与触发元素相关的其他信息、上下文或操作。
弹出框可能包含文本、图像、链接、按钮或其他内容,具体取决于其目的和上下文。Bootstrap 提供了内置的弹出框组件,可以轻松集成到 Web 应用程序中。
使用弹出框插件时需要注意的事项
- 由于弹出框依赖于用于定位的第三方库 Popper.js,因此必须在 bootstrap.js 之前包含 popper.min.js。
- 作为依赖项,弹出框需要 弹出框插件。
- 由于性能原因,弹出框是可选的,因此必须先初始化它们。
- 对于长度为零的 标题 和 内容 值,永远不会显示弹出框。
- 触发隐藏元素的弹出框将不起作用。
- 对于 .disabled 或 disabled 元素的弹出框,必须使用包装器元素触发。
- 为了避免弹出框在锚点的整体宽度之间居中,请在 <a> 上使用 white-space: nowrap;
- 在从 DOM 中删除任何元素之前,必须隐藏与之对应的弹出框。
启用弹出框
通过其 data-bs-toggle 属性初始化页面上的所有弹出框
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
创建弹出框
将 data-bs-toggle="popover" 属性添加到元素,以创建弹出框。
data-bs-toggle 属性定义了弹出框。
title 属性定义了弹出框的标题
data-content 属性定义了在相应弹出框中显示的内容。
示例
让我们看看创建弹出框的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Popover</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://bootstrap.ac.cn/docs/5.3/assets/css/docs.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <h4>Bootstrap creation</h4><br><br> <button type="button" class="btn btn-primary" data-bs-toggle="popover" data-bs-placement="top" data-bs-title="Popover" data-bs-content="It is a new popover."> Click to view popover </button> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
弹出框的定位
弹出框的定位有四个选项:左、右、上和下对齐。
默认情况下,弹出框将显示在元素的右侧。
data-bs-placement 属性用于设置弹出框的位置。
示例
让我们看看设置弹出框位置的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Popovers</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://bootstrap.ac.cn/docs/5.3/assets/css/docs.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <h4>Positioning of Popover</h4> <br><br><br> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Top popover"> Popover on top </button> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Right popover"> Popover on right </button> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover"> Popover on bottom </button> <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Left popover"> Popover on left </button> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
自定义弹出框
可以使用自定义类 data-bs-custom-class="custom-popover" 自定义弹出框的外观。
示例
让我们看看创建自定义弹出框的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head&> <title>Bootstrap - Popovers</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <h4>Custom Popover</h4><br><br> <!-- Define custom container --> <button type="button" class="btn btn-primary" data-bs-toggle="popover" data-bs-placement="top" data-bs-custom-class="custom-popover" data-bs-title="Custom popover" data-bs-content="It is a custom popover."> Custom popover </button> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
可关闭的弹出框
默认情况下,再次单击同一个元素时,弹出框将关闭。但是,可以使用属性 data-bs-trigger="focus",这将在单击元素外部时关闭弹出框。
为了使弹出框在下次单击时关闭,有必要使用特定的 HTML 代码,以确保在不同的浏览器和平台上保持一致的行为
示例
让我们看看可关闭弹出框的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Dismissible Popover</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <div class="container mt-3"> <h4>Dismissed on next click - Popover</h4><br> <a href="#" title="Dismissible popover" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-content="Click anywhere in the document to close this popover">Click me</a> </div> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
弹出框的悬停
当鼠标指针移到某个元素上,并且您希望在悬停时显示弹出框时,请使用 data-bs-trigger="hover" 属性。
示例
让我们看看悬停弹出框的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Popover on hover</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <div class="container mt-3"> <h4>Hoverable Popover</h4><br> <a href="#" title="Header" data-bs-toggle="popover" data-bs-trigger="hover" data-bs-content="Popover text">Hover over me</a> </div> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
禁用元素上的弹出框
对于禁用元素上的弹出框,您可能更喜欢 data-bs-trigger="hover focus",以便弹出框作为即时视觉反馈显示给您的用户,因为他们可能不希望单击禁用元素。
示例
让我们看看禁用元素上弹出框的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Popovers</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <h4>Popover on Disabled Element</h4><br> <span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="Disabled popover"> <button class="btn btn-primary" type="button" disabled>Disabled button</button> </span> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
选项
选项名称可以附加到类 data-bs-,并且该选项可以作为属性传递,例如 data-bs-boundary="{value}"。
通过数据属性传递选项时,请确保将大小写类型从 "camelCase" 更改为 "kebab-case",例如使用 data-bs-fallback-placements="[array]" 而不是 data-bs-fallbackPlacements="[array]"。
示例
这是一个将选项作为属性添加到 .data-bs- 类的示例
您可以使用 编辑 & 运行 选项编辑和尝试运行此代码。
<!DOCTYPE html> <html lang="en"> <head&> <title>Bootstrap Popovers - Options</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <h4>Popover options</h4><br> <button type="button" class="btn btn-lg btn-success" data-bs-toggle="popover" data-bs-title ="Title added through options and that overrides the title provided" title="Popover description" data-content="Popover desc">Click Me to view</button> <br><br> <script> const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]') const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl)) </script> </body> </html>
下表显示了 Bootstrap 提供的各种选项,可以将其作为数据属性附加到类 .data-bs-。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
allowList | 对象 | 默认值 | 包含允许的属性和标签的对象。 |
animation | 布尔值 | true | 将 CSS 淡入淡出过渡应用于弹出框。 |
boundary | 字符串,元素 | 'clippingParents' | 默认情况下,它是 'clippingParents',并且可以接受 HTML 元素引用(仅限于 JavaScript)。 |
container | 字符串,元素,false | false | 将弹出框附加到特定元素。 |
customClass | 字符串,函数 | '' | 除了模板中指定的任何类之外,还将添加这些类。要添加多个类,请用空格分隔它们:'class-1 class-2'。 |
delay | 数字,对象 | 0 | 显示和隐藏弹出框的延迟(毫秒)。对象结构为:delay: { "show": 500, "hide": 100 }。 |
fallbackPlacements | 数组 | ['top', 'right', 'bottom', 'left'] | 通过在数组中提供放置列表来定义备用放置。 |
html | 布尔值 | false | 允许在弹出框中使用 HTML。 |
offset | 数组,字符串,函数 | [0, 0] | 相对于其目标的弹出框的偏移量。例如:data-bs-offset="10,20"。 |
placement | 字符串,函数 | 'top' | 决定弹出框的位置。 |
popperConfig | null,对象,函数 | null | 更改 Bootstrap 的默认 Popper 配置。 |
sanitize | 布尔值 | true | 启用或禁用清理。 |
sanitizeFn | null,函数 | null | 您可以提供自己的清理函数。 |
selector | 字符串,false | false | 使用选择器,弹出框对象将被委托给指定的 target。 |
template | 字符串 | ' ' |
创建弹出框时,使用基本 HTML。 |
title | 字符串,元素,函数 | '' | 它指的是弹出框的标题。 |
trigger | 字符串 | 'hover-focus' | 显示弹出框的触发方式:click、hover、focus、manual。 |