[英]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.