как сделать mouseleave на CSS?

#javascript #css

#javascript #css — код

Вопрос:

Я создал UL, и это li как поле поиска, и я хочу, чтобы этот список исчезал, когда мышь выходит из div, который оборачивает поле поиска. Я справился с этим, используя простой JS, делая это:

 document.querySelector('.wrapperElasticLi').addEventListener('mouseleave', function(event) { event.target.style.display = 'none' })
 

Но это было отклонено, так как они сказали мне, что не хотят этого с помощью javascript, и сказали мне сделать это с помощью CSS.

Каким был бы способ CSS?

Спасибо

Комментарии:

1. :hover { display: block }

Ответ №1:

Это может сработать:

 ul {display:none;}
.container:hover ~ ul { display: block; }
 

Ответ №2:

Вот пример кода. Скройте окно поиска по умолчанию, а затем запустите окно поиска, чтобы оно отображалось при наведении курсора мыши на .container . Вы можете навести указатель мыши на родителей, чтобы вызвать события css для дочерних элементов или соседнего брата или сестры, но вы не можете вызвать дедушку и бабушку. Посмотрите здесь для получения дополнительной информации и другого рабочего примера.

 * {
  font-family: sans-serif;
  font-size: 1rem;
}
.container {
  width: 100%;
  background: #efefef;
  padding: 2rem;
  cursor: pointer;
  position: relative;
}
ul.searchbox {
  background: white;
  box-shadow: 0px 2px 5px rgba(0,0,0,0.3);
  display: none;
  position: absolute;
  margin: 0;
  padding: 1rem;
}
ul.searchbox li {
  list-style-type: none;
}

.container:hover .searchbox {
  display: block;
} 
 <div class="container">
  This is a container.
  <ul class="searchbox">
   <li>
      Search:<br>
     <input type="text">
   </li>
  </ul>
</div>