#html #css
#HTML #css
Вопрос:
У меня возникли проблемы с моим HTML и CSS.
У меня есть два контейнера, которые находятся непосредственно друг над другом.
Я пытаюсь сделать так, чтобы при наведении курсора на самый верхний контейнер он скрывал верхний, чтобы показать тот, который за ним. Все это делается путем изменения жизнеспособности при наведении.
Однако я обнаружил, что, хотя это работает, это часто просто приводит к быстрому мерцанию между двумя состояниями.
Я понятия не имею, почему это происходит, и, похоже, не могу понять это. Я попытался изменить z-индекс и позицию, как предлагалось в других подобных сообщениях, и ничего не смог заставить работать.
Код в codepen:https://codepen.io/michaelnicol/pen/jOqYbGo
HTML:
<html>
<head>
</head>
<body>
<main>
<div class="image_container">
<div class="text_div">
<h1>Mona Lisa</h1>
<p>Lorem lipsum dolor sit amat</p>
</div>
</div>
</main>
</body>
</html>
CSS:
/* Formatting Code */
main {
width: 90%;
height: 90%;
min-height: 900px;
border: 1px solid black;
background-color: #efefef;
margin: 5%;
border-radius: 20px;
box-shadow: 2px 2px 5px black;
display: flex;
justify-content: center;
align-items: center;
}
body {
display: flex;
justify-content: center;
background-color: rgb(147, 165, 207);
}
.text_div > h1, .text_div > p {
color: white;
text-shadow: 2px 2px 5px black;
}
/* image hover code */
.image_container {
height: 300px;
width: 400px;
border: 1px solid black;
background-color: rgb(156, 48, 48);
background-image: url("https://i.pinimg.com/474x/c6/90/48/c69048072a6d77dfb0a317db98ef145d.jpg")
}
.text_div {
visibility: visible;
opacity: 0.85;
background-color: black;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
height: 100%;
width: 100%;
transition: 0.5s ease-in-out;
}
.text_div:hover {
visibility: hidden;
}
Ответ №1:
Попробуйте заменить это:
.text_div:hover {
visibility: hidden;
}
С помощью этого:
.image_container:hover .text_div {
opacity: 0;
pointer-events: none;
}