console
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
html,
body {
height: 100%
}
.grid {
width: 600px;
height: 600px;
background: #ccc;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
margin: 0 auto;
gap: 1px;
border: 1px solid #ccc;
}
.cell {
background: #fff;
list-style: none;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.cell:hover {
outline: 1px solid red;
}
ul {
width: 300px;
list-style: none;
display: flex;
flex-flow: wrap;
margin: 0 auto;
}
li {
display: grid;
place-items: center;
width: 100px;
height: 100px;
box-sizing: border-box;
border: 1px solid black;
margin: -1px 0 0 -1px;
}
li:nth-child(3n+1) {
margin-left: 0
}
li:nth-child(-n+3) {
margin-top: 0
}
li:hover {
color: red;
border: 1px solid;
z-index: 1;
}
</style>
</head>
<body>
<div class="grid">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
<div class="cell">9</div>
</div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
<script>
let gridE = document.getElementsByClassName('grid')[0]
gridE.addEventListener('click', e => alert(e.target.innerText))
let ul = document.getElementsByTagName('ul')[0]
ul.addEventListener('click', e => alert(e.target.innerText))
</script>
</body>
</html>