td
テーブルがあり、その内容が行の指定された高さを超えたときに垂直スクロールバーを表示したいと思います。
このサンプルコードがありますが、コンテンツに関係なく、y軸にアクティブなスクロールバーが表示されません。
td
テーブルがあり、その内容が行の指定された高さを超えたときに垂直スクロールバーを表示したいと思います。
このサンプルコードがありますが、コンテンツに関係なく、y軸にアクティブなスクロールバーが表示されません。
ブラウザはオーバーフロースクロールバーをTD
タグに適用しません。テーブルセルの内容をdiv
タグで囲み、次のようにスクロールする必要があります。
<td><div>Do you see what I meancxzdaaaaaaaaaaaaa?</div></td>
と:
td > div { overflow-y:scroll;overflow-x:hidden;}
Overflow:scroll;
ブロックレベルの要素にスクロールバーを表示する必要がありますが、そうでtd
はありません。それは何をすべきtd
ですか?CSSの仕様はこれについて明確ではないため、ブラウザの動作は異なります。
Chromeはスクロールバーを適用しますが、FFとIEは適用しません。クロスブラウザソリューションの場合は、コンテナdivを追加して、代わりにCSSを適用できます。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
table { width:250px;table-layout:fixed;border-collapse:collapse }
table tr { height:1em; }
td > div { overflow-y:scroll;overflow-x:hidden;}
</style>
</head>
<body>
<table border="1">
<tr>
<td>This is a test.</td>
<td><div>Do you see what I meancxzdaaaaaaaaaaaaa?</div></td>
<td>I hate this overflow.</td>
</tr>
</table>
</body>
</html>
td > div { overflow-y:auto;}
これにより、必要に応じて垂直スクロールバーが追加されます。