我有一个奇怪的问题。我们先看一下代码片段:
...
<td>
<div class="scrollable">...</div>
...other cell content...
</td>
...
现在我希望表格的呈现方式就好像不占据任何水平空间(即不会推动表格的右侧),但如果比包含它的单元格更宽,则显示水平滚动条(在上,而非整个单元格)。这是否可以通过CSS实现?
谢谢!
使用您提供的基本示例,您可能需要在 td
上设置固定宽度,并使用 overflow
和 overflow-y
。 overflow-y
仅适用于 CSS3,但您没有指定 IE8 及以下版本。
编辑 抱歉,您还需要在 td
上添加 display:block;
td { display: block; width: 50px; }
.scrollable { overflow: scroll; overflow-y:hidden; }
更新: 查看 jsfiddle 示例,请注意表格的 100% 宽度和固定布局.. 这是为了防止示例只向视口添加水平滚动并继续进行。 http://jsfiddle.net/MMeTe/4/
td
应用一个类,并在其上设置一个百分比宽度?因为你的td
将会调整大小以容纳其内容。另外,在scrollable
周围添加一个包装器,并为其应用一个宽度。 - Pricey@media screen and (min-width: 500px){ .scrollable { overflow: hidden; } }
或许可以实现,但我没有尝试过。你可以在网上搜索更多关于媒体查询的信息。 - Pricey感谢Pricey,他的jsfiddle示例回答了这个问题,但为了在这里附上带有代码的答案,我将其附在下面:
...
<style type="text/css>
.mytable {
table-layout: fixed;
}
.scrollable{
overlow-y: auto;
}
</style>
...
<table class="mytable">
<tr>
<td>
<div class="scrollable">...</div>
other content...
</td>
</tr>
</table>