【備忘録】表を横や縦にスクロールし、改行もされるようにする

ウェブ

前の表を練習する記事である程度のことはできるようになったのだが、スクロールを伴う表に関してはうまくできなかった。なのでここでは、「スクロールできる表」の作成に関しての備忘録を書いていく。参考にしたのは以下の記事だ。ありがたい。

今回、参考にした記事
  1. 横スクロールと改行の両立
  2. 縦スクロールとセッダーセルの固定
    https://csshtml.work/table-scroll/

  3. ちなみに過去の記事「表基本編」はこちら
    https://sorezorelife.com/table-practice/

横のみスクロール

▼完成形はこんな感じ(横のみスクロール1)

横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます。ヘッダーもできます
横にのみスクロールし、改行されます右寄せにもできます

あああああああああああああああああああ

▼完成形はこんな感じ(横のみスクロール2:左をヘッダーセルに)

横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます。ヘッダーもできます
横にのみスクロールし、改行されます右寄せにもできます

▼完成形はこんな感じ(横のみスクロール2:上をヘッダーセルに)

横にのみスクロールし、改行されます横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます横にのみスクロールし、改行されます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます横にのみスクロールし、改行されます。ヘッダーもできます
横にのみスクロールし、改行されます横にのみスクロールし、改行されます右寄せにもできます

※div内にhtmlを埋め込むことによってこのようにもできる。いつか使うようなことがありそう。

▼完成形はこんな感じ(左上のみを固定した)

栄養素/野菜名トマトきゅうりバナナおまめブロッコリー鶏肉豚肉牛肉牛乳
ビタミン     
カルシウム××20     
タンパク質     

▼完成形はこんな感じ(左上のみを固定し、ヘッダーは固定される)

栄養素/野菜名トマトきゅうりバナナおまめブロッコリー鶏肉豚肉牛肉牛乳
ビタミンまるしかく
カルシウム××20 ばつひひ
タンパク質 のねああ 
aaaaaaauuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiooooooooooooooooppppppppppppppppppppppppp
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiikkkkiiiiiiiiiiiiiiiiiiiiiikkkkkkkkkkkjjjjjjjjjjooooooooooopppppppppp

横と縦でスクロール

▼完成形はこんな感じ(横と縦でスクロール)

横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されますiiiiiiiiiiiiiiiiiああ iiiiiiiiiiiiiiiiiiiii
aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuuuuuuueeeeeeeeeeeeeeeeeeeeee ooooooooooooooooooooo
kaaaaaaaaaakiiiiiiiiiiiiiiiiikuuuuuuuuuuuuuuuukeeeeeeeeeeeeeeee kooooooooooooooo

▼行と列を固定する

横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されますiiiiiiiiiiiiiiiiiああ iiiiiiiiiiiiiiiiiiiii
aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuuuuuuueeeeeeeeeeeeeeeeeeeeee ooooooooooooooooooooo
kaaaaaaaaaakiiiiiiiiiiiiiiiiikuuuuuuuuuuuuuuuukeeeeeeeeeeeeeeee kooooooooooooooo

▼一番左上を固定する

横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます 横と縦でスクロールし、改行されます
横と縦でスクロールし、改行されます横と縦でスクロールし、改行されます横と縦でスクロールし、改行されますiiiiiiiiiiiiiiiiiああ iiiiiiiiiiiiiiiiiiiii
aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuuuuuuueeeeeeeeeeeeeeeeeeeeee ooooooooooooooooooooo
kaaaaaaaaaakiiiiiiiiiiiiiiiiikuuuuuuuuuuuuuuuukeeeeeeeeeeeeeeee kooooooooooooooo

横と縦でスクロールし行と列ともにセルヘッダーにするなら左上を固定したほうがいい。
そのためには”hidariue-kotei“をdiv classに追加。

▼通常の表と比較する(スクロールしない)

通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)
通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)
通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)通常の表と比較する(スクロールしない)

これは通常の表である。

横スクロールのみと改行のやり方

CSSを記入(横スクロールのみ)

.table-yoko-scroll {
overflow-x: scroll;

}
.table-yoko-scroll table {
table-layout: fixed;
}

記述したのはこれ。「overflow-xは横に動くよ」という意味。

横スクロールにすると、スマホ表示で表の下の幅が広すぎたので以下のcssで調整した。今後も調整が必要だろう。

@media screen and (max-width: 480px){
.table-yoko-scroll {
margin-bottom:.5em;
}

htmlにclassを挿入(横スクロールのみ)

⑴まずは、通常のやり方で表を作成する。

⑵その後、html編集にして全体を<div class=”table-yoko-scroll”>~~</div>で囲う。

⑶そのまま<table style=”width: px;”>値をpxにする。最初のサンプルは800pxだ。通常ここは%で記入されるがpxにするのがミソ。

⑷そのまま<th style=”width: px;”>の値を合算して⑶で決めた値にするようにする。最初のサンプルは2列あるので、100pxと700pxにした。

※本当はpxではなく、%で指定した。だけどこればっかりは仕方ないのかな、と思う。

横と縦のスクロールと改行のやり方

CSSを記入

.table-tate-scroll{
overflow-y: scroll;
height: 200px;
}

「overflow-y: scroll;で縦に動くよ」とする。heightは意外と重要で、縦幅をどこまで表示させるのか、というもの。今後、調整が必要だろう。

@media screen and (max-width: 480px){
.table-tate-scroll{
height: 200px;
margin-bottom:.8em;
}}

PCでの表示とスマホ表示では縦幅に大きな違いが生まれるわけだから、こちらでもheightを指定。また表の下の間が気になったためmarginで調節した。

htmlにclassを挿入(横スクロールのみ)

先ほどの横スクロールのものとほとんど変わらない。変わるのは⑵のみ。

⑴まずは、通常のやり方で表を作成する。

⑵その後、html編集にして全体を<div class=”table-yoko-scroll table-tate-scroll”>~~</div>で囲う。これで、「横にも縦にも動くよ」と指示を与える。

⑶、⑷は先ほどと同じなので省略。

問題点1,PC表示では縦スクロールしない

理由は謎。今後直していきたいがひとまず保留だ。

タイトルとURLをコピーしました