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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

3回答

824閲覧

画像以外の場所をホバーした時に画像を拡大したい

kizunami

総合スコア19

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2018/08/18 23:49

編集2018/08/19 01:09

現在、画像部分をホバーすると画像が拡大するアニメーションと、「READ MORE」にホバーした際に左から色が変わる動きをつけています。

画像が拡大するという動きを画像以外の箇所(下の画像でグレーで示している範囲)にカーソルが入った際に、適用されるようにしたいのですが方法が分かりません。
(READ MOREにカーソルを合わせた時には、「色が変わる+画像が拡大する」としたいと思っています)

通常時
イメージ説明

READMOREホバー時
イメージ説明

グレーの範囲にカーソルが入った時に画像を拡大させたい
イメージ説明

現在、下記記述をしています。

<div class="list-1"> <a href="url"> <div class="cp_imghover cp_zoomin">  <img src="no-image.jpg"> </div> </a> <a href="url"> <h2>Company</h2> <p>会社概要</p> </a> <div class="list-btn"> <a href="url">READ MORE</a> </div> </div>

css

1/*画像ズーム*/ 2.cp_imghover-a { 3overflow: hidden; 4cursor: pointer; 5} 6/*zoomin*/ 7.cp_zoomin img { 8-webkit-transition: all 1s ease; 9transition: all 1s ease; 10} 11.cp_zoomin-a img:hover { 12-webkit-transform: scale(1.05,1.05); 13transform: scale(1.05,1.05); 14} 15.list-btn{ 16 text-align: center; 17} 18.list-btn a{ 19 box-sizing: border-box; 20 display: inline-block; 21 width: 95%; 22 height: 45px; 23 text-align: center; 24 line-height: 45px; 25 font-size: 11px; 26 letter-spacing: 2px; 27 outline: none; 28 margin-left: 0; 29 font-weight: 700; 30 position: relative; 31 z-index: 2; 32 background-color: #fff; 33 border: 1px solid #44504d; 34 color: #44504d; 35 overflow: hidden; 36} 37/*ホバー時の動き*/ 38.list-btn a::before, 39.list-btn a::after{ 40 position: absolute; 41 z-index: -1; 42 display: block; 43 content: ''; 44} 45.list-btn a, 46.list-btn a::before, 47.list-btn a::after{ 48 -webkit-box-sizing: border-box; 49 -moz-box-sizing: border-box; 50 box-sizing: border-box; 51 -webkit-transition: all .4s; 52 transition: all .4s; 53} 54.list-btn a:hover{ 55 color: #fff; 56} 57.list-btn a::after{ 58 top: 0; 59 left: -100%; 60 width: 100%; 61 height: 100%; 62} 63.list-btn a:hover::after{ 64 left: 0; 65 background-color: #687c76; 66}

css勉強中です。質問内容が分かりづらかったら申し訳ありません。
上記cssはh2やpに対しての記述は省いています。

やりたいこと

①グレーで示した範囲にカーソルがくると画像が拡大する。
②READMOREの箇所にカーソルが来た時はREADMOREのホバーエフェクト+画像が拡大する動きをつけたい

お力いただけると助かります。
JavaScriptではなくCSSで出来る方法の方が好ましいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

:not()を使ってみては?

投稿2018/08/19 00:30

編集2018/08/19 00:31
m.ts10806

総合スコア80850

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

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

m.ts10806

2018/08/19 00:32

JavaScript利用もありますが、タグと質問内容からその方向は検討されてないかもしれないので、ひとまずCSSで実現可能そうなヒントを回答としました。
kizunami

2018/08/19 01:07

ご回答ありがとうございます!JavaScriptではなくCSSで出来る方法の方が好ましいです。 :not()を使う場合、全体にホバー時拡大するようにして、h2,p,list-btnを:not()とするということなのでしょうか・・・? (擬似クラスがまだ勉強不足でして、詳しくお教えいただけたら嬉しいです。)
m.ts10806

2018/08/19 01:50

「列挙されたセレクターに一致しない要素」(ドキュメントそのまま)なので、適用「させたくない」要素を指定します。 ドキュメントのミニマムコードも参考にやってみてください
kizunami

2018/08/19 04:46

ご丁寧にありがとうございます!今回は他の方のやり方で解決いたしましたが、擬似要素も使いこなせるよう勉強していきたいと思います。ありがとうございました!
guest

0

普通にdiv[class^="list"]:hover img{}で良いかなとも思うのですが,

pointer-eventsを使うと,逆パターン(一部に:hoverで,全体にcssをかける)も実装できて楽しいですよ

colissさんから引用

内包要素だけ除外,というのができるかは後で試してみます

投稿2018/08/19 04:07

編集2018/08/19 04:51
liveasnotes

総合スコア1284

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

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

kizunami

2018/08/19 04:45

ご回答ありがとうございます! 今回は他の方のやり方で解決いたしましたが、いただいた方法も今後活用出来るよう、勉強していきたいと思います。ありがとうございました!
guest

0

ベストアンサー

hoverのヒットエリアを子要素の領域だけ除外、というのはなかなか難しいと思います。
hoverの定義を重ね合わせして、imgをhoverしたときはscaleを元に戻してやればどうでしょう。

css

1.list-1:hover .cp_zoomin img{ 2 -webkit-transform: scale(1.05,1.05); 3 transform: scale(1.05,1.05); 4} 5.list-1>.cp_zoomin:hover img{ 6 -webkit-transform: scale(1.00,1.00); 7 transform: scale(1.00,1.00); 8}

単に.cp_zoomin:hover imgの定義では効かないので、.list-1>.cp_zoomin:hover imgとlist-1の子要素として指定してやらなければいけないようです。

投稿2018/08/19 03:52

hope_mucci

総合スコア4447

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問