[解決済み] ボーダーのスタイルがスティッキーポジション要素で機能しない
2022-06-06 20:51:14
質問
でボーダーが機能しないのはなぜでしょうか?
position: sticky;
属性で動作しません。付箋を貼ったテーブルのヘッダーにボーダースタイルを設定したいのですが、透明な背景色は使いたくありません。しかし、私は透明な背景色を使用したくありません。どうすれば実現できるでしょうか?以下は、私の問題のためのサンプルコードと
JSFiddleのリンク
#wrapper {
width: 400px;
height: 200px;
overflow: auto;
}
table {
width: 100%;
text-align: center;
border-collapse: collapse;
}
table tr th,
table tr td {
border: 2px solid;
}
table thead th {
position: -webkit-sticky;
position: sticky;
top: 0;
background-color: #edecec;
}
<div id="wrapper">
<table>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
</tr>
</thead>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
</tr>
<tbody>
</tbody>
</table>
</div>
以下は、私が欲しいもののためのスクリーンショットであり、私の質問を十分に明確にしていない人。
のインラインボーダースタイルを見ることができます。
th
は機能しない (
を削除する
position
属性で囲むと、ボーダーが表示されます。
).
少し下にスクロールした後。すべてのボーダースタイルがなくなっているのがわかると思います。
どのように解決するのですか?
この問題が発生するのは
border-collapse: collapse
. ブラウザがボーダーを折りたたむと、上下のボーダーが
<th>
の上下のボーダーが周囲の要素に適用される必要があります。
<table>
に、下のボーダーは次の
<tr>
.
もしあなたが
border-collapse: separate
を使い、ボーダーを片側に寄せるようにすると、ボーダーは本当に
<th>
にくっつき、期待通りに固定され、折りたたまれたように見えます。
HTMLスニペットに適用できるスタイルの例を以下に示します。
#wrapper {
width: 400px;
height: 200px;
overflow: auto;
}
table {
width: 100%;
text-align: center;
border-collapse: separate; /* Don't collapse */
border-spacing: 0;
}
table th {
/* Apply both top and bottom borders to the <th> */
border-top: 2px solid;
border-bottom: 2px solid;
border-right: 2px solid;
}
table td {
/* For cells, apply the border to one of each side only (right but not left, bottom but not top) */
border-bottom: 2px solid;
border-right: 2px solid;
}
table th:first-child,
table td:first-child {
/* Apply a left border on the first <td> or <th> in a row */
border-left: 2px solid;
}
table thead th {
position: sticky;
top: 0;
background-color: #edecec;
}
関連
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] <meta charset="utf-8"> vs <meta http-equiv="Content-Type">.
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] jQueryで名前を指定して要素を選択するには?
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] .css()関数で追加したスタイルを削除するにはどうしたらいいですか?
-
[解決済み] hr要素の色を変更する
-
[解決済み] 入力テキスト要素のボーダーハイライトを削除する方法
-
[解決済み】"position: sticky; "プロパティはどのように機能するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジャンボトロンのセンター出しは?
-
[解決済み] CSS - カーソルを置いたときに塗りつぶしの色を変更する - SVG PATH
-
[解決済み] CSSでテキストを垂直方向にセンタリングするには?[重複しています]
-
[解決済み] クリアフィックスとは何ですか?
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] preタグでテキストを折り返すにはどうしたらよいですか?
-
[解決済み] MIME-typeが原因でスタイルシートが読み込まれない
-
[解決済み] 残りの幅を埋めるためにdivを展開する
-
[解決済み] HTMLのテーブルが100%幅で、tbodyの中に縦スクロールがある場合 [重複]。
-
[解決済み] htmlテーブルのみ最上段をフリーズさせる(テーブルヘッダーの固定スクロール)