Bootstrap 2.0.3 发布

@mdo 2012 年 4 月 24 日

今天我们发布了 Bootstrap 2.0.3,这是一个 bug 修复版本,旨在修复尽可能多的回归和文档错误。在 GitHub 上的 2.0.3 里程碑 中,有近 100 个已关闭的问题,但以下列出了最重要的修复,并清楚地解释了更改内容。

Makefile

为了不断改进 LESS 功能和构建工具,我们更新了 makefile 以使用 JSHintRecess,它们分别是 JavaScript 和 CSS 的代码检查工具。要继续通过终端运行 make,请执行以下操作:

npm install -g recess jshint

我们还从仓库中移除了 bootstrap.zip 文件,因此 make 运行速度更快,因为它不需要压缩任何文件。有关更多信息,请参阅 更新的自述文件

HTML 和 CSS

  • 彻底修改了响应式实用程序类,以简化所需的 CSS,将 !important 添加到所有声明中,并使用 display: inherit 代替 display: block 来处理不同类型的元素。
  • 从流体网格列选择器中删除了 >,这意味着 .row-fluid 中所有具有 .span* 类的元素都将使用百分比宽度而不是固定像素。
  • 修复了自 2.0.1 版本以来响应式图像支持的回归问题。我们默认情况下重新添加了 max-width: 100%; 到图像。我们在上一个版本中删除了它,因为有些人抱怨 Google 地图集成和其他项目,但我们现在对这些事情采取了不同的立场,并将要求开发人员在他们自己的项目中进行这些调整。
  • 添加了变量 @navbarBrandColor 用于导航栏中的品牌元素,默认值为 @navbarLinkColor
  • 字体族混合器现在使用变量来表示它们的堆栈。
  • 修复了 .reset-filter() 混合器中未转义的 filter,该混合器会导致某些错误,具体取决于您的编译器。
  • 修复了 .form-actions 背景的回归问题,该背景太暗,通过添加一个新的变量 @formActionsBackground 并将颜色更改为 #f5f5f5 而不是 #eee 来解决。
  • 修复了按钮组下拉菜单中的一个问题,即下拉菜单打开时背景颜色没有使用按钮的较暗颜色。
  • 泛化并简化了打开的下拉菜单类,同时添加了更智能的默认值。我们现在不再使用 .dropdown.open,而是使用 .open。在默认值方面,所有下拉菜单现在都具有圆角。
  • 通过加深背景并锐化内阴影以匹配按钮的活动状态,改进了活动 .dropdown-toggle 样式(用于下拉按钮)。
  • 进度条动画方向反转。
  • 修复了不可编辑输入框中输入前缀/后缀的问题:.uneditable-input 被浮动,并且缺少一个逗号导致其后缀选项的 border-radius 未正确应用。
  • img 中删除了 height: auto;,因为它覆盖了通过 HTML 属性设置的尺寸。
  • 修复了带有标题或列组的表格顶部出现双边框的问题。
  • 修复了 .navbar-text 中锚按钮的问题。我们不再对具有该类别的元素中的所有锚点进行通用样式设置,而是添加了一个新类来专门应用适当的链接颜色。
  • 为品牌/项目名称和导航链接添加了对 @navbarHeight 的支持,以实现完整的导航栏高度自定义。
  • 通过删除边框、增加行高并提供更深的背景颜色,修复了 IE7 中按钮出现黑色边框的问题。
  • 在 IE7 中删除了 .search-query 输入框的额外填充,因为它不支持圆角。
  • 更新了组件中的警报消息,使用 button 元素作为关闭图标,而不是 a。两者都可以使用,但 a 需要 href="#" 才能在 iOS 设备上关闭。
  • 修复了 Firefox 中输入前缀/后缀的问题,其中 select 元素需要点击两次才能切换下拉菜单。通过将 position: relative 默认移动到 select 上,而不是在 :focus 上,解决了这个问题。
  • 添加了一个新的混合器 .backface-visibility,以帮助改进 CSS 3D 变换。有关用法示例和说明,请访问 CSS Tricks
  • 更改了 767 像素以下响应式布局中网格类的特异性,以准确地定位使用 .span* 类的 inputselecttextarea 元素。
  • 水平描述列表 .dl-horizontal 现在会截断过长而无法容纳在其固定宽度列中的术语。在小于 767 像素的响应式布局中,它们会更改为默认的堆叠布局。
  • 更改了可选项卡,以防止在左对齐和右对齐选项卡中出现问题。.tab-content 由于 display: table 不会扩展到其父元素的完整宽度。我们删除了它以及 width: 100%,而是只设置了 overflow: auto 来清除左对齐和右对齐的选项卡。
  • 更新缩略图以支持流体网格列大小调整。
  • 在大多数按钮组选择器中添加了>
  • 添加了新变量@inputBorderRadius,用于所有以前使用静态3px值的表单控件。
  • 更改了我们处理表格border-radius的方式。我们不再使用将所有其他角归零的常规 mixin,而是只指定一个角,以便它们可以组合起来用于单列表格标题。
  • 将 Glyphicons Halflings 从 1.5 更新到 1.6,引入了 20 个新图标。
  • .makeColumn中添加了offset参数。
  • 提高了所有可选项导航选择器的特异性,包括.nav-collapse,以适当地限定响应式导航栏行为。
  • 修复了不可编辑的输入:文本现在被截断,不会换行,使其行为与默认的input相同。
  • 标签和徽章现在是vertical-align: baseline;,因此它们与周围的文本对齐。

JavaScript

  • 添加 jshint 支持
  • 添加 travis-ci 支持,并与无头 phantom 集成
  • 替换 bootstrap-transitions.js 中的 UA 探测
  • 将 MSTransitionEnd 事件添加到过渡插件
  • 修复轮播中的暂停方法(在悬停在控件上时不应重新启动)
  • 修复疯狂的 Opera 错误 #1776
  • 如果目标元素被禁用,则不要打开下拉菜单
  • 如果您已到达文档或元素的底部,则始终选择滚动侦测中的最后一项
  • 类型提示应转义正则表达式特殊字符
  • 如果轮播上的间隔为 false,则不要自动循环
  • 为所有初始事件类型(显示、关闭、隐藏等)添加 preventDefault 支持
  • 修复 ie7+ 中的折叠错误,用于初始折叠
  • 修复嵌套折叠错误
  • 如果正在过渡折叠,则不要开始新的过渡
  • 尝试自动检测何时在工具提示/弹出窗口中使用 html/text 方法,以帮助防止 XSS
  • 将 bootstrap + bootstrap.min.js 添加到 gh-pages,以支持 @remy 和 jsbin

文档和仓库

  • 将徽章和标签合并到一个 LESS 文件 badges-labels.less 中,以减少重复的 CSS。
  • 将响应式功能分离到多个文件中。我们现在为每组媒体查询(平板电脑及以下、平板电脑到桌面以及大型桌面)都有一个文件。此外,可见/隐藏实用程序类和响应式导航栏也在它们自己的文件中。输出在编译后的 CSS 中是相同的,但这应该为人们提供更多灵活性。
  • 在文档中添加了一个新的 CSS 测试页面(不在顶部导航栏中),用于更好地测试边缘情况并扩展标准组件的使用。
  • 从仓库和 make 过程中删除了 bootstrap.zip 文件,以加快构建速度并减轻仓库负担。从现在开始,zip 文件只会在文档分支中。
  • 修复了选项卡示例中错误的类使用(应为 ID),并添加了有关多种切换选项卡方法的文档。
  • 修复了为专门的导航栏搜索字段列出的必需标记。
  • 删除了所有对@siteWidth的提及,这是一个不再使用的变量。
  • 删除了对未使用的@buttonPrimaryBackground变量的提及,该变量不再使用。
  • 更新了 LESS 文档页面,以包含我们在之前版本中添加的所有新变量。
  • 从选项卡和药丸示例中删除了损坏的“下拉”菜单(本来就不应该在那里)。
  • .badge-important 替换了 .badge-error。错误选项不是有效的类,并且是文档中的一个拼写错误。
  • 修复了关于如何在导航栏中添加纯文本的说明。以前文档中说你只需要一个 p 标签,但所需的 HTML 是任何带有 .navbar-text 类的元素。
  • 阐明了 .tabbable 在选项卡中的使用。包装类仅在左右选项卡需要清除浮动时才需要。还添加了对 .fade 的提及,用于淡入选项卡。
  • 更新了表单文档
    • 删除了第一个示例中不必要的重复帮助文本
    • 添加了对必需的 input.search-query 的提及,用于搜索表单变体
    • 删除了关于表单字段最初为 display: block; 的不正确说明,因为字段最初为 inline-block
  • 添加了对下拉菜单 JavaScript 插件的 data-target 属性的提及,以说明如何在带有 .dropdown-toggle 类的链接上保持自定义 URL 完好无损。
  • 更新了主页上的 Kippt 截图,以反映他们最近的响应式重新设计和升级到 2.0.2。

我们正在不断更新问题并在 2.1 里程碑 中跟踪它们,该里程碑将专注于添加一些新功能并解决此版本中不可避免的错误和边缘情况。

Bootstrap、JSHint 和 Recess

@mdo 2012 年 4 月 19 日

在过去的一周里,我们为 Bootstrap 工具链添加了两个新的开发者工具,我想花点时间让您更了解它们是什么,我们为什么添加它们,以及为什么这很重要。

JSHint

JSHint 是一个很棒的社区驱动的代码风格检查工具,用于检测 JS 中的错误和潜在问题,并强制执行代码规范。它非常灵活,可以轻松适应您期望代码执行的任何代码指南和环境。

从 2.0.3 版本开始,所有 JS(包括测试)都将在构建过程中通过 JSHint 运行。我们希望这既能捕获潜在的不安全语法,又能鼓励围绕 Bootstrap 的 JavaScript 风格的规范。

首先,Bootstrap 的 JS 将使用以下选项(存储在 js 目录中的 .jshintrc 文件中)

{
    "validthis" : true
  , "laxcomma"  : true
  , "laxbreak"  : true
  , "browser"   : true
  , "boss"      : true
  , "expr"      : true
  , "asi"       : true
}

我们希望这将使那些希望为 Bootstrap 做出贡献的人更容易,并减少围绕不同风格的 pull 请求的痛苦。如果您还没有使用过 JSHint,您绝对应该花点时间现在就查看一下

Recess

Recess 是一个在 Twitter 开发的项目,用于帮助支持我们的内部样式指南。

Recess screenshot

Recess 的核心是一个代码风格检查工具,但它还具有编译和/或重新格式化您的 css/less 文件的能力:规范空白、去除 0 值、重新排序属性,以及它可以找到的任何其他安全的样式优化。

这意味着,Recess 不会仅仅告诉您哪里有问题,您实际上可以告诉 Recess 直接为您整理代码。

首先,我们只以这种方式使用 Recess——作为我们 Less 的编译器(而不是直接使用 lessc 编译器)。这让我们可以严格控制 Bootstrap 的输出,并让 Mark 和我真正地兴奋起来,我们对此非常兴奋(我们喜欢事情完美……我们就是这样的书呆子)。

未来

最终,我们希望尝试将这些工具(以及我们的单元测试)整合到某种持续集成服务中。在 Twitter,我们已经在许多其他项目(Hogan.js、Recess)中使用 travis-ci,因此我们可能很快就会在 Bootstrap 上效仿。这将使我们更容易接受来自社区的 pull 请求,因为我们将能够看到我们所有的测试都通过了!:)

无论如何,现在就这些了。像往常一样,如果您有任何问题或反馈,请告诉我们!谢谢!

<3

帮助测试 Bootstrap 2.0.3

@mdo 2012年4月15日

我们的下一个版本,2.0.3,即将发布,但我们需要您的帮助才能使最终版本尽可能完美。与 2.0 版本发布时一样,我们希望社区帮助测试该版本的开发分支。我们修复了许多错误——自 2.0.2 以来又修复了 80 多个错误——我们希望发布的版本质量尽可能高。

为什么?

好问题。2.0.2 版本在组件行为方面引入了一些严重的错误,发布了过时的文档,并引入了一些糟糕的回归。这很糟糕,当这些事情发生时,我们会因为在发布版本时遗漏了一些东西而被困在追踪这些错误中。我们希望将所有精力集中在 2.0.3 版本之后的 2.1 版本上,为此,我们需要尽可能地消除这个版本中的错误。

我们将让 2.0.3-wip 开放进行广泛测试,整个星期(4 月 16 日至 20 日),然后在雅各布和我于 4 月 24 日前往伦敦时发布版本。这应该给每个人(包括我们)足够的时间来测试并报告任何问题。

如何?

就像上次一样,我们发布了 2.0.3 代码和文档的候选版本。以下是如何帮助我们:

  • 前往 GitHub 并检出 2.0.3-wip 分支。
  • 不想检出任何代码?我们在这里托管最新版本的文档(http://203rc1.getbootstrap.com),这样您就可以轻松地在设备上加载它进行测试。
  • 在您最喜欢的或最不喜欢的浏览器或设备上加载新文档,然后开始测试。
  • 如果您发现错误或有反馈,请在 GitHub 上创建一个新问题。请尽可能多地提供上下文和信息。如果是视觉错误,请提供截图。如果是关于 JavaScript 的问题,请考虑提供一个jsfiddlejsbin
  • 如果您能自己修复代码,请直接针对2.0.3-wip提交一个 pull request。但请务必先阅读贡献 Bootstrap维基页面,了解一下我们的代码实践。(不确定如何提交 pull request?点击这里了解更多。)

我们也是人,随着 Bootstrap 的不断发展,我们的代码中难免会有一些错误。感谢您一直以来的帮助和支持,您的支持对我们来说非常重要。

Bootstrap 的首次洲际发布

@mdo 2012 年 4 月 14 日

您可能已经听说,我和 Jacob 将于下周前往伦敦谈论 Bootstrap,我们对此感到非常兴奋!活动已经售罄,但我们会待在那里几天,以便与该地区的各位朋友聊天和交流。

作为我们访问和演讲的一部分,我们将在4 月 24 日从伦敦发布 Bootstrap 2.0.3,这是我们首次洲际发布。我们已经期待这一刻很久了,我们知道很多人都迫不及待地想要它,但我们希望尽可能地做好这次发布。除了发布本身,我们演讲的其余部分将集中在 Bootstrap 的未来。我们还不确定未来会是什么样子,但GitHub 上的 2.1 里程碑可能会透露一些信息。

敬请关注更多信息,并随时在 Twitter 上与我们联系,提出问题、寻求见面机会等等。

25,000

@mdo 2012年3月30日

今天早些时候,Bootstrap 在 GitHub 上的关注者数量突破了 25,000。在过去的几个月里,它一直是最受关注的项目,并且以惊人的速度继续增长。事实上,我还记得在 10 月份写过一篇关于8,700 个关注者的文章。我和 Jacob 仍然对这个曾经的内部宠物项目如何成长为 Web 上最受欢迎的前端框架之一感到敬畏。

我们还有很多功能、改进和更多工作要做,但我们想再次花点时间感谢社区,让 Bootstrap 成为今天这样的成功。

谢谢。真的谢谢。

还要特别感谢 119 位贡献者(不包括 Jacob 或我自己),他们为 Bootstrap 贡献了代码。没有你们,很多事情都不可能实现。

让我们一起期待下一个 25,000 个关注者!