blur everything but hovered CSS

Searched for this while I was trying to make this exact thing work. Turns out, it is possible to do with only CSS (contrary to the other answer). It works quite well too. I tested on my mac and it works in Chrome, Firefox, Safari, Edge (win 10), but not on IE11 (win 10).

.grid {
  display: flex;
}

.grid:hover .card {
  filter: blur(5px);
}

.card {
  padding: 10px;
  transition: all 0.2s ease-in-out;
}

.grid .card:hover {
  filter: blur(0);
}
<div class="grid">
  <div class="card">
    <img src="http://placekitten.com/200/150" alt="kitten 1">
  </div>
  <div class="card">
    <img src="http://placekitten.com/200/150" alt="kitten 2">
  </div>
  <div class="card">
    <img src="http://placekitten.com/200/150" alt="kitten 3">
  </div>
</div>

Or, just add this to your CSS (see it in your example codepen).

.container:hover .card {
  filter: blur(5px);
}

.container .card:hover {
  filter: blur(0);
}

Leave a Comment