<div class="box"> <…"> マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点 | BLOG|ホームページ制作 Brick Plan【ブリックプラン】

2020.10.15

HTML・CSS

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点

デモページはこちら

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点です。以下のhtml構造でテストします。

<div class="container">
	<div class="box">
		<p class="title">a:hover imgにtransitionを設定</p>
		<div class="photo01"><a href="#"><img src="images/photo01.jpg" alt=""></a></div>
	</div>
	<div class="box">
		<p class="title">imgにtransitionを設定</p>
		<div class="photo02"><a href="#"><img src="images/photo01.jpg" alt=""></a></div>
	</div>
</div>
<p class="title">svg:hoverにtransitionを設定</p>
<svg id="c-btn-arrow01" xmlns="http://www.w3.org/2000/svg" width="131px" height="28px" viewBox="0 0 131 28">
	<path class="c-btn-arrow-parts" fill-rule="evenodd" d="M130.795,25.540 L108.375,0.537 L107.934,2.580 L128.796,26.006 L0.795,26.006 L0.795,28.007 L130.795,28.007 L130.795,25.540 Z"/>
</svg>
<p class="title">svgにtransitionを設定</p>
<svg id="c-btn-arrow02" xmlns="http://www.w3.org/2000/svg" width="131px" height="28px" viewBox="0 0 131 28">
	<path class="c-btn-arrow-parts" fill-rule="evenodd" d="M130.795,25.540 L108.375,0.537 L107.934,2.580 L128.796,26.006 L0.795,26.006 L0.795,28.007 L130.795,28.007 L130.795,25.540 Z"/>
</svg>

.photo01 a:hover imgや#c-btn-arrow01:hoverのように、transitionをhover側の要素に設定してしまうと、マウスアウト時にtransitionが動作しません。.photo02 imgや#c-btn-arrow02のように、hover前の要素に設定すると正しく動作します。

.photo01 a:hover img {
	opacity: 0.6;
	transition: opacity 0.3s;
}
.photo02 img {
	transition: opacity 0.3s;
}
.photo02 a:hover img {
	opacity: 0.6;
}
#c-btn-arrow01:hover {
	transform: translateX(20%);
	transition: transform 0.3s;
}
#c-btn-arrow02 {
	transition: transform 0.3s;
}
#c-btn-arrow02:hover {
	transform: translateX(20%);
}
.c-btn-arrow-parts {
	fill: #fff;
}

関連記事

2022.05.12

HTML・CSS

asideタグの使い方

asideタグはメインコンテンツの内容と関連はしているが、メインコンテンツではない補足情報を表します。主に「バナー広告」「関連記事」「サイドバー」「モーダルコン…

2024.09.10

HTML・CSS

backdrop-filter: blurとfilter: blurの違い

backdrop-filterプロパティのblurとfilterプロパティのblurを比較して違いを確認します。デモページはこちら 共通のCSSは以下になります…

2024.08.16

HTML・CSS

flex-shrinkで文字の改行を防ぐ

flexボックスのレイアウトで、flexアイテムにflex-shrinkプロパティを指定してテキストが改行されるのを防ぎます。デモページはこちら 以下のhtml…

2021.02.02

HTML・CSS

flex-growプロパティを利用した横並びのリスト

flex-growプロパティを利用して、左右にボーダーのある横並びのリストを作ります。リスト内のテキストの文字数が異なる場合でも、簡単にレスポンシブ対応できます…

2024.06.18

HTML・CSS

z-index: -1;指定時の注意点

z-indexプロパティの重なりで、z-index: -1;を指定した時の注意点を確認します。デモページはこちら 以下のhtml構造で確認します。クラス名div…

上に戻る