HTML 錨點全域性屬性

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

anchor 全域性屬性用於將定位元素與錨點元素關聯起來。該屬性的值是您想將定位元素錨定到的元素的 id 值。然後可以使用 CSS 錨點定位來定位元素。

注意:另外,您也可以透過 CSS 使用 anchor-nameposition-anchor 屬性將定位元素與錨點元素關聯起來。如果同一個元素同時使用了這兩種錨定技術,CSS 技術將優先於 HTML 技術。

示例

基本的 anchor 屬性用法

以下示例使用 HTML 將定位元素與錨點關聯起來。然後使用 CSS 將定位元素固定在錨點的右側。

HTML

我們建立一個 idexample-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 屬性的討論。

瀏覽器相容性

另見