HTML 锚点全局属性
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
anchor
全局属性用于将定位元素与锚点元素关联起来。该属性的值是您想将定位元素锚定到的元素的 id
值。然后可以使用 CSS 锚点定位来定位元素。
注意:另外,您也可以通过 CSS 使用 anchor-name
和 position-anchor
属性将定位元素与锚点元素关联起来。如果同一个元素同时使用了这两种锚定技术,CSS 技术将优先于 HTML 技术。
示例
基本的 anchor
属性用法
以下示例使用 HTML 将定位元素与锚点关联起来。然后使用 CSS 将定位元素固定在锚点的右侧。
HTML
我们创建一个 id
为 example-anchor
的 <div>
元素。这就是我们的锚点元素。然后,我们包含另一个 anchor
属性设置为 example-anchor
的 <div>
。这会将第一个 <div>
指定为第二个 <div>
的锚点,将两者关联起来。
我们还在两个 <div>
元素周围添加了一些填充文本,使 <body>
更高,以便可以滚动。
html
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Dui nunc mattis enim ut tellus
elementum sagittis vitae et.
</p>
<div class="anchor" id="example-anchor">⚓︎</div>
<div class="infobox" anchor="example-anchor">
<p>This is an information box.</p>
</div>
<p>
Nisi quis eleifend quam adipiscing vitae proin sagittis nisl rhoncus. In arcu
cursus euismod quis viverra nibh cras pulvinar. Vulputate ut pharetra sit amet
aliquam.
</p>
<p>
Malesuada nunc vel risus commodo viverra maecenas accumsan lacus. Vel elit
scelerisque mauris pellentesque pulvinar pellentesque habitant morbi
tristique. Porta lorem mollis aliquam ut porttitor. Turpis cursus in hac
habitasse platea dictumst quisque. Dolor sit amet consectetur adipiscing elit.
Ornare lectus sit amet est placerat. Nulla aliquet porttitor lacus luctus
accumsan.
</p>
CSS
我们使用 CSS 将 infobox
元素转换为一个锚点定位元素,并相对于其锚点进行定位。我们将它的
position
属性设置为fixed
,将其转换为定位元素,以便可以相对于锚点的位置进行定位。left
属性设置为一个anchor()
函数,值为right
。这会将定位元素固定到其锚点,使其左边缘与锚点的右边缘对齐。align-self
属性设置为anchor-center
。这将使 infobox 在内联方向上与锚点的中心对齐。margin-left
设置为10px
,在锚点定位元素与其锚点之间创建了间距。
css
.infobox {
position: fixed;
left: anchor(right);
align-self: anchor-center;
margin-left: 10px;
}
结果
滚动示例以查看 infobox 如何固定到锚点。当 anchor
属性得到支持时,infobox 将固定在锚点的右侧。如果不支持,infobox 将固定到视口。
规范
此属性目前不是 HTML 规范的一部分。请阅读关于在 https://github.com/whatwg/html/pull/9144 中添加 anchor
属性的讨论。
浏览器兼容性
加载中…
另见
HTMLElement.anchorElement
- CSS
anchor-name
属性 - CSS
position-anchor
属性 - CSS anchor positioning 模块