【发布时间】:2010-09-20 11:28:25
【问题描述】:
我有一个 div 容器,它的样式定义如下:
div#tbl-container
{
width: 600px;
overflow: auto;
scrollbar-base-color:#ffeaff
}
一旦我填充了这个 div 包含的表格,这就会自动给我水平和垂直滚动条。 我只想自动出现水平滚动条。我将以编程方式修改表格的高度。
我该怎么做?
【问题讨论】:
我有一个 div 容器,它的样式定义如下:
div#tbl-container
{
width: 600px;
overflow: auto;
scrollbar-base-color:#ffeaff
}
一旦我填充了这个 div 包含的表格,这就会自动给我水平和垂直滚动条。 我只想自动出现水平滚动条。我将以编程方式修改表格的高度。
我该怎么做?
【问题讨论】:
你不应该同时使用水平和垂直滚动条,除非你的内容足够大以需要它们。
但是,由于错误,您通常在 IE 中执行此操作。检查其他浏览器(Firefox 等),看看实际上是否只有 IE 这样做。
IE6-7(在其他浏览器中)支持建议的 CSS3 扩展来独立设置滚动条,您可以使用它来抑制垂直滚动条:
overflow: auto;
overflow-y: hidden;
您可能还需要为 IE8 添加:
-ms-overflow-y: hidden;
因为微软威胁要在 IE8 标准模式下将所有 pre-CR-standard 属性移动到他们自己的“-ms”框中。 (如果他们一直这样做的话,这是有道理的,但现在对每个人来说都是一种不便。)
另一方面,IE8 完全有可能修复了这个错误。
【讨论】:
我还必须将white-space: nowrap; 添加到样式中,否则元素会折叠到我们要删除滚动到的区域中。
【讨论】:
white-space: nowrap; 是关键,没有它你的元素会堆叠/包装。
此解决方案没有父 div 的高度/宽度规范,因此它将响应调整窗口大小,并且最有用的原因是水平滚动条会在需要时出现。 p>
.container{
padding:20px;
border:dotted 1px;
white-space:nowrap;
overflow-x:auto;
}
.box{
width:100px;
height:180px;
background-color: red;
margin:10px;
display:inline-block
}
看看DEMO
【讨论】:
同时显示:
<div style="height:250px; width:550px; overflow-x:scroll ; overflow-y: scroll; padding-bottom:10px;"> </div>
隐藏 X 轴:
<div style="height:250px; width:550px; overflow-x:hidden; overflow-y: scroll; padding-bottom:10px;"> </div>
隐藏 Y 轴:
<div style="height:250px; width:550px; overflow-x:scroll ; overflow-y: hidden; padding-bottom:10px;"> </div>
【讨论】:
您也可以将其设为overflow: auto 并以这种方式提供最大固定高度和宽度,当文本或其中的任何内容溢出时,它将仅显示所需的滚动条
【讨论】:
我使用 CSS 属性:
1)“overflow-x: auto”;
2)“overflow-y: hidden”;
3)“white-space: nowrap”;
不要忘记为容器和内部 DIVS 组件设置宽度。 属性 "white-space : nowrap" 允许内部 DIVS 不放在不同的行上。
考虑以下 HTML:
<div class="container">
<div class="inner-1"></div>
<div class="inner-2"></div>
<div class="inner-3"></div>
</div>
我使用下面的 CSS 来实现水平滚动:
.container {
height: 80px;
width: 600px;
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
}
.inner-1,.inner-2,.inner-3 {
height: 60px;
max-width: 250px;
display: inline-block; /* this should fix it */
}
小提琴:https://jsfiddle.net/qrjh93x8/(不适用于上述代码)
【讨论】:
使用下面的
<div style="max-width:980px; overflow-x: scroll; white-space: nowrap;">
<table border="1" style="cellpadding:0; cellspacing:0; border:0; width=:100%;" >
【讨论】:
.box-author-txt {width:596px; float:left; padding:5px 0px 10px 10px; border:1px #dddddd solid; -moz-border-radius: 0 0 5px 5px; -webkit-border-radius: 0 0 5px 5px; -o-border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px; overflow-x: scroll; white-space: nowrap; overflow-y: hidden;}
.box-author-txt ul{ vertical-align:top; height:auto; display: inline-block; white-space: nowrap; margin:0 9px 0 0; padding:0px;}
.box-author-txt ul li{ list-style-type:none; width:140px; }
【讨论】:
CSS3 具有overflow-x 属性,但我不希望对此有很大的支持。在 CSS2 中,你所能做的就是设置一个通用的 scroll 策略,并使用你的 widths 和 heights 以免把它们搞砸。
【讨论】:
我们应该设置为overflow: auto 并隐藏一个我们不用于在不支持的 CSS3 浏览器上工作的滚动条。
看看这个CSS Overflow; XME.im
【讨论】: