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

Posted

技术标签:

【中文标题】如何使 Twitter Bootstrap 的 <pre> 块水平滚动?【英文标题】:How to make Twitter Bootstrap's <pre> blocks scroll horizontally? 【发布时间】:2012-05-09 14:11:20 【问题描述】:

根据 https://getbootstrap.com/docs/4.3/content/code/#code-blocks 的示例,bootstrap 仅支持开箱即用的垂直可滚动和自动换行的 &lt;pre&gt; 块。如何使我拥有可水平滚动的未包装代码块?

【问题讨论】:

【参考方案1】:

诀窍在于,引导程序同时覆盖&lt;pre&gt; 元素的white-space 和CSS3 word-wrap 属性。要实现水平滚动,请确保您的 CSS 中有以下内容:

pre 
  overflow: auto;
  word-wrap: normal;
  white-space: pre;

【讨论】:

我不建议覆盖引导类。相反,我会创建一个名为 eg 的新 CSS 文件。 bootstrap-extras.css 并定义一个新类,例如。 pre-x-scrollable (类似于它们的 pre-scrollable )应用您的上述行为。这样,当您将来从源代码升级引导程序时,您就不会遇到冲突的类。 对于 bootstrap3:pre code 并删除 overflow:auto 请注意,word-wrap 在 CSS3 中是 changing 到 overflow-wrap 设置 white-space: pre-wrap 是我让 pre 块根据需要实际包装的技巧【参考方案2】:

这对我有用:

pre 
    overflow-x: auto;

pre code 
    overflow-wrap: normal;
    white-space: pre;

【讨论】:

overflow-wrap 仍然有 spotty implementation。现在,您应该使用所有浏览器都支持的旧版word-wrap @KyleMit 现在,您应该同时使用两者。然后,当overflow-wrap 开始获得支持时,您将不必返回并更新所有 CSS。【参考方案3】:

当我开始新项目并且必须通读 cmets 以记住,哦,是的,不要覆盖引导类并且不要忘记溢出包装等时,我会不断地回到这个答案......

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

仅水平滚动

.pre-x-scrollable 
    overflow: auto;
    -ms-word-wrap: normal;
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: pre;

垂直和水平滚动

.pre-xy-scrollable 
    overflow: auto;
    -ms-word-wrap: normal;
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: pre;
    max-height: 340px;

【讨论】:

【参考方案4】:

较新版本的 Bootstrap 将样式应用于包装单词的 precode。将此添加到我的样式表为我解决了这个问题:

pre code 
        white-space: pre;
        word-wrap: normal;

【讨论】:

以上是关于如何使 Twitter Bootstrap 的 <pre> 块水平滚动?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Twitter Bootstrap 使网站适合移动设备?

如何使 Twitter Bootstrap 按钮组与 AngularJS 一起工作?

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

带有 twitter-bootstrap 的下拉菜单

如何将这些 Twitter bootstrap 3 导航栏链接居中?

如何在鼠标移入之前保持 Twitter Bootstrap Popover 打开?