質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

35602閲覧

sticky(CSS)を使って列を2列分固定する方法を教えてください

rokujyoma

総合スコア8

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/08/11 12:10

編集2018/08/11 13:44

前提・実現したいこと

初心者です。
ブログで.sticky(CSS)を使って行列が固定できるように表を作っています。
第1列目と第2行目を固定したいのですが、どうしても第2列目が第1列目を隠してしまいます。
第1列目第2列目を両方隠さず固定するにはどうしたらいいでしょうか?
よろしくお願いします。

注 Javascriptは使って見たいのですが、勉強不足でまだ手が出せていません。

該当のソースコード

HTML

<div class="sticky_table"> <table> <thead> <tr> <th class="blank"><strong>a</strong></th> <th class="blank2"><strong>b</strong></th> <th><strong>c</strong></th> <th><strong>d</strong></th> <th><strong>e</strong></th> <th><strong>f</strong></th> <th><strong>g</strong></th> <th><strong>h</strong></th> <th><strong>i</strong></th> <th><strong>j</strong></th> <th><strong>k</strong></th> <th><strong>l</strong></th> <th><strong>m</strong></th> <th><strong>n</strong></th> <th><strong>o</strong></th> </tr> </thead> <tbody> <tr> <th><strong>1</strong></th> <th><strong>2</strong></th> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td>12</td> <td>13</td> <td>14</td> <td>15</td> </tr> </tbody> </table> </div>

CSS

.sticky_table { display: block; position: relative; overflow: scroll; width: calc(100%); height: calc(100vh); border-collapse: collapse; font-size: 0; } .sticky_table thead, .sticky_table tbody { display: block; width: -webkit-max-content; width: -moz-max-content; width: max-content; } .sticky_table th, .sticky_table td { display: inline-block; width: 2.0rem; background: #fff; font-size: 1.0rem; } .sticky_table tbody th { position: -webkit-sticky; position: sticky; left: 0; z-index: 1; } .sticky_table thead { position: -webkit-sticky; position: sticky; top: 0; z-index: 2; } .sticky_table thead th.blank { position: -webkit-sticky; position: sticky; width: 1.0rem; top: 0; left: 0; z-index: 3; } .sticky_table thead th.blank2 { position: -webkit-sticky; position: sticky; width: 12.0rem; top: 0; left: 0; z-index: 4; }

試したこと

こちらを参考にしてやっています。
CSSのみで行・列ヘッダ固定テーブルを実装

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

position: sticky;をかけてるところのtopの値を変えてみてください
例えば,top: 50px;とすると,コンテナの上辺から50pxの位置に張り付きます

1行目にしたい要素をtop: 0;にしているなら,
2行目にしたい要素をtop: /*1行の高さ*/;にしてください

投稿2018/08/11 13:08

編集2018/08/11 13:09
liveasnotes

総合スコア1284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rokujyoma

2018/08/11 13:48

回答ありがとうございます。 まず、質問で行と列を逆に書いてしまっていましたすいません。 回答を参考にleft: 0; のところを変更したらうまくいきそうでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問