-1

How come this hover property is not working? It is supposed to be hidden, however when I click over the icon area, it is supposed to be visible. This is stuck at hidden.

.testdelete {
    display: inline-block;
    font-family: Material Icons;
    visibility: hidden;
}


.testdelete:hover .testdelete {
    visibility: visible;
}

.testdelete:not(hover) .testdelete {
    visibility: hidden;
}


<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<div class="testdelete">delete</div>

2 Answers2

3

You cannot hover over a hidden element. One solution is to nest the element inside another container.

<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<style type="text/css">

.testdelete .insideElement{
    display: inline-block;
    font-family: Material Icons;
 visibility: hidden;
}

.testdelete:hover .insideElement {
 visibility: visible;
}

.testdelete:not(hover) .insideElement {
 visibility: hidden;    
}

</style>

<html> 
<head>
<div class="testdelete">
<div class="insideElement">delete</div>
</div>
</head>
</html>
yuvalchen
  • 133
  • 3
-1

One way around the visibility issue is to use opacity instead.

.testdelete {
  display: inline-block;
  font-family: Material Icons;
  opacity: 0;
}

.testdelete:hover {
  opacity: 1;
}
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<div class="testdelete">delete</div>
Paul LeBeau
  • 97,474
  • 9
  • 154
  • 181