<a href="javascript:void(0)"></a>
和 <a></a>
的区别是什么?
不写这个表达式会有什么影响吗?
黄舟2017-04-10 13:11:22
这个的目的是,给<a>
标签以href属性,并不连接到实际的页面。
给<a>
标签增加href属性,就意味着以下事情:
tab
按键访问到,从而屏幕阅读器能够读出背后的内容,增强可访问性)<a>
标签才有cursor:pointer
的效果。<a>
依然有手型与正常的link样式。给<a>
标签以href属性,并不连接到实际的页面,还有其他方案。
额外说一下浏览器的默认样式表。
首先看webkit:
a:-webkit-any-link {
color: -webkit-link;
text-decoration: underline;
cursor: auto;
}
a:-webkit-any-link:active {
color: -webkit-activelink
}
而mozilla有这样的默认样式:
*|*:-moz-any-link {
cursor: pointer;
}
*|*:-moz-any-link:-moz-focusring {
/* Don't specify the outline-color, we should always use initial value. */
outline: 1px dotted;
}
可以看到,webkit和mozilla浏览器都实现了类似于any-link的私有选择符,选取有link语义的标签,比如,有href的<a>
。
IE和opera的默认样式表里没有这样的私有选择符,但是有href属性的<a>
标签才会应用上<a>
标签的样式,若没有href属性,它的样式和<span>
一样,仅仅是inline级别的元素。
/*opera的默认样式*/
a {
color: #00C;
text-decoration: underline;
}
a:visited {
color: #800080;
}
我参考的浏览器默认CSS样式表: