1

我知道,如果您在 url 的末尾插入一个 id,即 foo.com#bar,它将导航到标有“bar”id 的 DOM 元素。其他 css 选择器或 xpath 也是如此吗?

浏览器如何导航到所需的 ID?

4

2 回答 2

4

浏览器导航到与片段标识符中的内容匹配的第一个元素(即#,在本例中为 之后的位bar)。在 HTML 中,如果一个元素是a具有匹配name的元素,或者是具有匹配 ID 的任何类型的元素,则称该元素匹配。如果有重复,浏览器应该跳转到其中的第一个,但鉴于您不应该有重复的名称/ID,这种行为可能因浏览器而异,因此不可靠。

至于跳跃本身,传统上,这不是动画。浏览器只是跳转到匹配元素的顶部。元素是高于还是低于当前滚动位置并不重要。

CSS 选择器中的 ID 选择器表示法实际上采用散列片段表示法,而不是相反。因此,该符号仅适用于命名的锚点或 ID。它不允许您指定 XPath 或 CSS 选择器。

也就是说,有一个 W3C 社区组正在探索扩展符号以使用选择器的想法,恰当地将CSS 选择器命名为片段标识符,我恰好是其中的成员。当然,目前还没有实现,因为这只是一个想法。

于 2013-06-25T06:10:49.767 回答
0

它会(立即)向下滚动,直到 ID 位于屏幕顶部,并且仅适用于 ID。您不能使用其他选择器(类、标签等)。

就像这个 URL:CSS 选择器/xpath 和 urls

于 2013-06-25T06:07:16.953 回答