问题 如何防止滚动条重叠内容?


我有一块预先格式化的代码(<pre>),它会水平溢出,因此有一个水平滚动条允许用户查看内容。

overflow: auto;

但是,在IE7(可能是其他IE版本)中,滚动条与我内容的最后一行重叠(当只有一行内容时,这尤其令人恼火)。

我已经尝试了列出的解决方案 这里,但它没有用。

唯一有效的解决方案是使用

overflow: scroll;

它为我所有预先格式化的部分添加了滚动条,这非常糟糕。

注意:它在Firefox 3和Google Chrome中运行良好。


更新

我找到了一个解决方案(请参阅我的回答),但是如果有人找到了在IE7中每个预先格式化的部分都没有难看的填充的方法,那将是完美的。


8286
2018-01-13 16:04


起源



答案:


在发布问题后,我考虑检查stackoverflow是否处理了(它做了)。

我看了一下样式表,发现了这个:

padding-bottom: 19px!ie7;

(好吧,他们使用20px,但19看起来更好)。

它为IE7添加了一个底部填充,这使得每个预先格式化的部分没有滚动条看起来有点奇怪,因为巨大的填充,但至少我可以看到内容(它在stackoverflow上看起来也很奇怪)。

很抱歉提问过得太快了。


10
2018-01-13 16:18



您可以将填充底部放在仅IE样式表中;这个页面认为'!ie7'是一个黑客: css-tricks.com/how-to-create-an-ie-only-stylesheet - Jon Onstott


答案:


在发布问题后,我考虑检查stackoverflow是否处理了(它做了)。

我看了一下样式表,发现了这个:

padding-bottom: 19px!ie7;

(好吧,他们使用20px,但19看起来更好)。

它为IE7添加了一个底部填充,这使得每个预先格式化的部分没有滚动条看起来有点奇怪,因为巨大的填充,但至少我可以看到内容(它在stackoverflow上看起来也很奇怪)。

很抱歉提问过得太快了。


10
2018-01-13 16:18



您可以将填充底部放在仅IE样式表中;这个页面认为'!ie7'是一个黑客: css-tricks.com/how-to-create-an-ie-only-stylesheet - Jon Onstott


将'padding-bottom:20px'添加到预标签


2
2018-01-13 18:02



这会在每个浏览器中添加丑陋的填充,我只需要修复IE7。 - mbillard


包裹你的 PRE 在一个 DIV 有一些额外的利润。


1
2018-01-13 16:09





包裹你的 PRE 在一个 DIV 并申请 overflow: scroll; 到了 DIV。确保你使用其中任何一个 <div style="overflow: scroll; width='...'; height='...';"> 或者为div分配一个类,以确保不是所有的都获得滚动条。

例如,在我的博客中,我使用 <div style="overflow: scroll; width: 100%;"> 对于小块代码,人们可以水平滚动,div将增长到正确的高度。对于较长的作品,我还指定一个高度来减少整篇文章的长度;然后人们也可以垂直滚动。

你也可以试试 <div style="overflow: scroll; overflow-y: hidden; width: 100%;"> 只获得一个水平滚动条(而不是两个,其中一个被禁用)。也许 <div style="overflow-x: scroll; width: 100%;"> 也有效。


0
2018-01-13 16:25



这将为我提到的每个DIV添加一个滚动条我不想要。 - mbillard
只需添加style =“overflow:scroll;”到div而不是在CSS样式表中为所有DIV指定它。 - Aaron Digulla