我的网络应用程序使用了很多<a href="#">Perform client script action</a>用于脚本编写的锚链接(这是我十多年前作为 Dreamweaver 用户时养成的习惯),现在我开始质疑这是否有必要。

我其实不知道为什么<a href="#">首先使用 - 我的猜测是存在href属性使浏览器应用:link and :visited简化样式表的伪类。它还使浏览器隐式应用cursor: pointer可能是理想的财产。

我使用 jQuery(在短暂使用 MooTools 后),并且链接在没有href="#"属性和值,所以我应该完全删除该属性并修改我的样式表以补偿删除:link伪类?还有什么我可能遗漏的吗,href 属性赋予锚元素的任何半文档巫术?


<a>代表锚

如果您包括[href]上的属性<a>元素,它是一个指向某个位置的锚点,这意味着您可以转到一个新页面,即当前页面的特定片段(因此#称为片段标识符),或新页面的特定片段。

<a>没有的元素[href]属性在历史上被指定为[name]属性,可以用作片段标识符的目的地。浏览器后来添加了对链接到任何项目的支持[id]属性,现在这是链接到文档片段的首选方法。

这对于独立版意味着什么<a>元素?

An a[href]元素是一个link(这就是为什么它们与:link在 CSS 中)。links是可点击的。An a元素没有[href]否则,属性只是一个占位符,用于放置链接的位置 https://www.w3.org/TR/html5/single-page.html#the-a-element,并且不可点击,也不在页面的选项卡顺序中。

如果您希望链接可通过键盘导航,这对于可访问性很重要(WAI-ARIA http://www.w3.org/WAI/intro/aria.php),您需要执行以下操作之一:

  • 将元素更改为<button type="button">
  • 保持[href]属性
  • add [tabindex="0"]和其中之一[role="button"] or [role="link"](可能还有一些样式)

有关的更多信息[role]属性可以在中找到角色模型部分 http://www.w3.org/TR/wai-aria/roles of the WAI-ARIA 文档 http://www.w3.org/TR/wai-aria/.

更改标记

如果您没有理由保留[href]属性,您不妨使用<button>元素:

<button type="button">
        ^^^^^^^^^^^^^

The [type]属性用于使元素成为通用按钮,否则<button>将默认为[type="submit"],这可能是不可取的,因为它可能会触发表单提交。

如果您不能使用<button>(通常发生在内部标记必须包含<div>)你可以伪造一个<button> using:

<div role="button" tabindex="0">Some clickable text</div>

You'll need to listen for keypress events and trigger click events for Enter and Space.

保留标记

如果您保留<a>元素及其[href]属性,其值有多种选项。

真实的链接

E.x.

  • <a href="/some/location/for/users/without/js">
  • <a href="#document-fragment">

如果您需要为禁用 JS 的用户提供支持,您不妨将他们引导到一个无需 JS 即可执行等效功能的页面。

通过扩展,这还包括提供文档片段链接以链接到同一文档中的内容。例如,可切换区域可以标记为:

<a href="#more" class="toggleable">Read More</a>
<div id="more">Lorem ipsum dolor sit amet</div>

因此,使用 JS,该区域可以折叠和展开,而如果没有 JS,链接会将用户带到页面上的相应内容。

一个无用的href

E.x.

  • <a href="#">
  • <a href="javascript:void(0)">
  • <a href="about:blank">

If you're preventing the default behavior behind-the-scenes in JavaScript, and you're not supporting users with JS disabled, you can use a "dud" href value to keep the link in the tabbing order and automatically enable Enter to trigger the click event. You should add [role="button"] as semantically the <a> tag is no longer being used as a link, but as a button.

<a href="#" role="button">Some clickable text</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

  • jQuery .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • 如何在powershell中进行TDD和单元测试?

    随着微软将 powershell 强加到所有新的服务器产品中 我开始 不情愿地 认为我需要认真对待它 认真对待 的一部分是 TDD 您是否找到了对 Power shell 脚本进行单元测试的好方法 我找到了嘲笑的样本极客噪音先生 http
  • Spring Boot:如何使用 @Validated 注释在 JUnit 中测试服务?

    我正在尝试为我的 Spring Boot 应用程序构建一组约束验证器 我想构建一些验证注释 例如 NotNull 顺便说一句 验证应该支持验证组 所以我有一个带有验证注释的简单项目模型 public class Item NotNull g
  • 如何在Android中为整个应用程序设置背景?

    在我的应用程序中 我有很多层 我不想为每个层设置背景图像 而是想一劳永逸地设置背景 我怎样才能做到这一点 看一眼将主题应用于活动或应用程序 http developer android com guide topics ui themes
  • 自定义配置设置,自定义ClientSettingsSection

    考虑以下配置部分
  • 在 Raspberry Pi 中解码视频而不使用 OpenMAX?

    我正在寻找在 Raspberry Pi 上解码视频的示例directly 不使用 OpenMAX 这解释了多媒体软件的不同层 还有一个此处未显示的附加层 即 MMAL https github com raspberrypi userlan
  • 远程拒绝主控 -> 主控(预接收挂钩拒绝)

    我正在使用 Rails 3 2 当我尝试推送到 heroku 时收到错误 git push heroku master Counting objects 496 done Delta compression using up to 8 th
  • 应用程序中的 Firestore 查询给出权限被拒绝,而模拟器工作正常

    在我的基于 Firestore 的应用程序中 我使用以下查询来检索一些数据 FirebaseFirestore getInstance collection events document eventId collection instan
  • 如何只获取用户路径变量?

    Echo PATH 回报system路径变量 user路径变量 如何只得到user路径变量 The system PATH变量的值存储在 Windows 注册表中Path类型的REG EXPAND SZ包含对环境变量的引用 例如 Syste
  • 如何在 JSON 文件中进行搜索?

    如何创建一个搜索表单来搜索 JSON 文件中输入的术语 因此 如果搜索词等于位置对象内的标题 它应该返回该对象信息 如果没有匹配 则向用户反馈没有找到项目 我创建了一个搜索输入
  • 当您不需要将某些内容定义为动态来 with-redefs 时,将某些内容定义为动态的意义何在?

    在我看来 这with redefs可以做一切binding动态符号可以做到 只是它没有需要的限制 dynamic元数据 那么我什么时候应该使用其中一种而不是另一种呢 除了要求 dynamic元数据 binding还创建仅在当前线程中可见的绑
  • 如何从 Azure 函数返回 xlsx 文件?

    我见过一些人尝试过 我无法重现他们的结果 乐于使用任何语言 我可以从 HTTP 触发器创建 xlsx 我想从另一个 HTTP 触发器返回该文件 如果您已经生成了该文件 则返回它只是创建一个带有附件的 HTTP 响应 var result n
  • 使用 Python 字典作为键(非嵌套)

    Python 不允许将字典用作其他字典中的键 是否有使用非嵌套字典作为键的解决方法 更复杂的不可散列对象和我的具体用例的一般问题是搬到这里 https stackoverflow com questions 1611797 using no
  • C++ 模板参数更改对指针的引用

    也许我不知道如何搜索 但事实上我找不到任何人谈论这个 我的结构有一个non type论证取决于type争论 template lt typename SpecType SpecType NonType gt struct Struct Wh
  • yii 自定义错误页面,例如 404、403、500

    我正在尝试为所有错误消息创建单独的文件 404 403 500 等 这样我就可以为它们进行定制设计 如果可能的话 我不希望页眉和页脚也包含在我的错误页面中 现在我有这个 在我的站点控制器 php并把错误404 php进入我的浏览量 站点 f
  • 如何分析 Java 中的线程?

    我的应用程序中有生产者和消费者线程 我需要对它们进行分析以查看线程的性能 每个线程进入睡眠和等待之前所花费的时间等 并采取纠正措施以提高应用程序的整体效率 关于如何解决这个问题有什么建议吗 我个人使用 YourKit java profil
  • 在 Django 中接受电子邮件地址作为用户名

    有没有一种好方法可以在 Django 中执行此操作 而无需滚动我自己的身份验证系统 我希望用户名是用户的电子邮件地址 而不是他们创建用户名 请指教 对于其他想要这样做的人 我建议看一下django 电子邮件作为用户名 https githu
  • 使用 docker 和 --privileged 构建

    我在用着本指南 https aws amazon com blogs ai build a voice kit with amazon lex and a raspberry pi 使用 Amazon Lex 和 Raspberry Pi
  • 如何在VB6中模拟.net Int64?

    如何在 VB6 中存储 Int64 数字以与 Win32 函数一起使用 有没有办法在 net中定义像Int64这样的类型 并简单评估一下数字 我认为许多 VB6 程序员都需要这样的东西 因为一些 Win32 API 使用 int64 作为参
  • 如何淡出图像的侧面?

    当您扩大浏览器时 您会注意到图像的右侧和左侧以黑色淡出 我需要将相同的功能应用到我的画廊 但不知道 我找到了这个 gt gt link https stackoverflow com questions 9437400 css fade o
  • 不带 href="#" 的脚本链接

    我的网络应用程序使用了很多 a href Perform client script action a 用于脚本编写的锚链接 这是我十多年前作为 Dreamweaver 用户时养成的习惯 现在我开始质疑这是否有必要 我其实不知道为什么 a