我应该使用'name'或'id'制做HTML Anchor吗?

当想要使用“ http://example.com/#foo ”方法引用网页的某些部分时,应该使用 浏览器

<h1><a name="foo"/>Foo Title</h1>

要么 安全

<h1 id="foo">Foo Title</h1>

他们都工做,但他们是平等的,仍是他们有语义差别? app


#1楼

<h1 id="foo">Foo Title</h1>

是什么应该使用。 除非您想要连接,不然不要使用锚点。 spa


#2楼

我有一个由多个垂直堆叠的div容器组成的网页,格式相同,只有序列号不一样。 我想在每一个div的顶部隐藏名称锚点,所以最经济的解决方案是将锚点做为开头div标签中的id包括,即, code

<div id="[serial number]" class="topic_wrapper">

#3楼

维基百科大量使用此功能,以下所示: ip

<a href="#History">[...]</a>
<span class="mw-headline" id="History">History</span>

维基百科正在为每一个人工做,因此我以为这个表格很安全。 get

另外请不要忘记,您不只可使用spans,还可使用div或甚至表格单元格,而后您能够访问元素上的:target伪类。 只要注意不要改变宽度,就像粗体文字同样,致使内容移动,这是使人不安的。 it

命名锚点 - 个人投票是避免: class

  • “名称和ID在同一名称空间中......” - 具备相同名称空间的两个属性很是疯狂。 咱们只是说已经弃用了。
  • “锚定没有href属性的元素” - 再一次,元素的性质(超连接或非超连接)是经过具备属性来定义的。 双重疯狂。 常识说要彻底避免它。
  • 若是您在没有伪类的状况下设置锚点样式,则样式适用于每一个样式。 在CSS3中,您可使用属性选择器(或每一个伪类的相一样式)来解决这个问题,但仍然是一种解决方法。 这一般不会出现,由于您为每一个伪类选择颜色,而且默认状况下存在下划线只有删除才有意义,这使得它与其余文本相同。 可是你决定把你的连接变粗,这会给你带来麻烦。
  • Netscape 4可能不支持id功能,但仍然是未知属性不会形成任何麻烦。 这就是我所说的兼容性。

#4楼

如何将旧浏览器的name属性和id属性用于新浏览器。 将使用这两个选项,默认状况下将执行回退方法! 容器


#5楼

为JavaScript用户着想: 全部ID都成为窗口下的全局变量

<h1 id="foo">Foo Title</h1>

刚刚建立了JS全局:

window.foo

window.foo的值将是h1HTMLElement

除非您能够保证id属性中使用的全部值都是安全的,不然您可能更喜欢坚持使用name

<h1 name="foo">Foo Title</h1>
相关文章
相关标签/搜索