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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

1回答

864閲覧

画像がhoverされた時に周りに色をつけたい

yyyrrr

総合スコア17

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

0グッド

0クリップ

投稿2020/11/12 08:44

下記の画像のようにhoverされた時にimgタグの周りに色をつけたいです。
imgタグをspanタグで囲んで色をつけてみたのですが、spanタグの真ん中にimgが配置されず、またwidthとheightでhoverされた時に色を付ける大きさ記述したらその分、左右にずれてしまい、spanタグの真ん中にimgタグをうまく配置することができません。
画像に周りに色をつけるときはどのように実装したらいいのでしょうか?

return ( <div className="padding-16 flex gap-5 flex-container"> <img src={img} /> <div className="flex flex-direction gridgap-5"> <p> {name} </p> <p> {age} </p> </div> <span className="hover"> <img src="img/dot.svg" /> </span> </div> )
//style.scss div, span, img { &.padding-16 { padding: 16px; } &.flex { display: flex; } &.flex-direction { flex-direction: column; } .flex-container > :last-child { margin-left: auto; } &.gap-5 { gap: 5px; } &.hover { display: inline-block; &:hover { height: 24px; background-color: blue; transition-duration: 0.3s; transition-property: background-color, box-shadow; border-radius: 50%; } } }

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

:hoverする前にサイズや背景色のスタイル、アニメーションの設定をしておいて、
:hoverには変化するスタイルのみ設定してください。

あとspanの真ん中に画像を配置するにはFlexBoxを使うといいでしょう。

css

1div, 2span, 3img { 4 &.padding-16 { 5 padding: 16px; 6 } 7 &.flex { 8 display: flex; 9 } 10 &.flex-direction { 11 flex-direction: column; 12 } 13 .flex-container > :last-child { 14 margin-left: auto; 15 } 16 &.gap-5 { 17 gap: 5px; 18 } 19 &.hover { 20 display: inline-flex; 21 justify-content: center; 22 align-items: center; 23 height: 100px; 24 width: 100px; 25 border-radius: 50%; 26 background-color: rgba(255,255,255,0); 27 transition-property: background-color, box-shadow; 28 transition-duration: 0.3s; 29 &:hover { 30 background-color: blue; 31 box-shadow: 5px 5px 5px rgba(0,0,0,0.3); } 32 } 33}

投稿2020/11/12 10:59

編集2020/11/12 11:00
hatena19

総合スコア33699

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

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

yyyrrr

2020/11/12 16:37

解決できました!!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問