質問するログイン新規登録

Q&A

解決済

1回答

807閲覧

table要素の背景色を一部だけ画面幅いっぱいに広げたい

mupo

総合スコア37

HTML5

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

CSS

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

0グッド

0クリップ

投稿2022/02/09 06:52

編集2022/02/10 07:10

0

0

前提・実現したいこと

table要素の中の背景色を一部分だけ画面幅いっぱいに広げたいと思っています。

試したこと

th、td要素にcalcを記述して幅いっぱいに広げようとしましたがうまくいきませんでした。
table要素ではmarginがきかないと出てしまったのでcalcが使用できないようで困っています。
なにか別の方法はありますか?

該当のソースコード

HTML

1<table> 2 3<tr> 4<th class="bg">タイトル1</th> 5<td class="bg">本文1</td> 6</tr> 7<tr> 8<th>タイトル2</th> 9<td>本文2</td> 10</tr> 11<tr> 12<th class="bg">タイトル2</th> 13<td class="bg">本文2</td> 14</tr> 15 16</table>

css

1table { 2 position:relative; 3 width: 100%; 4 max-width: 1000px; 5 border-collapse: collapse; 6 margin: 0 auto; 7} 8 9table th.bg, 10table td.bg { 11 width: 100vw; 12 margin: 0 calc(50% - 50vw); 13 background: #ececec; 14}

追記

質問いただいた箇所の画像を追加します。
イメージ説明

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

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

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

m.ts10806

2022/02/09 06:55

>table要素ではmarginがきかないと出てしまったので 出典明示してください。
mupo

2022/02/09 07:36

firefoxの開発ツールでcssを確認するとmargin: 0 calc(50% - 50vw);部分がグレーアウトになっており「marginはテーブルを構成する要素に影響を及ぼしません」と書かれています。
m.ts10806

2022/02/09 07:38

画面キャプチャで良いので質問本文に提示いただけますか? 質問は編集できます。
yambejp

2022/02/10 06:04

max-width指定をやめて全幅テーブルにしてはいけないのでしょうか? テーブルじゃないところをテーブルのように見せる必要性はなんでしょう?
mupo

2022/02/10 07:12

追記で画面キャプチャをしました。 >max-width指定をやめて全幅テーブルにしてはいけないのでしょうか? デザイン的に背景色を画面いっぱいに広げたいだけで、テーブルの中身(テキストが書いてある箇所)まで広げたいわけではないのでその方法ではうまくいきませんでした。
guest

回答1

0

ベストアンサー

疑似要素を使うのはどうでしょうか。

css

1 :where(table th.bg,table td.bg)::before { 2 content: " "; 3 display: block; 4 position: absolute; 5 z-index: -1; 6 width: 100vw; 7 margin: 0 calc(50% - 50vw); 8 background: #ececec; 9 text-align: center; 10 }

投稿2022/02/10 05:49

Lhankor_Mhy

総合スコア37736

mupo

2022/02/10 07:13

:whereという疑似要素の書き方を初めて知りました。ありがとうございます! こちらの方法を使用させていただき、無事に表示ができました。
Lhankor_Mhy

2022/02/10 07:35 編集

お役に立てたようで何よりです。 なお、:where は疑似要素ではないです。::before が疑似要素です。念のため。 また、行に折り返しが発生した場合は、これでは上手くいかないかもしれません。 その場合は、height をなんとかする方向だと思います。もしかすると、ラップ要素が必要かもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問