[HTML]1行目と1列目を固定表示する(position:sticky)

Pocket

HTMLとかCSSとかJavascriptとかキライで苦手で時代おくれのmasaoです。

そんなおっさんが、必要に迫られて、1行目と1列目を固定したテーブルを作らなくてはいけなくなりました。

スポンサーリンク

テーブルの1行目と1列目を固定表示

結論から言いますと、IE11では期待する動作とはなりません(Edgeでは動作します)。なので、残念ながらIE11で固定表示させたい人は別のページを見てください。このページに求めるものはありませんので、見るだけ時間の無駄です。

「IE11なんて、どうでもいいだろ。今でも企業はIE11率がどうのこうの?だから何?」と個人的には思っています。

完成図

完成図

上記のテーブルは以下のHTMLで作成した結果です。詳細はコメント見てください。たくさん書きました。(内容はまた別の話ですが。。。。)

HTML

<div>
  <table>
    <tr><th class="kado">①</th><th class="row1">固定1</th><th class="row1">固定2</th><th class="row1">固定3</th></tr>
    <tr><th class="col1">②</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">③</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">④</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">⑤</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">⑥</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">⑦</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">⑧</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
    <tr><th class="col1">⑨</th><td>スクロール</td><td>スクロール</td><td>スクロール</td></tr>
  </table>
</div>

CSS

th, td {
  white-space: nowrap; /* セル内のテキストの折り返しをなしにする */
  letter-spacing: 3em; /* 横長のテーブルにするために文字の間隔を設定 */
}

/* テーブルを入れる器のサイズ設定 */
div {
  width:  400px;
  height: 200px;
  overflow: auto; /* 中身のテーブルが大きい場合に自動でスクロールバーを出す */
}

/* テーブルの角のセルのスタイル */
.kado {
  position: sticky; /* stickyを設定 */
  top:      0;      /* 上に位置を固定 */
  left:     0;      /* 左に位置を固定 */
  z-index:  5;      /* 最前面に表示 */
  background-color: gray; /* わかりやすさと、スクロールするセルを見えなくする */
}

/* 1行目のセルのスタイル */
.row1 {
  position: sticky; /* stickyを設定 */
  top:      0;      /* 上に位置を固定 */
  z-index:  4;      /* スクロールするセルよりも前面に表示 */
  background-color: pink; /* わかりやすさと、スクロールするセルを見えなくする */
}

/* 1列目のセルのスタイル */
.col1 {
  position: sticky; /* stickyを設定 */
  left:     0;      /* 左に位置を固定 */
  z-index:  4;      /* スクロールするセルよりも前面に表示 */
  background-color: pink; /* わかりやすさと、スクロールするセルを見えなくする */
}

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *