私が達成しようとしている効果は次のとおりです。タイトルが付いたテキスト行があり、その下にテーブルが必要です。テーブルがブラウザウィンドウに収まるには高すぎる可能性が高いので、必要に応じて垂直スクロールバーが必要です。テーブルは広すぎてはいけませんので、水平スクロールバーは必要ありません(でも、必要ならばそれを表示したいと思います)。いずれにせよ、私はタイトルをスクロールさせたくありません。したがって、垂直スクロールバーが表示され、私はテーブルをスクロールし、タイトルを修正する必要があります。私は<div>
を設定しようとしています。その幅は、ブラウザがテーブルを表示するために必要とする幅です(タイトルはそれよりも小さくなりません)。ここでFirefoxは不要な水平スクロールバーを表示します
は、私が試したものです:
<html>
<head>
<title>Page title</title>
<style type="text/css">
.mytab { border-style: solid; border-collapse: collapse }
table.mytab td { border-style: solid; border-width : 1px;
padding: 5px }
</style>
</head>
<body>
<div style="display: inline-table">
<div style="padding-bottom: 10px; text-align: center">Table title</div>
<div style="height: 100px; overflow: auto">
<table class="mytab">
<tr><th/><th>Data1</th><th>Data2</th><th>Data3</th></tr>
<tr><td>AAAA</td><td>12348173</td><td>7598734</td><td>zioxuoiuf</td></tr>
<tr><td>BBBB</td><td>29834782</td><td>7895232</td><td>kuoiu2kjf</td></tr>
<tr><td>CCCC</td><td>98291123</td><td>io242o2</td><td>982734211</td></tr>
</table>
</div>
</div>
</body>
</html>
(私は最終的には、テーブルの高さ以上100pxにできるようにしたいでしょうが、私はスクロールバーをテストすることができるように私はそれを設定してください。)
これは、Chrome(53.0.2785.116 m)では必要なものですが、Firefox(49.0.1)ではできません。 Chromeでは、ブラウザがテーブルを作成する幅を把握していて、その右側に垂直スクロールバーが追加されているようです。 Firefoxでは、ブラウザがテーブルをどのくらい幅広く描いているのかが分かりますが、垂直スクロールバーの内側には、の幅のボックスがテーブルの一部を隠しています。次に、テーブルのすべてを見ることができないので、水平スクロールバーを追加します。クロームと
外観:Firefoxで
外観:
(Firefoxが垂直テーブルのビット以下を表示しているように私には関係ありません。しかし、必要がない限り、水平スクロールバーが表示されないようにすることは間違いありません。)
これを修正してFirefoxでうまく動作させるにはどうすればいいですか?
これはMozillaとIEのバグとして私を襲っています。私は必要なだけ多くの水平スペースを使う余裕があり、代わりに16px以下のスペースを使います。たとえそれが醜いとしても、答えをありがとう。 – ajb
@ajb私はブラウザが "space"の意味を決めると思います。Firefoxの場合、スクロールバーは特定のコンテキストでスペースとして数えられません。 –
興味深い - それを稼働させるには、16pxではなく17pxにしなければならなかった。しかし、それは動作します。 – ajb