現在、テーブルの幅が広すぎるため、ブラウザは水平スクロールバーを追加します。
テーブルcontentが広すぎる場合( この例 のように)、コンテンツを変更する以外にできることはありませんブラウザがより狭い形式で表示できるようにします。以前の回答とは異なり、幅が100%に設定されていても、コンテンツが広すぎる場合(リンク、および this one 、デモンストレーション)はまったく効果がありません。ブラウザは、可能であればテーブルを左と右のマージン内に保持しようとし、できない場合は水平スクロールバーのみに頼ります。
コンテンツを変更してテーブルをより狭くするいくつかの方法:
white-space: nowrap
のいずれかのコンテンツ(または古いnowrap
属性、
、nobr
要素など)、それらがなくても生きられるかどうかを確認し、ブラウザが幅を抑えるためにそのコンテンツをラップするオプションを持つようにします。テーブルの幅が広すぎるが、その正当な理由がわからない場合(コンテンツがそれほど広くないなど)、テーブルのスタイル設定方法、周囲の要素に関する詳細情報を提供する必要があります。繰り返しますが、デフォルトでは、ブラウザは可能な場合はスクロールバーを回避します。
CSS:
table {
table-layout:fixed;
}
コメントからCSSで更新します。
td {
overflow: hidden;
text-overflow: Ellipsis;
Word-wrap: break-Word;
}
携帯電話の場合、テーブルの幅はそのままにしておきますが、追加のCSSクラスをテーブルに割り当てて、水平スクロールを有効にします(テーブルはモバイル画面に表示されなくなります)。
@media only screen and (max-width: 480px) {
/* horizontal scrollbar for tables if mobile screen */
.tablemobile {
overflow-x: auto;
display: block;
}
}
十分に十分です。
table { width: 100%; }
Bodyで使用されるすべてのマージンとパディングのため、期待どおりの結果が得られません。したがって、IFスクリプトはOKで、Jqueryを使用します。
$("#tableid").width($(window).width());
そうでない場合は、このスニペットを使用してください
<style>
body { margin:0;padding:0; }
</style>
<table width="100%" border="1">
<tr>
<td>Just a Test
</td>
</tr>
</table>
幅がページを完全に覆っていることがわかります。
主なことは、本文で示したようにmargin
とpadding
を無効化しすぎることです。その後、設定されます。
どうですか:
table {
width: 100%;
}
画像が大きすぎて表が広くなる可能性があります。
また、テーブルが他のブラウザでどのように見えるかを確認してください。
持っているコンテナ要素にテーブルを置きます
オーバーフロー:スクロール; max-width:95vw;
または、テーブルを画面に合わせて、overflow:すべてのテーブルセルをスクロールします。
この質問にはすでに良い解決策がありますが、誰もがフォントサイズを忘れてしまいました。これは最後になりましたが、少なくとも解決策ではありません。フォントサイズを2または3 px減らすことができます。それでもユーザーには見やすく、テーブルの幅を多少減らすことができます。これは私のために働いた。私のテーブルには5つの列4があり、完全に5番目がビューポートから外れたことを示しています。だから私はフォントサイズを小さくし、5列すべてが画面に収まっている
table th td
{
font-size:14px;
}
参考までに、テーブルの列が多すぎても減らすことができない場合は、水平スクロールよりもフォントサイズを小さくすることをお勧めします。 2つの利点があります。モバイルWebのスタイルは同じまま(水平スクロールなしで良好)で、ユーザーが小さなサイズを見ると、ユーザーのほとんどが快適なレベルまでテーブルを拡大します。
セットする font-size
ビューポート幅に関連する単位、例:
table { font-size: 0.9vw; }
これにより、ページが狭すぎる場合にフォントが読めなくなりますが、これは許容範囲内である場合があります。