4

我经常在其他网站和教程中看到,当锚点的目的不仅仅是作为链接时,它通常有一个标签 ( #) 作为href属性的值。我正在我目前正在处理的项目的列表中创建一系列列表,我很想自己这样做,但我担心这可能会使团队中其他开发人员正在努力的系统复杂化,因为这个标签点击后出现在地址栏中。

以这种方式取消href有缺点吗?我假设它不是由于这种方法的流行使用,但主题标签是否有可能弄乱使用的函数GET

4

2 回答 2

5

不用担心,“哈希标签”可以很好地使用,十年来一直是标准的一部分,并且不会影响 GET。“锚标签”<a>最初就是为了这个目的。

您可以使用它来创建“跳转链接”以跳转到文档的不同部分(锚点,用于 HTML 规范文档页面本身),或者作为与 javascript 结合使用的“hashbang”。

你不应该做的是<a>无缘无故地使用标签来获取指针光标。也就是说,如果当你点击它时它做了某事(通常是为什么你将指针光标放在某物上),无论是通过更改哈希、链接到新文档还是触发 javascript 函数,都没有理由不使用锚点标签,也不是不好的做法。

当您看到仅带有 的锚点时"#"href通常表明开发人员打算将 javascript 侦听器应用于元素。如果客户端没有可用的 javascript,空锚点充当无操作的后备。在这种情况下,用户单击链接并且没有任何反应。如果您使用渐进式增强原则,那么您可能会在其中放置一个等效的非 JavaScript URI。

文档

于 2013-06-28T04:04:08.580 回答
0

正如评论中所指出的,不要包含专门用于视觉“美”的 HTML 标记。这是 CSS 的任务,你应该学会分离关注点。对于 HTML/CSS:HTML = 信息,CSS = 演示。问问自己下次遇到类似问题时会发生什么。就个人而言,我会创建一个这样的CSS 类

.handy{
  cursor: pointer;
  }

然后将类添加到所需的每个元素:

<ul id = "menu">
  <li></li>
  <li class = "handy"></li>
</ul>

根据您的情况,另一种方法是像这样编写 CSS:

#menu li {
  cursor: pointer;
  }
于 2013-06-28T03:46:38.700 回答