我知道,如果您在 url 的末尾插入一个 id,即 foo.com#bar,它将导航到标有“bar”id 的 DOM 元素。其他 css 选择器或 xpath 也是如此吗?
浏览器如何导航到所需的 ID?
我知道,如果您在 url 的末尾插入一个 id,即 foo.com#bar,它将导航到标有“bar”id 的 DOM 元素。其他 css 选择器或 xpath 也是如此吗?
浏览器如何导航到所需的 ID?
浏览器导航到与片段标识符中的内容匹配的第一个元素(即#
,在本例中为 之后的位bar
)。在 HTML 中,如果一个元素是a
具有匹配name
的元素,或者是具有匹配 ID 的任何类型的元素,则称该元素匹配。如果有重复,浏览器应该跳转到其中的第一个,但鉴于您不应该有重复的名称/ID,这种行为可能因浏览器而异,因此不可靠。
至于跳跃本身,传统上,这不是动画。浏览器只是跳转到匹配元素的顶部。元素是高于还是低于当前滚动位置并不重要。
CSS 选择器中的 ID 选择器表示法实际上采用散列片段表示法,而不是相反。因此,该符号仅适用于命名的锚点或 ID。它不允许您指定 XPath 或 CSS 选择器。
也就是说,有一个 W3C 社区组正在探索扩展符号以使用选择器的想法,恰当地将CSS 选择器命名为片段标识符,我恰好是其中的成员。当然,目前还没有实现,因为这只是一个想法。
它会(立即)向下滚动,直到 ID 位于屏幕顶部,并且仅适用于 ID。您不能使用其他选择器(类、标签等)。
就像这个 URL:CSS 选择器/xpath 和 urls