为什么Twitter Bootstrap使用像素字体大小?

鉴于Twitter Bootstrap被devise为响应/设备友好,为什么不使用相对字体大小?

那么他们似乎躲在浏览器缩放借口后面 。 真的很伤心看到这样一个使用率很高,影响力大的框架完全忽略了可访问性问题,并且是响应式devise的基础。 他们处于重大责任的地位,不幸的是,似乎无意采取相应的行动。

[更新]所以今天马克·奥托在我上面引用的线程上回答。 可以预见的是,没有提及可访问性和“像素完美”这个短语的使用:

好吧,这里有一个关于昔日的决定和前进的计划的背景。

像素在每个浏览器上提供绝对的控制和一致的渲染。

devise师仍然主要以像素思维和操作。

浏览器最近扩大了整个页面,所以这不是types缩放或任何问题。

嵌套ems历史上一直是一个痛苦,可能需要额外的math计算/目标像素值。

混合单位的测量是丑陋的,我内心的OCD恨它。 通常不鼓励在线高度上使用单位,但可以立即知道计算出的值是多less。 未来我们可能会试图摆脱这一点。 在将来,我们可能会使用ems进行字体大小调整,甚至可能会缩小,但不会改变其他值。 对于input的字体大小等,这也是有争议的。 这不是如何build立像素完美的网站。

这有点全面,希望有足够的连贯性。 我会尽力在这些变化的博客上发表更多的内容,但是我不确定3.0有多接近,以及这些变化是什么。

我会build议任何人对此有强烈的感受,并+1 这个线程 。

[更新] V2.3发布 blogpost中的V3路线图并没有提到增加对ems的支持。

[更新]有关Bootstrap V3的更多信息,请参阅此处的请求,其中包括Mark Otto的以下内容:

我们研究了像元上rem元素的使用,但是没有发现利用这些元素的好处。 IE8仍然需要像素后备,这是很多重复的代码行。 此外,使用rems而不是像素会加剧这个问题。 混合雷姆和像素现在似乎没有任何意义。 但是,我们可以并将继续在将来的版本中对此进行评估。

最近(在其评论中):

我非常怀疑在这一点上我们将会发货。 改变一切 – 超过字体大小 – 是一个巨大的任务,并有一些好处,以抵消这一点。 除了字体大小的代码行之外,以其他任何方式支持rems似乎都很乏味。 也就是说,我们可以在以后的版本中重新访问。 现在,我们坚持像素。

由于对Bootstrap的大量特性不满,尤其是缺乏电子支持,所以我强烈build议你看看Susy,如果你只是想要网格,或者Zurb基金会4是为了整个实验。 不要让Bootstrap受欢迎影响你的判断力。 任何人都可以用Bootstrap来构build一些东西,这正是它的问题 – 它是为那些Web用户体验最小的人devise的。 正因为世界上有很多麦当劳,这并不意味着它是一个健康的饮食场所。

[编辑]好的。 这是一个愚蠢的事情要说。 自从我写这篇文章以来,我已经使用了BS3,并且大大提高了它的游戏速度。 我不应该做出这样的一次性评论,但是我仍然相信它在使用像素进行字体大小方面做出了一个糟糕的决定。 除了可访问性问题,ems在其他方面也是有用的。

[更新]在V4中将会支持rems(Mdo引用来自这里 ):

对于接下来的那些,当我们放弃对IE8的支持时,我们将能够在v4中从像素变成REM。 那之前不能做太多。

Bootstrap 4仍然在Alpha中,但在其印刷文档 显示了使用rems,但是在其布局文档 中没有显示使用rems。

不要让Bootstrap受欢迎影响你的判断力。 任何人都可以用Bootstrap来构build一些东西,这正是它的问题 – 它是为那些Web用户体验最小的人devise的。 正因为世界上有很多麦当劳,这并不意味着它是一个健康的饮食场所。

你可以争辩说,不要让它以负面的方式让你的判断变得糟糕。 这是一个坚实的框架,如果你花费时间来投入如何有效地使用它,那么你的论点的大部分就落在它的头上。

虽然它经常被那些经验最less的人所使用 – 而且没有什么不妥之处 – 它也被有很多经验的人所使用。

至less,这是一个宝贵的原型工具。 在最好的情况下,它是完全可定制的。 你可以select,修改,添加到 – 这就是为什么它被称为“框架”。

在我的一些项目中,我已经有效地使用了它两年多了 – 它就像你想的那样精益求精。 我只使用表单框架,只是网格,整个代码库,并定制它,以适应我的需要。 在很多方面,我的游戏都是“升级”,让我进一步进行预处理,使用variables,磨炼我构build项目的方式。

是的,有一些问题。 字体大小和使用较less是两个。 但是,因为它完全是开放源代码,所以您可以find可以轻松解决这两个问题的选项。

我调查了基金会,并喜欢我所看到的,但我很不幸地支持IE8,就像许多开发者一样。 基金会已经放弃了对IE8的支持,对我来说这是一个“不行”。 尽pipe如此,我并不打算忽略整个框架,尤其是一些可以自由使用的,完全基于几个问题自由修改的框架!

嘿,在一个项目中,我解除了Bootstrap的部分基础和部分,并添加了自己的自定义代码 – 这就是开源的美丽。

如果你仍然喜欢Bootstrap与EM和REM支持,你可以看看这个 – https://github.com/ivayloc/twbs-rem-em没有必要进行任何计算,以rem或em单位转换像素,在;@mixins为此build立 – @include rem(property, values) – 也可以回@mixins px,对于em转换,你可以使用em(value)

虽然我广泛使用Bo​​otstrap,但有一些地方的可访问性是背负的。 我想这是一个广泛使用的平台,不可避免的取舍。

我完全明白为什么他们select保留字体大小的像素。 与em的框架的字体的inheritance问题是一个完全的噩梦。

rems是另一种select,但浏览器支持仍然是有问题的。

您可以创build自己的rems mixin,并replace使用基本字体大小variables的每一行。

这就是bootstrap的美妙之处,以及像它这样的框架,这是一个坚实的基础。

是的,我已经提到了twitter引导的元素,这是不可访问的 – 一个小例子,使用“display:none”而不是使用剪辑。 我非常确定有一个有效的理由 – 再一次,如果你愿意,你可以很容易地修改。

Bootstrap并不是完美的,但是,我怀疑它是否有意成为你所有要求的最终答案。 它是一个基础 – 一个“引导” – 学习并正确使用它,join它,把它们混合起来 – 至less,这是一个很好的框架,原型,或一个快速的网站。 进一步说,这里有一些非常扎实的基础,可以应用到任何网站。

我认为,这是因为桌面第一的方法。 Twitter Bootstrap响应友好,但“优雅退化”的方法。