CSS 解决方案使没有 href 的标签(如果 NavigateURL 绑定到 null/空字符串,则 asp:HyperLink 将产生)在视觉上与周围的文本无法区分:
a:not([href]), a:not([href]):hover, a:not([href]):active, a:not([href]):visited {
text-decoration: inherit !important;
color: inherit !important;
cursor: inherit !important;
}
不幸的是,这不会告诉屏幕阅读器不要将其作为链接读出 - 尽管没有 href,它是不可点击的,所以我希望它已经不会被识别为这样。不过我还没有机会测试它。
(如果您也想对带有 href="" 的链接以及缺少 href 的链接做同样的事情,您也需要添加pointer-events:none
,因为否则空的 href 将重新加载页面。这肯定会让屏幕阅读器仍在处理不过,它是一个链接。)
在 OP 的用例中,如果您仍然从数据库中填充了 href,但有一个布尔值指示链接是否应该是“真实”链接,则应该使用它来禁用链接,并添加a:disabled
到上面的选择器列表。然后禁用的链接也将看起来像纯文本而不是灰色链接。(禁用链接也会将该信息提供给屏幕阅读器,因此这比仅使用指针事件更好:无和类。)
注意事项 - 如果您在全局而不是为特定页面添加此类规则,请记住注意标签没有(有效)href,但您提供点击处理程序的情况 - 您仍然需要查看这些规则/行为像链接。