简体   繁体   English

将鼠标悬停在列表元素上时显示图像

[英]Making an image appear when hovering on a list element

"Hi guys. I want to that the image-modal-1 in the modal-images container shows up when I hover on the first li element on the nav-modal-links container. I tried everything but the image won't show up. What can I do?" “大家好。当我将鼠标悬停在nav-modal-links容器上的第一个li元素上时,我希望modal-images容器中的image-modal-1出现。我尝试了所有方法,但图像不会显示。 我能做什么?”

 * { margin: 0; padding: 0; box-sizing: border-box; } button { padding: 10px; }.modal { display: flex; justify-content: center; align-items: center; position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.8); }.modal-content { width: 80%; height: 80%; background: #fff; border-radius: 10px; }.modal-images { position: relative; width: 50%; height: 100%; float: left; }.modal-images img { position: absolute; width: 100%; height: inherit; }.image-modal-1 { position: absolute; display: none; }.image-modal-2 { position: absolute; display: none; }.image-modal-3 { position: absolute; display: none; }.image-modal-4 { position: absolute; display: none; }.nav-modal-links { display: flex; justify-content: center; align-items: center; width: 50%; height: 100%; float: right; }.nav-modal-links ul { list-style: none; font-size: 2em; font-family: Verdana, Geneva, Tahoma, sans-serif; }.nav-modal-links ul li { margin-bottom: 40px; cursor: pointer; }.nav-modal-links ul li:first-child:hover.modal-images.image-modal-1 { display: block; }
 <h1>Modal Demo</h1> <button>Click Here.</button> <div class="modal"> <div class="modal-content"> <div class="modal-images"> <img class="image-modal-1" src="images/modal-image.jpg" alt="img1"> <img class="image-modal-2" src="images/image-modal-2.jpg" alt="img2"> <img class="image-modal-3" src="images/image-modal-3.jpg" alt="img3"> <img class="image-modal-4" src="images/image-modal-4.jpg" alt="img4"> </div> <div class="nav-modal-links"> <ul> <li>First Image</li> <li>Second Image</li> <li>Third Image</li> <li>Fourth Image</li> </ul> </div> </div> </div> <script src="script.js"></script>

"I want to display.image-modal-1 when i hover on the first li element of nav-modal-links" “当我悬停在 nav-modal-links 的第一个 li 元素上时,我想显示.image-modal-1”

It doesn't work because .modal-images.image-modal-1 isn't a child of .nav-modal-links ul li .它不起作用,因为.modal-images.image-modal-1不是.nav-modal-links ul li的孩子。

The easiest way is to use the:has() pseudo class (but beware this isn't supported on firefox).最简单的方法是使用 :has() 伪类(但要注意 firefox 不支持它)。 Alternatively you might be able to use the adjacent sibling selector and use css grid to put the elements where you want them.或者,您可以使用相邻的兄弟选择器并使用 css 网格将元素放在您想要的位置。

Solution using :has() below使用下面的:has()解决方案

 * { margin: 0; padding: 0; box-sizing: border-box; } button { padding: 10px; }.modal { display: flex; justify-content: center; align-items: center; position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.8); }.modal-content { width: 80%; height: 80%; background: #fff; border-radius: 10px; }.modal-images { position: relative; width: 50%; height: 100%; float: left; }.modal-images img { position: absolute; width: 100%; height: inherit; }.image-modal-1 { position: absolute; display: none; }.image-modal-2 { position: absolute; display: none; }.image-modal-3 { position: absolute; display: none; }.image-modal-4 { position: absolute; display: none; }.nav-modal-links { display: flex; justify-content: center; align-items: center; width: 50%; height: 100%; float: right; }.nav-modal-links ul { list-style: none; font-size: 2em; font-family: Verdana, Geneva, Tahoma, sans-serif; }.nav-modal-links ul li { margin-bottom: 40px; cursor: pointer; } * { margin: 0; padding: 0; box-sizing: border-box; } button { padding: 10px; }.modal { display: flex; justify-content: center; align-items: center; position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.8); }.modal-content { width: 80%; height: 80%; background: #fff; border-radius: 10px; }.modal-images { position: relative; width: 50%; height: 100%; float: left; }.modal-images img { position: absolute; width: 100%; height: inherit; }.image-modal-1 { position: absolute; display: none; }.image-modal-2 { position: absolute; display: none; }.image-modal-3 { position: absolute; display: none; }.image-modal-4 { position: absolute; display: none; }.nav-modal-links { display: flex; justify-content: center; align-items: center; width: 50%; height: 100%; float: right; }.nav-modal-links ul { list-style: none; font-size: 2em; font-family: Verdana, Geneva, Tahoma, sans-serif; }.nav-modal-links ul li { margin-bottom: 40px; cursor: pointer; }.modal:has(.nav-modal-links ul li:first-child:hover).modal-images.image-modal-1 { display: block; } { display: block; }
 <h1>Modal Demo</h1> <button>Click Here.</button> <div class="modal"> <div class="modal-content"> <div class="modal-images"> <img class="image-modal-1" src="images/modal-image.jpg" alt="img1"> <img class="image-modal-2" src="images/image-modal-2.jpg" alt="img2"> <img class="image-modal-3" src="images/image-modal-3.jpg" alt="img3"> <img class="image-modal-4" src="images/image-modal-4.jpg" alt="img4"> </div> <div class="nav-modal-links"> <ul> <li>First Image</li> <li>Second Image</li> <li>Third Image</li> <li>Fourth Image</li> </ul> </div> </div> </div> <script src="script.js"></script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM