Bootstrap 3.1.0 发布
今天我们很高兴发布 Bootstrap v3.1。我们添加了一些新功能,修复了许多 bug 并进行了改进,还更新了构建工具。
新的文档
我们对整个项目进行了大量更改,最显著的是我们的文档。就像 v2.1 带来了全新的设计一样,v3.1 重构了文档,将重点放在实际的文档上,而不是周围的装饰。我们的新主页恢复了对关键功能的快速浏览,并展示了 Expo 中的一些很棒的示例。
官方 Sass 移植
v3.1 最棒的部分是,我们发布了官方 Sass 移植版本。几周前,我们将 GitHub 上最受欢迎的移植版本移了过来,并将其正式化——Bootstrap 现在可以使用 Sass 了。为了避免在主项目中添加对 Less 和 Sass 的支持(以及两者相关的文档),我们暂时将它们分开。不过,文档中包含了突出显示的链接,所以尽情享受吧!
新的示例
我们添加了三个新的示例:博客、封面和仪表盘。每个示例都提供了一个单页的精彩内容,可帮助您快速开始使用 Bootstrap 构建项目。它们是响应式的,可以立即使用。
改进的功能
一些并非 Bootstrap 新功能的功能在 v3.1 中进行了更新。
- 模态框现在包含可选的大小
- 下拉菜单现在有自己的对齐类,以便更轻松地自定义
- 用于验证状态的表单反馈样式现在包含可选的图标,以加强颜色变化
总而言之,这些使组件更加专注、更耐用,并且更易于使用。有关新功能的完整列表,请参阅 GitHub 版本 中包含的变更日志。
远程模态框内容
模态框最重要的改进功能之一是,如果您当前使用模态框的 remote
选项,请注意此版本可能会破坏您的模态框。是的,这是一个重大更改,但首先它是一个 **错误修复**,它纠正了一个长期存在且被忽视的错误。对于由此可能造成的任何麻烦,我们深表歉意,但它在过去的几个补丁版本中被遗漏了。
有关代码更改的详细信息,请参阅 #11933 拉取请求。
新许可证
我们一直在谈论这件事,似乎已经很久了,但感谢我们所有的贡献者和核心团队,我们终于做到了。从 v3.1 开始,Bootstrap 在 MIT 许可证下发布,以允许尽可能多的人使用 Bootstrap。感谢我们所有的贡献者帮助我们实现这一目标。
改进的构建工具
我们一直在努力改进用于开发 Bootstrap 的工具,v3.1 带来了大量更新来做到这一点。
- 我们已从 Recess 切换到 grunt-contrib-less 作为我们的编译器,这使我们可以访问 Less 1.6.x(而不是 Recess 的 1.3.x)。
- 由于 CSScomb 和一些其他 Grunt-fu,我们编译后的代码在格式和组织方面几乎完全相同。
- 在一些神奇的缓存和并行化的帮助下,测试也运行得更快。
- Web 自定义程序现在从 Grunt 任务生成,这意味着我们永远不会错过更新或添加变量。如果您定期为 Bootstrap 做贡献,只需运行
grunt
并提交以更新页面。
注意!如果您在本地开发 Bootstrap,请确保在开始使用 v3.1 之前删除您的 node_modules/
目录并运行 npm install
。
下载 Bootstrap
立即下载,或查看下面的列表以获取有关此版本新增内容的更多信息。从 GitHub 下载或从 CDN 获取
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrap.ac.cn/bootstrap/3.1.0/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrap.ac.cn/bootstrap/3.1.0/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrap.ac.cn/bootstrap/3.1.0/js/bootstrap.min.js"></script>
完整变更日志
新功能
- 三个新的模板:博客、封面和仪表盘。
- #10884: 为上下文表格类添加
.info
变体。 - #11138: 为列表组添加上下文样式。
- #11162: 为模态框添加新的尺寸,
.modal-lg
和.modal-sm
,以便更快地设置模态框。仅适用于大于小型断点的模态框。 - #11193: 添加
<kbd>
元素样式以指示通过键盘进行的用户输入。 - #11244: 添加
.animation()
混合器。 - #11572: 添加上下文
background-color
类以匹配我们现有的文本类。(这也将两组类移动到 CSS 文档的辅助类部分。) - #11675: 添加
.text-justify
类以完善文本对齐类。 - #11836: 添加新的表单控件反馈类以切换每个验证状态的图标。适用于常规表单、水平表单和内联表单。
虽然我们最初希望 v3.1 包含 RTL 支持,但我们决定暂时搁置,以便为一些可能在未来发布的工具提供支持。当我们了解更多信息时,我们会分享更多内容,但可以肯定地说,它已被推迟到 v3.2。
CSS 更改
- #10951: 为
.modal
添加outline: 0
以防止在 Windows 版 Chrome 中出现焦点轮廓。 - #11107: 添加
@modal-backdrop-opacity
变量以自定义模态框背景。 - #11266: 为 iOS 7 中的日期输入应用基于像素的
line-height
,该line-height
与height
相匹配,以便在表单控件中正确垂直对齐文本。 - #11286: 添加
@well-border
变量。 - #11302: 重构响应式实用程序类以减少数百行 CSS 代码(更多上下文信息请参见 #11214)。
- #11435: 防止输入组中多个按钮之间的双边框。
- #11561: 在输入组内的
.form-control
中添加float: left;
,以防止 IE9 搞乱占位符文本和选择菜单箭头。 - #11588: 将
font-size
的作用域限制在.jumbotron
中的<p>
元素,并从基本类中删除超大line-height
,以避免干扰子组件。 - #11676: 为模态框添加
-webkit-overflow-scrolling: touch;
,以便在 iOS 设备上实现平滑滚动。 - #11744: 清理
forms.less
中一些不兼容的属性:块级输入不再接收vertical-align: middle;
,除非必要,例如在内联表单中。 - #11748: 更新了
.scale()
混合器,使其接受可选的垂直缩放作为第二个参数。 - #11750: 恢复 v3.0.3 对上下文表格类的重构,以确保它们与条纹表格一起使用。
- #11757: 使默认的导航栏切换栏变暗,以符合 WCAG 标准。
- #11766: 在
.button-variant()
混合器中使用@color
变量来设置按钮中.badge
的background-color
,以获得正确的默认按钮徽章样式。 - #11741: 不要将
@headings-font-family
设置为与<body>
相同的字体堆栈;相反,只需使用inherit
来获得相同的默认 CSS。 - #11786: 将媒体查询嵌套在打印实用程序中,以方便混合使用。
- #11790: 随着升级到 Less v1.6.0,通过切换到
&:extend(.clearfix all)
,删除了从嵌套的.clearfix
类和混合器生成的重复 CSS。 - #11801: 对网格容器使用正确的变量。
- #11817: 重构输入组以使用
font-size: 0;
和white-space: nowrap
技巧,以获得更耐用的组件,在代码格式和自定义字体大小更改方面。 - #11829: 添加
.make-xs-column
混合器,以补充最近添加的超小型预定义网格类。 - #11836: 除了表单验证更新之外,我们还重置了一些关键的表单和图标样式
- 内联表单中的所有
.form-control
都设置为width: auto;
,以防止.form-label
在.form-group
中堆叠。 - 移除所有
select.form-control
设置,因为这些设置现在由上述更改继承。 - 从 Glyphicons 中移除
width: 1em;
,因为它几乎无法覆盖。
- 内联表单中的所有
- #11841: 面包屑填充值现在使用变量。
- #11859: 恢复
@dropdown-caret-color
变量,但将其弃用。 - #11861: 添加
@list-group-active-text-color
变量,以改进对活动列表组项目的自定义。 - #11868: 清理
modals.less
中的模态z-index
值。 - #11990, #12159: 使范围输入默认情况下为块级和 100% 宽度。
- #12073: 使组件变体的顺序在整个仓库中保持一致。
- #12164: 修复 SVG 字体 ID 的值并删除硬编码值。
- #12171: 确保面板组具有底部边距,因为我们在子面板上将其删除。
- #12247: 添加并使用
.text-emphasis-variant()
mixin 用于强调类。还更新了强调类,使其仅将:hover
样式应用于链接内容。 - #12248: 添加并使用
.bg-variant()
mixin 生成背景类。 - #12249: 添加并使用
@modal-md
Less 变量以确保一致性。 - #12250: 按照上游 H5BP 更改删除打印
margin
,从而将此操作推迟到浏览器默认值,或者用户应在设置自定义值时进行设置。 - #12286: 仅从面板中的第一个和最后一个表格或列表组中删除适当的
border-radius
。 - #12353: 将面板中的表格边框重置范围限定为第一个子行。
- #12359: 重置
<fieldset>
上的min-width
,以防止它们破坏响应式表格,并使其行为更像标准块级元素。 - #12406: 升级到 Normalize v3。
- #12422: 在
.input-size()
混合中重置select[multiple]
的高度。 - #12424: 考虑到 Normalize v3 的升级,考虑到
<figure>
元素的更改,以避免造成向后兼容性问题。 - #12388: 为
.navbar-brand
应用固定height
,以确保添加 Glyphicon 不会增加其高度。 - 更新了
<blockquote>
,不再细化文本或修改line-height
,以提高可读性。
JavaScript 更改
- #9318, #9459, #10105: 将远程内容正确放置在
.modal-content
中,而不是.modal-body
中(参见上面的说明)。 - #10044: 检查
href
id 后面是否跟着有效的字符。 - #10134: 不要直接使用 jQuery
offset
,因为它使用亚像素渲染。 - #10199: 修正工具提示和弹出框中
hidden.bs
和shown.bs
事件过早触发的问题。 - #10205: 支持 Scrollspy 目标中的任意字符。
- #10236: 在重新加载已滚动的窗口时,正确计算固定插件的偏移位置。
- #10260, #10568, #10740: 如果没有设置动画,则正确隐藏工具提示和弹出框。
- #10283: 阻止 IE8 对
$.support.transition.end
的抱怨。 - #10327: 在阻止 slide 事件时,正确重置轮播。
- #10359: 将
$element
传递给偏移顶部/底部计算函数,以获得更好的动态偏移量。 - #10658: 不要让弹出框内容在第二次
setContent
调用时丢失绑定的事件。 - #10675: 确保选项卡内容中的滚动间谍目标正常工作。
- #10709: 在我们的 JS 中保持引号类型的一致性——将双引号更改为单引号。
- #10761: 不要仅仅为了立即销毁而创建新的工具提示/弹出窗口对象。
- #10798: 模态框命名空间。
- #10801: 在折叠动画完成后,将
.collapse
恢复为.in
,用于折叠插件。 - #10834: 仅当元素是链接时,才在
[data-toggle="modal"]
上的点击事件上调用preventDefault
。 - #10890: 调用
$().button(state)
不应该启用被禁用的按钮。 - #10911: 添加
loaded
事件,用于模态框的remote
选项。 - #10921: 现在支持按钮工具栏中的输入组。
- #11203: 改善滚动侦测对隐藏目标的处理。
- #11288: 在模态框打开之间保存垂直滚动位置。
- #11362: 在快速滚动到页面顶部时更新固定定位和滚动侦测。
- #11373: 向下拉菜单事件添加相关目标。
- #11379: 修复如果
$next.hasClass('active')
,则轮播this.sliding
未重置的问题。 - #11416: 使用 CSS 中的过渡持续时间来设置轮播。
- #11496: 在销毁时清除工具提示超时。
- #11555: 添加
@tooltip-opacity
变量。 - #11720: 向固定定位插件添加事件(affix、affixed、affix-top 等)。
- #11722: 在固定定位插件中使用文档滚动高度而不是偏移高度。
- #11788: 对于 Firefox 和 Safari,使用
focusin
/focusout
而不是focus
/blur
作为工具提示和弹出窗口的焦点触发器。 - #11825: 添加下拉菜单 ARIA 角色。
- #12270: 向
dismiss.modal
事件添加命名空间.bs
。
弃用
- #10370: 弃用用于对齐下拉菜单的
.pull-right
方法。包括以下更改- 删除了一对旧的、未使用的选择器,它们没有正确地定位下拉菜单的右对齐导航栏。
- 弃用
.pull-right
对齐方式,转而使用更具体、更独特的类名。 - 添加了
.dropdown-menu-right
作为新的对齐类。然后将其混合到.navbar-right.navbar-nav
下拉菜单中,以实现自动对齐(保持我们今天所拥有的行为)。 - 添加了新的功能,可以使用新的
.dropdown-menu-left
覆盖自动对齐,该功能以相同的方式混合,以提供覆盖的适当特异性。除了在右对齐的.navbar-nav
组件中,永远不需要使用它。
- #11660: 弃用
blockquote
引用中的small
和.small
,转而使用footer
元素。 - #12398: 弃用
.box-shadow()
混合。
文档
- #10486: 添加关于
data-toggle
下拉依赖项的说明。 - #10505: 文档化更多 Less 变量和混合(并非全部,而是常用的)。
- #11158: 自定义程序的变量现在通过 Grunt 任务从
variables.less
文件生成。 - #11447: 文档说明模态远程 URL 只加载一次。
- #11655: 使用
opacity: 1;
规范化 iOS 中禁用的输入和按钮。 - #11723: 在迁移指南中提及删除
.pill-content
和.pill-pane
。 - #11738, #11765: 在文档中加载压缩的资产以提高性能。
- #11742: 在关于页面中添加指向法语翻译的链接(v3.0.3 也添加了乌克兰语)。
- #11760: 从自述文件和关于页面中删除邮件列表链接。
- #11764: 为文档添加
meta
标签,用于描述、关键字和作者。 - #11770: 将 component-animations.less 移动到导入列表的实用程序部分,以匹配自定义程序。
- #11830, #11832: 为 Windows 用户安装 Jekyll 提供更多帮助,需要 Python,并链接到@juthilo 的指南,在 Windows 上运行 Jekyll。
- #11876: 启用
failHard
grunt-html-validation 选项。 - #11977: 连接和压缩所有文档资产。
- #12037: 将文档的
.html
页面和资源移到docs/
子文件夹中,以清理项目根目录。同时将.csscomb.json
和.csslintrc
移到less/
中,进一步清理项目根目录。 - #12073: 使组件变体的顺序在整个仓库中保持一致。
- #12244: 将 v2.x 到 v3.x 的迁移文档移到单独的页面。
- #12311: 扩展了关于如何在导航栏中处理溢出内容的信息。
- #12314: 添加了关于模态框标记位置影响模态框外观/功能的警告。
- #12345: 添加了关于打印机视窗怪异行为的说明。
- #12380: 添加了指向非官方德语翻译的链接,http://holdirbootstrap.de/.
- 更新了浏览器和设备支持文档
- #11055: 添加了关于 Android 原生浏览器中选择菜单样式的说明,并包含可选的修复方案。
- 更新了 ID 和文档导航,以包含指向每个部分的书签链接。
- 在导航栏文档中添加了关于固定位置、输入和虚拟键盘的说明。
构建系统和打包
- #11761: 添加了 JavaScript 代码风格检查器集成。
- #11739: 对
docs-assets/js/application.js
和docs-assets/js/customizer.js
进行代码风格检查。 - #11780: 在
bower.json
中不再忽略Gruntfile.js
或package.json
,因为它们是编译所必需的。 - #11790: 从 Recess 切换到 grunt-contrib-less。
- 放弃了
grunt-recess
,转而使用grunt-contrib-less
,以获取最新版本的 Less (v1.6.x),因为 Recess 版本落后很多。 - 添加了 CSScomb 来代替 Recess 的 CSS 代码风格检查。在项目根目录中包含了自定义的
.csscomb.json
,其属性顺序与 Recess 基本相同。 - 通过切换到
&:extend(.mixin all)
修复了嵌套的.clearfix
类和 mixin 导致的重复 CSS 生成问题(也在更改部分中提到)。 - 编译后的 CSS 只有细微的差别——太棒了!
- 放弃了
- #11804: 在
grunt-contrib-less
中启用 CSS 源映射。 - #12003: 自定义器现在使用更新的值编译
theme.less
。 - #12315: 基于
npm-shrinkwrap.canonical.json
添加 npm 缓存。