前提・実現したいこと
※可能であればhtmlを変更せずに(boxを新たに作る等)cssだけを変更して実現させたいです。
①img:hover時にimg中央に隠していたテキストを表示させたが、テキストにhoverがあたるとimg:hoverが効かなくなるので解決したい。
(可能であればhtmlを変更せずに(boxを新たに作る等)cssだけを変更して実現させたいです)
②img:hover時にimgに対してopacityを使って、img全体を黒くマスクがかかったようにし、白色のテキストを目立つようにさせたい。
発生している問題・エラーメッセージ
①テキストにhoverがあたるとimg:hoverが効かない。
②黒いマスクではなく、白いマスクがかかっているような印象です。
該当のソースコード
html
1<ul class="menu-list"> 2 <li> 3 <img 4 class="menu-img" 5 src="https://source.unsplash.com/random/200x200" 6 alt="" 7 /> 8 <span class="menu-name">メニュー名</span> 9 </li> 10 11 <li> 12 <img 13 class="menu-img" 14 src="https://source.unsplash.com/random/200x200" 15 alt="" 16 /> 17 <span class="menu-name">メニュー名</span> 18 </li> 19 </ul>
css
1 2.menu-list { 3 display: flex; 4 width: 100%; 5} 6.menu-list li { 7 width: 20%; 8 height: 100%; 9 position: relative; 10 list-style: none; 11} 12 13.menu-img { 14 width: 100%; 15 height: 100%; 16 border-radius: 50%; 17 background-color: #000; 18} 19 20.menu-name { 21 width: 60%; 22 color: #fff; 23 font-weight: 700; 24 text-align: center; 25 position: absolute; 26 top: 50%; 27 left: 50%; 28 transform: translate(-50%, -50%); 29 opacity: 0; 30} 31 32.menu-img:hover { 33 transform: scale(0.9); 34 opacity: 0.7; 35} 36 37.menu-img:hover + .menu-name { 38 opacity: 1; 39}
試したこと
①テキスト(menu-name)に対してopacity: 0;(1)、display:none;(block)、visibility:hidden;(visible)を使用したが、どれを試してもテキストに触れるとimg:hoverが効かなくなってしまう。
②imgのbackground-colorを黒にしてimg:hover時にopacityで透過させたら黒いマスクがかかると想定していたが白のマスクがかかっているような気がします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/17 14:53
2020/07/17 15:07
2020/07/18 12:47