要实现仅当单击菜单时才应用CSS样式,可以使用CSS的:focus
伪类结合JavaScript来实现。以下是具体的实现方法:
:focus
伪类:当元素获得焦点时,:focus
伪类会被应用。可以通过键盘(如Tab键)或鼠标点击来使元素获得焦点。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Focus Menu Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<nav>
<ul>
<li><a href="#" class="menu-item">Home</a></li>
<li><a href="#" class="menu-item">About</a></li>
<li><a href="#" class="menu-item">Services</a></li>
<li><a href="#" class="menu-item">Contact</a></li>
</ul>
</nav>
<script src="script.js"></script>
</body>
</html>
.menu-item:focus {
background-color: #f0f0f0;
outline: none;
}
document.addEventListener('DOMContentLoaded', function() {
const menuItems = document.querySelectorAll('.menu-item');
menuItems.forEach(item => {
item.addEventListener('click', function() {
// Remove focus from all items
menuItems.forEach(i => i.blur());
// Add focus to the clicked item
this.focus();
});
});
});
:focus
伪类可能不会被触发。可以通过JavaScript监听键盘事件来处理这种情况。通过上述方法,可以实现仅在单击菜单时应用CSS样式的效果。
领取专属 10元无门槛券
手把手带您无忧上云