2019年实习时的 BootStrap(4.x)基础知识 备份 BootStrap5六角学院文档: HexSchool 顺便推荐一个程序员段子网站 techug.com
栅格系统 栅格类 例:<div class="col-5"></div>
类名 适用 .col-*
针对所有设备 .col-sm-*
平板 - 荧幕宽度等于或大于 576px .col-md-*
桌面显示器 - 荧幕宽度等于或大于 768px .col-lg-*
大桌面显示器 - 荧幕宽度等于或大于 992px .col-xl-*
超大桌面显示器 - 荧幕宽度等于或大于 1200px
栅格规则 栅格每一行需要放在设置了 .container 或 .container-fluid
类的容器中,这样就可以自动设置一些外边距与内边距。 使用行来创建水平的列组。 内容需要放置在列中,并且只有列可以是行的直接子节点。 预定义的类如 .row
和 .col-*
可用于快速制作栅格布局。 列通过填充创建列内容之间的间隙。 这个间隙是通过 .row
类上的负边距设置第一行和最后一列的偏移。 栅格列是通过跨越指定的 12 个列来创建。 例如,设置三个相等的列,需要使用用三个.col-4
来设置。 Flex布局 1 2 3 4 5 <div class ="d-flex bg-secondary text-white" > <div class ="p-2 bg-info" > Flex item A</div > <div class ="p-2 bg-warning" > Flex item B</div > <div class ="p-2 bg-primary" > Flex item C</div > </div >
d-flex
类创建一个弹性盒子容器d-inline-flex
创建显示在同一行上的弹性盒子容器可以使用flex-row
可以设置弹性子元素水平显示(预设)flex-row-reverse
类用于设置右对齐显示,即与 .flex-row
方向相反。flex-column
类用于设置弹性子元素垂直方向显示flex-column-reverse
用于翻转子元素justify-content-*
类用于修改弹性子元素的排列方式,*
号允许的值有:start (默认), end, center, between 或 around
。flex-fill
类强制设置各个弹性子元素的宽度是一样的flex-grow-1
用于设置子元素使用剩下的空间,以下实例中前面两个子元素只设置了它们所需要的空间,最后一个获取剩余空间。flex-shrink-1
用于设置子元素的收缩规则order
类可以设置弹性子元素的排序,从 .order-1 到 .order-12
,数字越低权重越高( .order-1
排在 .order-2
之前),若要在最前面或者最后面使用 .order-first/.order-last
。mr-auto
类可以设置子元素右外边距为 auto=margin-right: auto!important;
ml-auto
类可以设置子元素左外边距为 auto=margin-left: auto!important;
弹性容器中包裹子元素可以使用以下三个类:.flex-nowrap (默认), .flex-wrap 或 .flex-wrap-reverse
。设置 flex 容器是单行或者多行。 align-items-*
设置单行的子元素对齐。*
包含的值有:.align-items-start, .align-items-end, .align-items-center, .align-items-baseline, 和 .align-items-stretch (默认)
。align-self-*
设置指定子元素对齐对齐。*
包含的值有:.align-self-start, .align-self-end, .align-self-center, .align-self-baseline, 和 .align-self-stretch (默认)
。Flex类作用介绍 类名 作用 d-*-flex
根据不同的荧幕设备创建弹性盒子容器 d-*-inline-flex
根据不同的荧幕设备创建行内弹性盒子容器 flex-*-row
根据不同的荧幕设备在水平方向显示弹性子元素 flex-*-row-reverse
根据不同的荧幕设备在水平方向显示弹性子元素且右对齐 flex-*-column
根据不同的荧幕设备在垂直方向显示弹性子元素 flex-*-column-reverse
根据不同的荧幕设备在垂直方向显示弹性子元素且方向相反 justify-content-*-start
根据不同荧幕设备在开始位置显示弹性子元素 (左对齐) justify-content-*-end
根据不同荧幕设备在尾部显示弹性子元素 (右对齐) justify-content-*-center
根据不同荧幕设备在 flex 容器中居中显示子元素 justify-content-*-between
根据不同荧幕设备使用 “between” 显示弹性子元素 justify-content-*-around
根据不同荧幕设备使用 “around” 显示弹性子元素 flex-*-fill
根据不同的荧幕设备强制等宽 flex-*-grow-0
不同的荧幕设备不设置扩展 flex-*-grow-1
不同的荧幕设备设置扩展 flex-*-shrink-0
不同的荧幕设备不设置收缩 flex-*-shrink-1
不同的荧幕设备设置收缩 flex-*-nowrap
不同的荧幕设备不设置包裹元素 flex-*-nowrap
不同的荧幕设备不设置包裹元素 flex-*-wrap
不同的荧幕设备设置包裹元素 flex-*-wrap-reverse
不同的荧幕设备反转包裹元素 align-content-*-start
根据不同荧幕设备在起始位置堆叠元素 align-content-*-end
根据不同荧幕设备在结束位置堆叠元素 align-content-*-center
根据不同荧幕设备在中间位置堆叠元素 align-content-*-around
根据不同荧幕设备,使用 “around” 堆叠元素。 align-content-*-stretch
根据不同荧幕设备,通过伸展元素来堆叠。 align-items-*-start
根据不同荧幕设备,让元素在头部显示在同一行。 align-items-*-end
根据不同荧幕设备,让元素在尾部显示在同一行。 align-items-*-center
根据不同荧幕设备,让元素在中间位置显示在同一行。 align-items-*-baseline
根据不同荧幕设备,让元素在基线上显示在同一行。 align-items-*-stretch
根据不同荧幕设备,让元素延展高度并显示在同一行。
文字排版 1 2 3 <h1 class ="display-1" > 标题可以输出更大更粗的字体样式</h1 > <div class ="font-weight-bold" > 加粗文本</div > <div class ="text-right" > 右对齐</div >
默认设置 Bootstrap(4.x) 默认的 font-size 为 16px, line-height 为 1.5
。 默认的 font-family
为 "Helvetica Neue", Helvetica, Arial, sans-serif
。 此外,所有的 <p>
元素 margin-top: 0 、 margin-bottom: 1rem (16px)
。 标签及类名 标签 类名 作用 h1 / 1级标题(2.5rem = 40px)
h2 / 2级标题(2rem = 32px)
h3 / 3级标题(1.75rem = 28px)
h4 / 4级标题(1.5rem = 24px)
h5 / 5级标题(1.25rem = 20px)
h6 / 6级标题(1rem = 16px)
/ .display-1 使用在h1-h6标签使标题字体更大更粗 / .display-2 使用在h1-h6标签使标题字体更大更粗 / .display-3 使用在h1-h6标签使标题字体更大更粗 / .display-4 使用在h1-h6标签使标题字体更大更粗 small / 创建字体更小颜色更淡的字体 mark / 用来高亮字体 abbr / 用来使引用更加明显 dl/dt/dd / 创建不同样式的列表 code / 创建代码块 / .font-weight-bold 加粗文本 / .font-weight-normal 普通文本 / .font-weight-light 更细的文本 / .font-italic 斜体文本 / .lead 让段落更突出 / .small 指定更小文本 (为父元素的 85% ) / .text-left 左对齐 / .text-center 居中 / .text-right 右对齐 / .text-justify 设定文本对齐,段落中超出荧幕部分文字自动换行。 / .text-nowrap 段落中超出荧幕部分不换行 / .text-lowercase 设定文本小写 / .text-capitalize 设定单词首字母大写 / .initialism 显示在 <abbr>
元素中的文本以小号字体展示,且可以将小写字母转换为大写字母。 / .list-unstyled 移除预设的清单样式,清单项中左对齐 ( <ul>
和 <ol>
中)。 这个类仅适用于直接子列表项 (如果需要移除嵌套的清单项,你需要在嵌套的清单中使用该样式) / .list-inline 将所有列表项放置同一行 / .pre-scrollable 使 <pre>
元素可滚动,代码块区域最大高度为340px
,一旦超出这个高度,就会在Y轴出现卷轴。
颜色 1 2 3 <p class ="text-success" > 执行成功的文本</p > <a href ="#" class ="text-warning" > 警告链接</a > <p class ="bg-dark text-white" > 深灰背景颜色</p >
文字颜色 类名 作用 text-muted
柔和的文本 text-primary
重要的文本 text-success
执行成功的文本 text-info
代表一些提示信息的文本 text-warning
警告文本 text-danger
危险操作文本 text-secondary
副标题 text-dark
深灰色文字 text-light
浅灰色文本(白色背景上看不清楚) text-white
白色文本(白色背景上看不清楚)
背景颜色 类名 作用 bg-primary
重要的背景颜色 bg-success
执行成功背景颜色 bg-info
信息提示背景颜色 bg-warning
警告背景颜色 bg-danger
危险背景颜色 bg-secondary
副标题背景颜色 bg-dark
深灰背景颜色 bg-light
浅灰背景颜色
表格 基本使用 1 <table class ="table table-striped table-dark" > </table >
类名 作用 table
基础表格 table-striped
条纹表格 table-bordered
带边框表格 table-hover
鼠标悬停状态表格 table-dark
黑色背景表格
颜色类 类名 作用 table-primary
蓝色: 指定这是一个重要的操作 table-success
绿色: 指定这是一个允许执行的操作 table-danger
红色: 指定这是可以危险的操作 table-info
浅蓝色: 表示内容已变更 table-warning
橘色: 表示需要注意的操作 table-active
灰色: 用于鼠标悬停效果 table-secondary
灰色: 表示内容不怎么重要 table-light
浅灰色,可以是表格行的背景 table-dark
可以是表格行的背景
其他类 类名 作用 thead-inverse
给表头添加黑色背景 thead-default
给表头添加灰色背景 table-sm
通过减少内边距来设置较小的表格 table-responsive
创建回应式表格:在荧幕宽度 小于 992px
时会创建水平卷轴, 如果可视区域宽度 大于 992px
则显示不同效果(没有卷轴)。 table-responsive-sm
< 576px
荧幕宽度下显示卷轴table-responsive-md
< 768px
荧幕宽度下显示卷轴table-responsive-lg
< 992px
荧幕宽度下显示卷轴table-responsive-xl
< 1200px
荧幕宽度下显示卷轴
图像形状 1 2 <img src ="test.jpg" class ="rounded" alt ="Cinque Terre" > //圆角<img src ="test.jpg" class ="img-thumbnail" alt ="Cinque Terre" > //缩略图
类名 作用 rounded
让图片显示圆角效果 rounded-circle
设置椭圆形图片 img-thumbnail
设置图片缩略图(图片有边框) float-right
设置图片右对齐 float-left
设置图片左对齐 img-fluid
设置回应式图片
组件 霸屏(Jumbotron) 1 2 3 4 <div class ="jumbotron" > <h1 > 内容A</h1 > <p > 内容内容内容内容内容内容</p > </div >
Jumbotron(霸屏)会创建一个大的灰色背景框,里面可以设置一些特殊的内容和信息。 Jumbotron 里头可以放一些 HTML标签,也可以是 Bootstrap 的元素。 可以通过在 <div>
元素 中添加 .jumbotron
类来创建 jumbotron。 如果想创建一个没有圆角的全荧幕,可以在 .jumbotron-fluid
类里头的 div添加 .container 或 .container-fluid
类来实现。 信息提示框(Alert) 1 2 3 4 <div class ="alert alert-success alert-dismissible" > <button type ="button" class ="close" data-dismiss ="alert" > × </button > <strong > 成功!</strong > </div >
提示框可以使用 .alert 类, 后面加上 .alert-success, .alert-info, .alert-warning, .alert-danger, .alert-primary, .alert-secondary, .alert-light 或 .alert-dark
类来实现。 提示框中在链接的标签上添加 alert-link
类来设置匹配提示框颜色的链接 可以在提示框中的 div 中添加 .alert-dismissible
类,然后在关闭按钮的链接上添加 class="close"
和 data-dismiss="alert"
类来设置提示框的关闭操作。 提示: × (×)
是 HTML 实体字符,来表示关闭操作,而不是字母 “x”。 提示框可以设置淡入淡出动画,各个版本使用参考官方文档。 基础按钮 btn类为基本按钮,一般是与其他类联合使用。
<button class="btn btn-primary">xxx</button>
类名 作用 btn
基本按钮 btn-primary
主要按钮 btn-secondary
次要按钮 btn-success
成功 btn-info
信息 btn-warning
警告 btn-danger
危险 btn-dark
黑色 btn-light
浅色 btn-link
链接 btn-lg
大号按钮 btn-sm
小号按钮 btn-block
块级按钮 active
设置按钮是可用的 disabled
设置按钮是不可点击的(注意 <a>
元素不支援 disabled 属性, 你可以通过添加 .disabled
类来禁止链接的点击)
其他 按钮类可用于 <a>, <button>, 或 <input>
元素上 可在btn-primary
类名内插入outline
为按钮设置边框比如:btn-outline-primary
。 1 2 3 4 5 <div class ="btn-group" > <button type ="button" class ="btn btn-primary" > Apple</button > <button type ="button" class ="btn btn-info" > Samsung</button > <button type ="button" class ="btn btn-dark" > Sony</button > </div >
可以在 <div>
元素上添加 .btn-group
类来创建按钮组。通过添加 .table-striped
类,将在 <tbody>
内的行上看到条纹> 可以使用 .btn-group-lg | sm
类来设置按钮组的大小 可以使用 .btn-group-vertical
类来创建垂直的按钮组 进度条(Progress) 创建一个基本的进度条的步骤 添加一个带有 .progress
类的 <div>
接着,在上面的 <div>
内,添加一个带有 class .progress-bar 的空的 <div>
。 添加一个带有百分比表示的宽度的 style 属性,例如 style=”width:70%” 表示进度条在 70% 的位置。 其他 1 2 3 <div class ="progress" > <div class ="progress-bar" style ="width:70%" > </div > </div >
进度条高度预设为 16px
。我们可以使用 CSS 的 height 属性来修改他 可以在进度条内添加文本,如进度的百分比 默认情况下进度条为蓝色,可以使用:bg-success、bg-info、bg-warning、bg-danger
类调整进度条颜色 可以使用 .progress-bar-striped
类来设置条纹进度条 使用 .progress-bar-animated
类可以为进度条添加动画 1 2 3 4 5 6 7 <ul class ="pagination" > <li class ="page-item" > <a class ="page-link" href ="#" > Previous</a > </li > <li class ="page-item" > <a class ="page-link" href ="#" > 1</a > </li > <li class ="page-item active" > <a class ="page-link" href ="#" > 2</a > </li > <li class ="page-item" > <a class ="page-link" href ="#" > 3</a > </li > <li class ="page-item" > <a class ="page-link" href ="#" > Next</a > </li > </ul >
在ul标签使用 pagination
类,并在其下的 li
标签内使用 page-item
类创建分页 当前页可以使用 .active
类来高亮显示 disabled
类可以设置分页链接不可点击可以将分页条目设置为不同的大小 .pagination-lg
类设置大字体的分页条目,.pagination-sm
类设置小字体的分页条目:后在 <li>
元素上添加 .page-item 类breadcrumb 和 .breadcrumb-item 类用于设置面包屑导航 列表组(List-group) 1 2 3 4 5 <ul class ="list-group" > <li class ="list-group-item" > First item</li > <li class ="list-group-item" > Second item</li > <li class ="list-group-item" > Third item</li > </ul >
大部分基础列表组都是无序的 要创建列表组,可以在 <ul>
元素上添加 .list-group
类, 在 <li>
元素上添加 .list-group-item
类。 通过添加 .active
类来设置启动状态的清单项 .disabled
类用于设置禁用的列表项要创建一个链接的清单项,可以将 <ul>
替换为 <div>
, <a>
替换 <li>
。如果你想鼠标悬停显示灰色背景就添加.list-group-item-action 类。 列表项目的颜色可以通过以下列来设置 类名 作用 list-group-item-success
成功列表项 list-group-item-secondary
次要列表项 list-group-item-info
信息清单项 list-group-item-warning
警告列表项 list-group-item-danger
危险列表项 list-group-item-primary
主要列表项 list-group-item-dark
深灰色列表项 list-group-item-light
浅色列表项
卡片(Card) 基础卡片 1 2 3 <div class ="card" > <div class ="card-body" > 简单的卡片</div > </div >
可以通过 Bootstrap4 的 .card
与 .card-body
类来创建一个简单的卡片 Bootstrap4 的卡片类似 Bootstrap 3 中的面板、图片缩略图、well .card-header
类用于创建卡片的头部样式,.card-footer
类用于创建卡片的底部样式。可以使用 bg-primary, bg-success, bg-info, bg-warning, bg-danger, bg-secondary, bg-dark 和 bg-light
类来改变卡片的背景颜色 可以在头部元素上使用 .card-title
类来设置卡片的标题 。 .card-text
类用于设置卡片正文的内容。 .card-link
类用于给链接设置颜色。 我们可以给 <img>
添加 .card-img-top(图片在文字上方)
或 .card-img-bottom
如果图片要设置为背景,可以使用 .card-img-overlay
类。 卡片组(Card-group) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <div class ="card-group" > <div class ="card" > <img src ="..." class ="card-img-top" alt ="..." > <div class ="card-body" > <h5 class ="card-title" > Card title</h5 > <p class ="card-text" > <small class ="text-muted" > Last updated 3 mins ago</small > </p > </div > <div class ="card-footer" > <small class ="text-muted" > Last updated 3 mins ago</small > </div > </div > <div class ="card" > <img src ="..." class ="card-img-top" alt ="..." > <div class ="card-body" > <h5 class ="card-title" > Card title</h5 > <p class ="card-text" > <small class ="text-muted" > Last updated 3 mins ago</small > </p > </div > <div class ="card-footer" > <small class ="text-muted" > Last updated 3 mins ago</small > </div > </div > <div class ="card" > <img src ="..." class ="card-img-top" alt ="..." > <div class ="card-body" > <h5 class ="card-title" > Card title</h5 > <p class ="card-text" > <small class ="text-muted" > Last updated 3 mins ago</small > </p > </div > <div class ="card-footer" > <small class ="text-muted" > Last updated 3 mins ago</small > </div > </div > </div >
使用卡片群组将一系列卡片呈现为具有等宽、高栏位的单一、链接元素。卡片群组由堆叠开始,并透过 display: flex;
从 sm
的断点后开始以统一的尺寸相连接。 当在卡片群组使用页尾,它们的内容将会自动对齐。 吐司(Toasts) HTML部份 1 2 3 4 5 6 7 8 9 10 11 <div class ="toast" role ="alert" aria-live ="assertive" aria-atomic ="true" > <div class ="toast-header" > <img src ="..." class ="rounded" alt ="..." > <strong class ="me-auto" > Bootstrap</strong > <small > 11 mins ago</small > <button type ="button" class ="btn-close" data-bs-dismiss ="toast" aria-label ="Close" > </button > </div > <div class ="toast-body" > Hello, world! This is a toast message. </div > </div >
吐司是轻量级通知,目的在于模仿行动版和桌面版作业系统的推播通知。它们是用 flexbox
构建的,因此很容易对齐和定位。 出于效能原因吐司是选择性加入的,所以您必须自己将它们初始化。 如果你没有指定 autohide: false
,吐司会自动隐藏。 可以透过将吐司包装于 <div class="toast-container"/><div>
来推叠它们,这将会在垂直方向上增加一些间距。 可以透过移除子元件、调整通用类别、增加组件或是增加标记以自定义吐司 根据需求,使用自定义的 CSS 指定吐司位置。右上角通常用于通知,顶部的中间也是如此。如果一次只要展示一个吐司,请将定位样式放在 .toast
上。 当使用 autohide: false
时,必须增加一个关闭的按钮,让用户可以关闭吐司。 JS部份 1 2 3 4 var toastElList = [].slice .call (document .querySelectorAll ('.toast' ));var toastList = toastElList.map (function (toastEl ) { return new bootstrap.Toast (toastEl, option); });
展示一个元素的吐司。在吐司实际被展示前回传给调用者 (即在 shown.bs.toast
事件发生前)。 你必须手动调用此方法,否则吐司不会被展示。toast.show()
隐藏吐司的元素。 在吐司元素实际隐藏之前 (即在 hidden.bs.toast
事件发生之前) 回传给调用者。如果让 autohide = false
,你必须手动调用这个方法。toast.hide()
隐藏一个元素的吐司。您的吐司元件将保留在 DOM 上,但不会再显示。toast.dispose()
事件类型 描述 show.bs.toast
当调用 show 方法时,此事件会立即触发。 hown.bs.toast
当用户可看见吐司元素时,会触发此事件。 hide.bs.toast
当调用 hide 方法时,此事件会立即触发。 hidden.bs.toast
当隐藏了一个吐司元素时,会触发此事件。
1 2 3 4 var myToastEl = document .getElementById ('myToast' );myToastEl.addEventListener ('hidden.bs.toast' , function ( ) { });
手风琴(Accordion) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <div class ="accordion" id ="accordionExample" > <div class ="accordion-item" > <h2 class ="accordion-header" id ="headingOne" > <button class ="accordion-button" type ="button" data-bs-toggle ="collapse" data-bs-target ="#collapseOne" aria-expanded ="true" aria-controls ="collapseOne" > Accordion Item #1 </button > </h2 > <div id ="collapseOne" class ="accordion-collapse collapse show" aria-labelledby ="headingOne" data-bs-parent ="#accordionExample" > <div class ="accordion-body" > <strong > This is the first item's accordion body. </div > </div > </div > <div class ="accordion-item" > <h2 class ="accordion-header" id ="headingTwo" > <button class ="accordion-button collapsed" type ="button" data-bs-toggle ="collapse" data-bs-target ="#collapseTwo" aria-expanded ="false" aria-controls ="collapseTwo" > Accordion Item #2 </button > </h2 > <div id ="collapseTwo" class ="accordion-collapse collapse" aria-labelledby ="headingTwo" data-bs-parent ="#accordionExample" > <div class ="accordion-body" > <strong > This is the second item's accordion body. </div > </div > </div > <div class ="accordion-item" > <h2 class ="accordion-header" id ="headingThree" > <button class ="accordion-button collapsed" type ="button" data-bs-toggle ="collapse" data-bs-target ="#collapseThree" aria-expanded ="false" aria-controls ="collapseThree" > Accordion Item #3 </button > </h2 > <div id ="collapseThree" class ="accordion-collapse collapse" aria-labelledby ="headingThree" data-bs-parent ="#accordionExample" > <div class ="accordion-body" > <strong > This is the third item's accordion body. </div > </div > </div > </div >
手风琴使用折叠使他可以做到折叠效果。要呈现展开的效果,请在 .accordion 加上 .open
类别。 加上 .accordion-flush
来移除预设 background-color
、 外框和圆角使该手风琴能和父容器紧邻。 标签(Badge) 1 2 3 4 5 6 <h1 > Example heading <span class ="badge bg-secondary" > New</span > </h1 > <button type ="button" class ="btn btn-primary" > Notifications <span class ="badge bg-secondary" > 4</span > </button > <span class ="badge bg-primary" > Primary</span > <span class ="badge rounded-pill bg-primary" > Primary</span >
标签通过相对字体大小和 em 单位
来缩放以符合直属父元素的大小。在 v5 版本
中的标签链接不再拥有 focus 或 hover
样式。 标签可以作为链接或按钮的一部分,用于计数器。 使用背景通用类别来快速修改标签的外观。请注意当使用 Bootstrap 预设的 .bg-light
时,你会需要一个适当的文字色彩,例如 .text-dark
。这是因为背景通用类别只有 ackground-color
的设定。 使用 .rounded-pill
通用类别可以透过 border-radius
使标签增加圆角。 轮播(Carousel) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <div id ="carouselExampleCaptions" class ="carousel slide" data-bs-ride ="carousel" > <ol class ="carousel-indicators" > <li data-bs-target ="#carouselExampleCaptions" data-bs-slide-to ="0" class ="active" > </li > <li data-bs-target ="#carouselExampleCaptions" data-bs-slide-to ="1" > </li > <li data-bs-target ="#carouselExampleCaptions" data-bs-slide-to ="2" > </li > </ol > <div class ="carousel-inner" > <div class ="carousel-item active" > <img src ="..." class ="d-block w-100" alt ="..." > <div class ="carousel-caption d-none d-md-block" > <h5 > First slide label</h5 > <p > Nulla vitae elit libero, a pharetra augue mollis interdum.</p > </div > </div > <div class ="carousel-item" > <img src ="..." class ="d-block w-100" alt ="..." > <div class ="carousel-caption d-none d-md-block" > <h5 > Second slide label</h5 > <p > Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p > </div > </div > <div class ="carousel-item" > <img src ="..." class ="d-block w-100" alt ="..." > <div class ="carousel-caption d-none d-md-block" > <h5 > Third slide label</h5 > <p > Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p > </div > </div > </div > <a class ="carousel-control-prev" href ="#carouselExampleCaptions" role ="button" data-bs-slide ="prev" > <span class ="carousel-control-prev-icon" aria-hidden ="true" > </span > <span class ="visually-hidden" > Previous</span > </a > <a class ="carousel-control-next" href ="#carouselExampleCaptions" role ="button" data-bs-slide ="next" > <span class ="carousel-control-next-icon" aria-hidden ="true" > </span > <span class ="visually-hidden" > Next</span > </a > </div >
轮播是一个用于循环显示一系列内容的幻灯片,由 CSS 的 3D transform 以及一些 JavaScript 建构而成。它适用于一系列图片、文本或自定义的标记,并包括对上一个 /下一个控制项和指示器的支援。 在支持 Page Visibility API 的浏览器中,当网页对用户不可见时,轮播将避免滑动(例如浏览器分页不是启用状态、浏览器视窗最小化时等)。 需要将 .active
添加到其中一个轮播元素上,否则轮播将不可见。另外一定要在 .carousel
上为控制项元件设置一个唯一的 id,特别是当你在一个页面上使用多个轮播的时候。控制项和指示器元素必须具有与 .carousel
元素的 id 符合的 data-bs-target
属性 (或是链接的 href)。 将 .carousel-fade
加到轮播中,以使用淡入淡出的取代滑动的动画效果。 在 .carousel-item
上添加 data-bs-interval=""
以更改自动循环至下一个项目的延迟时间。 在 .carousel
上添加 .carousel-dark
以获得暗色系的控制项、指示器及字幕。控制项已透过 CSS 属性 filter 从它们预设的白色充填反转。字幕与控制项具有用来自定义 color 及 background-color
的额外 Sass 变量。 1 2 var myCarousel = document .querySelector ('#myCarousel' );var carousel = new bootstrap.Carousel (myCarousel);
可以透过资料属性或 JavaScript 调整选项。对于资料属性,将选项名称附加到 data-bs-
,如 data-bs-interval=""
。 名字 类型 默认值 说明 interval number 5000 在一个自动循环的轮播中,项目之间所延迟的时间。 如果为 false,轮播不会自动重播。 keyboard boolean true 轮播是否应该回应键盘事件 pause string 或 boolean “hover” 如果设定为 "hover"
, 轮播会因为 mouseenter
而暂停﹑并在 mouseleave
之时再度执行。如果设定为false,滑入时将不会停止轮播。当在触控装置上设定为 "hover"
,则在重播恢复之前,轮播将会停止于 touchend (直到用户完成与轮播的互动)
。请注意,这是上述鼠标行为的扩充。 slide string 或 boolean false 当用户手动循环第一个元件之后,轮播将自动循环。如果为 “轮播”, 则在载入后自动播放。 wrap boolean true 轮播是否应该连续循环,或是会停止。 touch boolean true 在触控装置上轮播是否支持向左/向右的交互滑动。
可以使用轮播建构函式来建立一个范例。如下例,使用额外的选项初始化,并让项目开始循环。
1 2 3 4 5 var myCarousel = document .querySelector ('#myCarousel' );var carousel = new bootstrap.Carousel (myCarousel, { interval : 2000 , wrap : false });
方法 说明 cycle
由左至右循环播放 pause
将对象的循环从轮播中停止。 prev
将轮播指向前一个对象。 在前一个对象显示前回传给调用者 (e.g., 在 slid.bs.carousel 事件发生之前)。 next
将轮播指向下一个对象。 在后一个对象显示前回传给调用者 (e.g., 在 slid.bs.carousel 事件发生之前)。 nextWhenVisible
如果页面或是其父层不可见,就停止将轮播循环到下一个。在目标项目显示前回传给调用者。 to
将轮播指向特定的索引。(与数组相同,从 0 开始). 在目标项目显示前回传给调用者 (e.g., 在 slid.bs.carousel 事件发生之前)。 dispose
销毁一个元素的轮播。 (移除 DOM 元素上储存的资料) getInstance
允许你取得与 DOM 元素关联之轮播范例的静态方法。
事件类型 说明 slide.bs.carousel
当调用 slide 方法时,此事件会立即触发。 slid.bs.carousel
轮播完成切换后,此事件就被触发。
读取图示(Spinners) 1 2 3 <div class ="spinner-border" role ="status" > <span class ="visually-hidden" > Loading...</span > </div >
The border 读取图示使用 currentColor 来当作它的 border-color,这代表你可以使用 文字颜色通用类别 来自定义它的颜色。你可以在标准的读取图示上使用任何通用类别中的颜色。 如果你不喜欢 border 读取图示,可以切换到渐变读取图示。虽然技术上来说,它不会旋转,但它会反覆渐变显示! 1 2 3 <div class ="spinner-grow" role ="status" > <span class ="visually-hidden" > Loading...</span > </div >
在 Bootstrap 中的读取图示是用 rem, currentColor 和 display: inline-flex
。这意味着它们可以轻易地调整大小、颜色以及快速对齐。 使用 margin utilities
像是 .m-5
简单地增加间隔。 使用 flexbox
通用类别、float
通用类别,或是 文字排版 在任何情况下都可以将读取图示精确地放置在您需要的位置上。 增加 .spinner-border-sm
和 .spinner-grow-sm
制作一个较小的读取图示,让它可以在其他元件中快速地被使用。 在按钮内使用读取图示是表示当前正在处理或正在进行操作。您也可以依照需求使用 button text 来更换读取图示的文字。 下拉菜单(Dropdowns) 1 2 3 4 5 6 7 8 9 10 <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 >
dropdown 类用来指定一个下拉式功能表 使用一个按钮或链接来打开下拉式功能表,按钮或链接需要添加 .dropdown-toggle
和 data-toggle="dropdown"
属性。 <div>
元素上添加 .dropdown-menu
类来设置实际下拉式功能表,然后在下拉式功能表的选项中添加 .dropdown-item
类。可以在 <a>
标签中使用 dropdown-divider
类用于在下拉式功能表中创建一个水平的分割线dropdown-header
类用于在下拉式功能表中添加标题active
类会让下拉式功能表的选项高亮显示 (添加蓝色背景)要禁用下拉式功能表的选项,可以使用 .disabled
类。 在元素上的 .dropdown-menu
类后添加 .dropdown-menu-right
类,使下拉式功能表右对齐。 dropright
类,下拉式功能表向右弹出。dropup
类,上拉功能表向上弹出。dropleft
类,下拉式功能表向上弹出。折叠(Collapse) 1 2 3 4 <button data-toggle ="collapse" data-target ="#demo" > 折叠</button > <div id ="demo" class ="collapse" > text.... </div >
collapse 类用于指定一个折叠元素,点击按钮后会在隐藏与显示之间切换。控制内容的隐藏与显示,需要在 <a>
或 <button>
元素上添加 data-toggle="collapse"
属性。 data-target="#id"
属性是对应折叠的内容 (<div id="demo">
)。 <a>
元素上你可以使用 href 属性来代替 data-target
属性。默认情况下折叠的内容是隐藏的,你可以添加 .show
类让内容预设显示。 导航(Navbar) 在父元素上添加nav
类,在子元素上添加nav-item
类,在链接上添加nav-link
类来创建导航。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <ul class ="nav" > <li class ="nav-item" > <a class ="nav-link" href ="#" > Link</a > </li > <li class ="nav-item" > <a class ="nav-link" href ="#" > Link</a > </li > <li class ="nav-item" > <a class ="nav-link" href ="#" > Link</a > </li > <li class ="nav-item" > <a class ="nav-link disabled" href ="#" > Disabled</a > </li > </ul >
类名 作用 justify-content-center
类设置导航居中显示 justify-content-end
类设置导航右对齐 flex-column
垂直导航 nav-tabs
将导航转化为选项卡 active
标记导航卡中当前选中选项 nav-pills
将导航项设置成胶囊形状 nav-justified
设置导航项齐行等宽显示
表单元素 <input>
, <textarea>
, 和 <select>
elements 在使用 .form-control 类的情况下,宽度都是设置为 100%。
内联表单需要在 <form>
元素上添加 .form-inline
类 所有内联表单中的元素都是左对齐的 在荧幕宽度 小于 576px
时为垂直堆叠,如果荧幕宽度 大于等于 576px
时表单元素才会显示在同一个水平线上。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <form > <div class ="input-group mb-3" > <div class ="input-group-prepend" > <span class ="input-group-text" > @</span > </div > <input type ="text" class ="form-control" placeholder ="Username" > </div > <div class ="input-group mb-3" > <input type ="text" class ="form-control" placeholder ="Your Email" > <div class ="input-group-append" > <span class ="input-group-text" > @runoob.com</span > </div > </div > </form >
类名 作用 input-group
用来向表单输入框中添加更多的样式 input-group-prepend
可以在输入框的的前面添加文本信息 input-group-append
在输入框的后面添加文本信息 input-group-text
来设置文本的样式
1 <a href ="#" data-toggle ="tooltip" title ="我是提示内容!" > 鼠标移动到我这</a >
提示框是一个小小的弹窗,在鼠标移动到元素上显示,鼠标移到元素外就消失。
通过向元素添加 data-toggle=”tooltip” 来来创建提示框。 title 属性的内容为提示框显示的内容 提示框要写在 jQuery 的初始化代码里: 然后在指定的元素上调用 tooltip()
方法。 预设情况下提示框显示在元素上方 使用 data-placement
属性来设定提示框显示的方向: top, bottom, left 或 right
。 模态框(Modal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <button type ="button" class ="btn btn-primary" data-toggle ="modal" data-target ="#myModal" > 打开模态框 </button > <div class ="modal fade" id ="myModal" > <div class ="modal-dialog" > <div class ="modal-content" > <div class ="modal-header" > <h4 class ="modal-title" > 模态框头部</h4 > <button type ="button" class ="close" data-dismiss ="modal" > × </button > </div > <div class ="modal-body" > 模态框内容.. </div > <div class ="modal-footer" > <button type ="button" class ="btn btn-secondary" data-dismiss ="modal" > 关闭</button > </div > </div > </div > </div >
弹出框(Popover) 弹出框控制项类似于提示框,它在鼠标点击到元素后显示,与提示框不同的是它可以显示更多的内容。
1 2 3 4 <a href ="#" title ="Header" data-toggle ="popover" data-placement ="top" data-content ="Content" > 点我</a > <a href ="#" title ="Header" data-toggle ="popover" data-placement ="bottom" data-content ="Content" > 点我</a > <a href ="#" title ="Header" data-toggle ="popover" data-placement ="left" data-content ="Content" > 点我</a > <a href ="#" title ="Header" data-toggle ="popover" data-placement ="right" data-content ="Content" > 点我</a >
向元素添加 data-toggle="popover"
来创建弹出框。 title 属性的内容为弹出框的标题,data-content
属性显示了弹出框的文本内容。 预设情况下弹出框显示在元素右侧 可以使用 data-placemen
t 属性来设定弹出框显示的方向: top, bottom, left 或 right
。 预设情况下,弹出框在再次点击指定元素后就会关闭,你可以使用 data-trigger="focus"
属性来设置在鼠标点击元素外部区域来关闭弹出框。 如果你想实现在鼠标移动到元素上显示,移除后消失的效果,可以使用 data-trigger
属性,并设置值为 "hover"
。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <body data-spy ="scroll" data-target ="navbar" data-offset ="50" > <nav class ="navbar navbar-expand-sm bg-dark navbar-dark fixed-top" > <ul class ="navbar-nav" > <li > <a href ="#section1" > Section 1</a > </li > </nav > <div id ="section1" > <h1 > Section 1</h1 > <p > Try to scroll this page and look at the navigation bar while scrolling!</p > </div > </body >
向想要监听的元素(通常是 body)添加 data-spy="scroll"
。 然后添加 data-target
属性,它的值为巡览列的 id 或 class (.navbar)
。这样就可以联系上可滚动区域。 注意可滚动项元素上的 id (<div id="section1">
) 必须匹配巡览列上的链接选项 (<a href="#section1">
)。 可选项 data-offset
属性用于计算滚动位置时,距离顶部的偏移图元。 默认为 10px
。 设置相对定位: 使用 data-spy="scroll"
的元素需要将其 CSS position 属性设置为 "relative"
才能起作用。 其他小工具 类名 作用 border
添加边框 border border-0
去除边框 border border-top-0
添加边框并去除上方边框 border border-right-0
添加边框并去除右方边框 border border-bottom-0
添加边框并去除左方边框 border border-left-0
添加边框并去除右方边框 border border-primary
重要的颜色的边框 border border-secondary
加粗的边框 border border-success
执行成功的颜色的边框 border border-danger
危险的颜色的边框 border border-warning
警告的颜色的边框 border border-info
提示信息的颜色的边框 border border-light
浅灰色边框 border border-dark
深灰色边框 border border-white
白色边框 rounded
添加圆角边框(需配合以上border使用,下同。) rounded-top
上方两个角添加圆角 rounded-right
右方两个角添加圆角 rounded-bottom
下方两个角添加圆角 rounded-left
左方两个角添加圆角 rounded-circle
椭圆形边框 rounded-0
去除圆角 float-right
设置元素右浮动 float-left
设置元素左浮动 clearfix
用于清除浮动 mx-auto
设置居中对齐 my-auto
上下margin m-* .p-*
四周margin/padding w-* (.w-25, .w-50, .w-75, .w-100, .mw-100)
设置宽度 h-* (.h-25, .h-50, .h-75, .h-100, .mh-100)
设置高度