首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flexbox兼容水平预滚动/代码滚动

Flexbox兼容水平预滚动/代码滚动
EN

Stack Overflow用户
提问于 2016-02-03 22:37:39
回答 5查看 2.1K关注 0票数 17

我在引导容器中的precode标记中有一些代码,我想要水平滚动。这通常很好,直到我添加了一个柔性盒到我的页面的body,以完成一个粘性页脚。在此之后,当页面变窄(例如用于移动查看)时,code不再水平滚动。

下面是我的代码(请注意,当您缩小窗口时,code的水平滚动条就会消失):

代码语言:javascript
运行
AI代码解释
复制
html, body {
    height: 100%;
}
body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
code {
    max-height: 200px;
    background-color: #eeeeee;
    word-break: normal !important;
    word-wrap: normal !important;
    white-space: pre !important;
}
.flexer {
    flex: 1;
}
footer {
    background-color: #CCC;
}
代码语言:javascript
运行
AI代码解释
复制
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
    <div class="row">
        <div class="col-md-12 docs">
            <p>Some sample code</p>
            <pre><code>Loading mirror speeds from cached hostfilebase: mirrors.arpnetworks.com * centosplus: mirrors.arpnetworks.com* extras:mirrors.arpnetworks.com*rpmforge: mirror.hmc.eduupdates: mirrors.arpnetworks.comExcluding Packages in global exclude list</code></pre>
        </div>
    </div>
</div>
<div class="flexer"></div>
<footer>
    <div class="container">
        <div class="row">
            <div class="col-sm-12 text-center">
            footer
            </div>
        </div>
    </div>
</footer>

http://jsfiddle.net/nturor46/1/

您是否知道如何在保持滚动pre / code的同时将柔性盒用于粘性页脚?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-02-14 12:00:14

一个简单的

代码语言:javascript
运行
AI代码解释
复制
.container { width:100%; }

正确调整网站大小。但是,Chrome不允许你实际使用滚动条。这是因为它溢出了所有容器的尺寸(除了身体)。因此,我们必须告诉浏览器正确识别预节点:

代码语言:javascript
运行
AI代码解释
复制
.container {
  max-width: 100%;
}
pre {
  position: relative;
}

这告诉Chrome再次正确处理鼠标事件并修复布局

请注意,pre-node的页边距底部在溢出国家丢失,这可能会导致您的布局看起来很奇怪。在最终版本中使用了max-width,以确保它不会覆盖在引导程序中生成的固定宽度语句

PS:在当前Chrome和火狐http://jsfiddle.net/nturor46/32/中进行测试

票数 7
EN

Stack Overflow用户

发布于 2016-02-09 18:28:50

这里发生的是,最肯定的是是Chrome中的一个bug。

在玩了Fiddle之后,我可以得出结论,这是一个特定于Chrome的问题。一个好奇的人。

由于某种原因,<div class="col-md-12 docs">增长到它应有的大小( ppre的高度一起),但不考虑pre标记内的水平滚动条。

这里有一张图片来演示这个问题。红色背景的部分是容器。

由于pre底部的边框宽为1 1px,因此结果会留下1 1px的空白,让您实际使用滚动条。你可以自己试试。只需尝试抓取滚动条中最上层的1px行。

移除flex属性确实解决了您的问题,但我们不会接受这一点。

现在,我认为在父级的底部添加一个0.1px的填充会解决这个问题,但它没有解决问题。

代码语言:javascript
运行
AI代码解释
复制
.chromefix{
  overflow: hidden;
}

但是这造成了一个更奇怪的情况:容器随着的滚动条增长,大约50%的

所以我试着把两者结合起来,但没有太大的区别。

这就是我开始研究pre标记及其属性的地方。默认情况下,它具有overflow: auto。所以我想说的是

代码语言:javascript
运行
AI代码解释
复制
pre{
  overflow-x: scroll !important;
}

猜猜发生了什么?啊,真灵!

所以,您所要做的就是将overflow-x: scroll !imporant添加到pre中,这样就可以了!这是一个工频

希望这能有所帮助

作为一个副手。我想你也想把max-height: 200px迁移到pre。当您将其应用于code时,它将无法工作。

票数 2
EN

Stack Overflow用户

发布于 2016-02-09 18:31:16

那些引导风格只是破坏了自然CSS!

问题似乎来自于column、-direction、flex容器和引导规则之间的冲突。这基本上会导致当内容框溢出屏幕时,水平滚动条从pre / code内容框转移到浏览器窗口。

通过这些调整,您想要的布局似乎有效:

  • 使主.container div成为主flex容器(在您的代码中,此角色由body元素扮演)
  • footer元素移动到这个新容器中
  • 使用毛边将页脚粘贴到底部
  • 在必要时重写引导marginpaddingwidth

代码语言:javascript
运行
AI代码解释
复制
<div class="container">

    <div class="row">
        <div class="col-md-12 docs">
            <p>Some sample code</p>
            <pre><code>Loading mirror speeds from ... cached hostfilebase</code></pre>
        </div>
    </div>

    <footer>
        <div class="container">
            <div class="row">
                <div class="col-sm-12 text-center">
                    footer
                </div>
            </div>
        </div>
    </footer>

</div>

CSS

代码语言:javascript
运行
AI代码解释
复制
html, body { height: 100%; }

body > .container {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;                      /* override bootstrap styles */
    padding: 0;                       /* override bootstrap styles */
}

body > .container > .row {
    margin: 0;                        /* override bootstrap styles */
    display: flex;                    /* nested flex container */
    justify-content: center;          /* center content box on page */
}

body > .container > .row > .docs {
    width: 75%;                      /* adjust width of the content box here */
}

code {
    max-height: 200px;
    background-color: #eeeeee;
    word-break: normal !important;
    word-wrap: normal !important;
    white-space: pre !important;
}

footer {
    margin-top: auto;                /* stick footer to bottom of container */
    background-color: #CCC;
}

修正Fiddle

在Chrome和Firefox中进行测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35194121

复制
相关文章
传统 for 循环的函数式替代方案
在 Java 语言的第 1 个版本中就开始引入了传统的 for 循环,它的更简单的变体 for-each 是在 Java 5 中引入的。大部分开发人员更喜欢使用 for-each 执行日常迭代,但对于迭代一个范围或跳过范围中的值等操作,他们仍会使用 for。
IT小马哥
2020/03/18
3K0
Java 中for循环和foreach循环哪个更快?
在Java编程中,循环结构是程序员常用的控制流程,而for循环和foreach循环是其中比较常见的两种形式。关于它们哪一个更快的讨论一直存在。本文旨在探究Java中的for循环和foreach循环的性能差异,并帮助读者更好地选择适合自身需求的循环方式。通过详细比较它们的遍历效率、数据结构适用性和编译器优化等因素,我们将为大家揭示它们的差异和适用场景,以便您能够做出更明智的编程决策。
葡萄城控件
2023/10/16
7500
Java 中for循环和foreach循环哪个更快?
onpropertychange替代方案[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 onpropertychange替代方案
全栈程序员站长
2022/08/01
1.4K0
Base:Acid的替代方案
作者:DAN PRITCHETT 译者:java达人 来源:https://queue.acm.org/detail.cfm?id=1394128(点击阅读原文前往) 在数据库分区中,以一致性换取可
java达人
2018/03/26
2.4K0
Base:Acid的替代方案
Web 框架的替代方案
在本系列第二部分中,Noam 提出了一些模式,说明如何直接用 Web 平台作为框架提供的一些解决方案的替代方案。
深度学习与Python
2022/04/19
2.7K0
Hugo .GitInfo 的替代方案
今天有人问我博客页脚 footer 里的 git hash 是怎么显示的,就是页面底部里的 69d6ffe 这一串数字。
eallion
2022/12/20
1.9K0
Hugo .GitInfo 的替代方案
探讨if...else的替代方案
假设我们要做一个计算器,实现加减乘除的需求。使用if...else...语句实现代码如下:
互联网金融打杂
2022/08/01
2.3K0
探讨if...else的替代方案
Flutter 中FlatButton的替代方案
最新版本的Flutter已将FlatButton标记为过时,我们可以使用 TextButton 或 ElevatedButton 来进行替代,FlatButton 与替代组件的参数会有差异。
xiangzhihong
2023/07/09
7710
企业用途的 V** 替代方案
虚拟专用网络 (VPN) 是最常用的远程网络连接解决方案之一。但是,它有许多限制,会对网络性能和安全性产生负面影响。使用更专业的远程解决方案替代 VPN ,可以提高安全性,同时还可以提高远程访问的质量和远程工作人员的工作效率。
Loki
2023/01/10
2.3K0
企业用途的 V** 替代方案
循环结构 if语句我替代语法
通过这两者的比较,我得出了一个结论,就是while是符合条件在执行语句,do while是先执行在判断是否符合条件 这两个都一样,但是while就像我想结婚了,所以我去求家长父母的同意是吧,他们同意了我和李文的婚事我们才能结婚,但是do while就有点不同了,他是私奔了呀,先结婚然后在慢慢跟各方家长说,家长同意了就行了一样的啦 问题:为什么都是执行10次,因为do while那里是$i++到10了啊就不符合条件了啊,所以才10次啊,像是我明天要给你十块钱,我不管你今天你花钱欠账明天再给商家也好,还是明天在花也好,就十块哈,一分也没有,就十块.do while就像是先花了,while就像是给再花哈哈哈哈,
贵哥的编程之路
2020/10/28
3640
循环结构 if语句我替代语法
break-跳出内循环
i = 1 j = 1 while i <= 10: print('第%d个碗' % i) while j <= 10: if j == 5: break else: print('这是内循环的第%d个碗' % j) j += 1 i += 1
汪凡
2018/05/29
8130
加油站智能视频监控系统方案
加油站智能视频监控系统方案利用加油站现场的已经装好的监控摄像头对加油站进行打电话识别、抽烟识别、明火烟雾识别、车辆识别。除此之外,加油站智能视频监控系统方案还可以对汽油静电释放检测、灭火器摆放识别、玩手机识别。有益于加油站安全隐患的管理把控,从根源上降低与分析安全隐患的主要原因,提升管控效率。
燧机科技
2022/10/03
6350
加油站智能视频监控系统方案
内拐角的铣削方案
利用编程半径 (圆弧铣) 来减少接触弧及径向切宽以减少振动趋势,从而在铣削内拐角时实现更大的切深和更高的进给率。
lrglu
2022/03/30
9100
内拐角的铣削方案
Electron中remote模块的替代方案
在Electron12时候被废弃,使用必须配置enableRemoteModule
码客说
2023/09/14
2.1K0
替代Websocket的解决方案:GoEasy
GoEasy这个库的适用场景:同Websocket的场景 在后台使用例如Java进行逻辑处理后将变量的值传入前台,前台不用发起请求即可接收后台发布的数据, 整个流程与Redis的Pub和Sub过程类似 整个交互类似Socket的长连接,前台首次调用不需要请求后台。 非常适合监控后台参数等场景;
ZONGLYN
2019/08/08
5.6K0
Java 高效编程·函数式替代 for 循环
虽然使用 range 没有显著减少代码量,但降低了它的复杂性,这么做的两个重要原因:
数媒派
2022/12/01
8000
Java 函数引用 替代方案
通过接口和内部类 举个例子吧 比如new一个线程 c#里是这样 Thread tr = new Thread(new ThreadStart(func)); 其中func是函数名 那么java里可以这样 Thread tr = new Thread() { public void run() {func();} }; 也没有多写多少代码
ApacheCN_飞龙
2019/02/15
8480
5 个 Docker 替代方案
提高容器安全性、Docker 未来的不确定性、技术战略变化和预算问题都可能促使企业寻找 Docker 的替代品作为其容器标准。
我的小碗汤
2023/03/19
2.5K0
5 个 Docker 替代方案
react useCallback完美替代方案
react函数组件为了保持引用不变,很多时候需要借助useCallback,但是useCallback强依赖于外部变量,必须传个依赖变量,万一漏传了很容易出问题。比较函数复杂时较麻烦,使用这个即可完美解决,引用不变,调用肯定是最新的,并且不需依赖
ACK
2021/01/21
1.6K0
点击加载更多

相似问题

我可以在Switch语句上使用对象吗?

354

可以在事件处理程序上使用延迟对象链吗?

11

可以使用对象而不是Switch语句吗?

31

是否可以在switch语句中使用switch语句?

22

可以在switch语句中使用类吗?

41
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档