如何让Twitter Bootstrap的<pre>块水平滚动?

Sua*_*uan 59 pre horizontal-scrolling twitter-bootstrap

根据示例http://twitter.github.com/bootstrap/base-css.html#code,bootstrap仅支持<pre>开箱即用的可垂直滚动和自动换行的块.我如何制作它以便我可以使用水平可滚动的,未包装的代码块?

Sua*_*uan 83

诀窍是,引导覆盖两者white-space和CSS3 word-wrap的属性<pre>元素.要实现水平滚动,请确保CSS中有以下内容:

pre {
  overflow: auto;
  word-wrap: normal;
  white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)

  • 我不建议超越引导类.相反,我会创建一个名为eg的新CSS文件.bootstrap-extras.css并定义一个新类,例如.pre-x-scrollable(类似于它们的可预滚动),它们适用于您的上述行为.这样,在将来从源代码升级bootstrap时,您不会遇到冲突类. (13认同)
  • for bootstrap3:`pre code`并删除`overflow:auto` (5认同)

Mat*_*rey 23

这对我有用:

pre {
    overflow-x: auto;
}
pre code {
    overflow-wrap: normal;
    white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)

  • @KyleMit现在,您应该同时使用两者.然后,当`overflow-wrap`开始获得支持时,您将不必返回并更新所有CSS. (4认同)

Ric*_*los 15

当我开始新的项目并且必须阅读评论以便记住时,我一直回到这个答案,哦,是的,不要覆盖引导类,不要忘记溢出包装等...

所以你有股票pre-scrollable,只是垂直滚动,你可能还需要:

仅水平滚动

.pre-x-scrollable {
    overflow: auto;
    -ms-word-wrap: normal;
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)

垂直和水平滚动

.pre-xy-scrollable {
    overflow: auto;
    -ms-word-wrap: normal;
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: pre;
    max-height: 340px;
}
Run Code Online (Sandbox Code Playgroud)