当前位置:首页 > 行业动态 > 正文

HTML 如何使非输入/锚点元素获得焦点

在HTML中,非输入/锚点元素默认是不能获得焦点的,我们可以通过一些技巧来实现这个目标,以下是一些方法:

1、使用JavaScript

我们可以使用JavaScript为非输入/锚点元素添加点击事件,使其看起来像获得了焦点,以下是一个示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF8">
    <meta name="viewport" content="width=devicewidth, initialscale=1.0">
    <title>使非输入/锚点元素获得焦点</title>
    <style>
        .focusable {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="focusable" onclick="this.focus()">点击我</div>
    <script>
        document.querySelector('.focusable').addEventListener('click', function() {
            this.focus();
        });
    </script>
</body>
</html>

在这个示例中,我们为.focusable类的元素添加了一个点击事件,当点击这些元素时,它们会触发focus()方法,使其看起来像获得了焦点,我们还为这些元素添加了CSS样式,使鼠标指针在悬停在这些元素上时显示为手型。

2、使用CSS :focus伪类

我们可以使用CSS的:focus伪类为非输入/锚点元素添加样式,使其看起来像获得了焦点,以下是一个示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF8">
    <meta name="viewport" content="width=devicewidth, initialscale=1.0">
    <title>使非输入/锚点元素获得焦点</title>
    <style>
        .focusable {
            cursor: pointer;
        }
        .focusable:focus {
            outline: 2px solid blue;
        }
    </style>
</head>
<body>
    <div class="focusable" tabindex="0">点击我</div>
</body>
</html>

在这个示例中,我们为.focusable类的元素添加了一个tabindex属性,使其可以接收键盘焦点,我们使用CSS的:focus伪类为这些元素添加了一个蓝色边框,使其看起来像获得了焦点,我们还为这些元素添加了CSS样式,使鼠标指针在悬停在这些元素上时显示为手型。

0