是否可以使用CSS使HTML锚标签不可点击/链接?

Rya*_*yan 121 html css anchor

例如,如果我有这个:

<a style="" href="page.html">page link</a>

有什么我可以使用的样式属性,使链接不可点击,不会带我到page.html.

或者我唯一的选择是不将"页面链接"包装在锚标记中?

编辑:我想说明我为什么要这样做,以便人们可以提供更好的建议.我正在尝试设置我的应用程序,以便开发人员可以选择他们想要的导航样式.

所以我有一个链接列表,一个当前总是被选中,而其他所有链接都没有.对于未选择的链接,我显然希望这些是正常的可点击锚标签.但对于选定的链接,有些人更喜欢链接仍然可以点击,而其他人则喜欢使其无法点击.

现在,我可以轻松地以编程方式不在所选链接周围包装锚标记.但我认为如果我总能将所选链接包装在以下内容中会更加优雅:

<a id="current" href="link.html">link</a>

然后让开发人员通过css控制链接样式.

Die*_*nue 244

你可以使用这个css:

.inactiveLink {
   pointer-events: none;
   cursor: default;
}
Run Code Online (Sandbox Code Playgroud)

然后将类分配给您的html代码:

<a style="" href="page.html" class="inactiveLink">page link</a>
Run Code Online (Sandbox Code Playgroud)

它使链接不可解决,光标样式为箭头,而不是链接所具有的手.

或者在html中使用这种风格:

<a style="pointer-events: none; cursor: default;" href="page.html">page link</a>
Run Code Online (Sandbox Code Playgroud)

但我建议采用第一种方法.

  • 这个解决方案的关键是:`pointer-events`.[here](http://caniuse.com/#feat=pointer-events)兼容性表的链接 (3认同)

小智 49

这对CSS来说并不容易,因为它不是一种行为语言(即JavaScript),唯一简单的方法是在你的锚上使用JavaScript OnClick事件并将其作为false返回,这可能是最短的代码你可以用它:

<a href="page.html" onclick="return false">page link</a>
Run Code Online (Sandbox Code Playgroud)

  • 问题是:"使用CSS",所以这是一个好的,但不是正确的答案. (4认同)
  • @Mike这个让点击什么都不做,但按钮看起来仍然可点击. (2认同)

pow*_*own 10

是.. 可以使用CSS

<a class="disable-me" href="page.html">page link</a>

.disable-me {
    pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)


Pau*_*aul 8

或纯粹没有事件的HTML和CSS:

<div style="z-index: 1; position: absolute;">
    <a style="visibility: hidden;">Page link</a>
</div>
<a href="page.html">Page link</a>
Run Code Online (Sandbox Code Playgroud)


ale*_*lex 5

CSS旨在影响演示,而不是行为.

你可以使用一些JavaScript.

document.links[0].onclick = function(event) {
   event.preventDefault();
};
Run Code Online (Sandbox Code Playgroud)


pix*_*eak 5

更加不突兀的方式(假设你使用jQuery):

HTML:

<a id="my-link" href="page.html">page link</a>

使用Javascript:

$('#my-link').click(function(e)
{
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

这样做的好处是逻辑和表示之间的清晰分离.如果有一天你决定这个链接会做其他的事情,你就不必搞乱标记,只需要JS.

  • 你知道你可以轻松编写非jQuery代码来做同样快速运行的事情:`document.getElementById('my-link').onclick = function(){return false; };` (4认同)
  • @PaulPRO这个讨论没有作者的要求.每个框架都有其目的.如果他不熟悉JS并且只是做一个妈妈流行的网站并且需要操纵一些DOM元素,那么他使用框架会容易得多.你不愿意使用任何框架是荒谬的.PHP是用C语言编写的.这是否意味着你应该编写C而不是使用PHP?iOS有UIKit,Core Data,Quartz等.Flash拥有大量常用的第三方库.同样,每个框架都有其目的.纯粹的,非内置的心态对任何人都无济于事. (4认同)
  • 真的吗?什么浏览器不支持onclick或getElementById.好的,所以IE 2不支持onclick,但它也不支持CSS ...我非常怀疑你的jQuery代码也可以在IE 2中运行. (2认同)