为了快速编码和减少乏味,我想知道是否可以在不使用 JavaScript的情况下自动生成 HTML 锚的内容作为其href
值。我将在其中使用它的应用程序具有足够大的页面,以便 JavaScript 解决方案引入显着滞后。
例子:
<a href="http://example.com" class="autofill"></a>
这可能吗?是否符合 W3C 标准?为什么或者为什么不?
为了快速编码和减少乏味,我想知道是否可以在不使用 JavaScript的情况下自动生成 HTML 锚的内容作为其href
值。我将在其中使用它的应用程序具有足够大的页面,以便 JavaScript 解决方案引入显着滞后。
例子:
<a href="http://example.com" class="autofill"></a>
这可能吗?是否符合 W3C 标准?为什么或者为什么不?
是的,在一定程度上。您可以使用 CSS2content
属性及其attr
值来获取锚点href
属性的值。例如:
<style>
.autofill:after {
content: attr(href);
}
</style>
<a href="http://example.com" class="autofill"></a>
这不能保证跨浏览器工作!例如,在当前版本的 WebKit(Safari、Chrome、Yandex、Rockmelt、许多移动浏览器等)中,会呈现链接文本,但无法单击。也就是说,它可以在当前最常用的 Presto(Opera,即将被 WebKit 取代)、Trident(Internet Explorer)和 Gecko(Firefox、Waterfox 等)版本中正常工作。
请注意,我不知道这是否符合 W3C(我什至不知道空锚是否符合 W3C),所以我的回答肯定是使用此解决方案,风险自负。
截至本次编辑 (2013-04-30),Google 的Chromium平台风格的 Webkit(Chrome、Yandex、Rockmelt、许多移动浏览器等)和 Blink(目前只是 Chrome Canary)现在允许用户单击锚点伪元素。仍然运行在 Apple 风格的 WebKit 上的 Safari 仍然不允许这样做。