🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS

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

Q&A

解決済

1回答

2643閲覧

flexboxの背景色をa:hover で変えたい

shinkansen

総合スコア1

CSS

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

0グッド

0クリップ

投稿2021/03/18 13:41

編集2021/03/18 13:56

前提・実現したいこと

flexboxの背景色、.flex-item a:hover { color: #000; background: hsla(180,50%,50%,0.7);
が変わらない。
文字は変わる。a:hover で背景色も変えたい。
よろしくお願いします。

発生している問題・エラーメッセージ

変化がない。反応がない。

該当のソースコード

a:hover

CSSここに言語名を入力
ソースコード

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>kudamono</title> <style> <!-- .flex-container { padding: 0; margin: -2px; font-size: 0; font-family: Helvetica, Arial, sans-serif; } .flex-item { position: relative; display: inline-block; height: 0; width: 25%; padding-top: 25%; height: auto; font-size: 9px; color: white;a font-weight: bold; text-align: center; font-size: 13px; } .flex-item a { color: #fff; background: #9fb7d4;} .flex-item a:hover { color: #000; background: hsla(180,50%,50%,0.7); } @media (min-width: 480px) { .flex-item { width: 16.66666%; padding-top: 16.66666%; font-size: 13px; } } @media (min-width: 768px) { .flex-item { width: 14.2857143%; padding-top: 14.2857143%; font-size: 13px; } } .flex-item-inner { position: absolute; display: flex; justify-content: center; align-items: center; top: 0; bottom: 0; right: 0; left: 0; margin: 1px; background: #71aa44; } --> </style> </head> <body> <div class="flex-container"> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> MOMO </div> </div> </a> </div>
<div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> SAKURANBO </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> NASHI </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> ICHIGO </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> MIKAN </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> BANANA </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> MERON </div> </div> </a> </div> <div class="flex-item"> <a href="#"> <div class="flex-item-inner"> <div class="flex-item-inner-content"> SUIKA </div> </div> </a> </div>
</div> </body> </html>

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

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

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

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

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

kei344

2021/03/19 04:15

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答1

0

ベストアンサー

解決案

.flex-item a:hover のスタイルを指定している部分を下記のように書き換えればホバー時に背景色が指定の色に変わるようになります。

CSS

1.flex-item .flex-item-inner:hover { 2 color: #000; background: hsla(180,50%,50%,0.7); 3}

解説

shinkansenさんのコードで背景色が変わらないのは、指定している<a>は高さや幅を持っていないからです。
ブラウザのデベロッパーツールを用いて見てみるとわかりますが、該当の<a>heightwidthも0になっています。
スクリーンショット
背景の面積が0な要素の背景色を変えても意味がありませんから、<a>の子要素でちゃんと面積を持っているflex-item-innerの背景色をホバー時に変えるようにスタイル指定をすればOKということになります。
スクリーンショット

投稿2021/03/18 15:36

marasonPD

総合スコア170

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

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

shinkansen

2021/03/19 00:46

おせわになりました。無事背景色を変えられました。本当にありがとうございます。
shinkansen

2021/03/19 05:07

すみません初めてで、、、 ベストアンサーチェックしました。
marasonPD

2021/03/19 10:57

ご確認ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問