← CSS 里的 Path:一条路径的四种用途 / offset-path:path 当运动轨道 待审核 6 / 7
offset-path · 轨道

offset-path:path 当运动轨道

同一条 path,交给 clip-path 是剪刀的走线;交给 offset-path,它变成一条轨道——元素被「穿」在路径上,位置不再由 top/left 决定,而是由里程 offset-distance 决定(0% 起点,100% 终点)。把 distance 做成动画,元素就沿任意曲线运动,这是 transform: translate 难以直接表达的。路径串本身的写法见 path 微语言一页。

1 · 手动控制里程

虚线是轨道(用 SVG 画出来辅助观察;真正起作用的是 CSS 值)。拖里程滑块,换轨道、换朝向:

offset 是五个子属性的合写。 offset-path 轨道 · offset-distance 里程 · offset-rotate 朝向 · offset-anchor 元素身上哪个点贴轨道(默认中心)· offset-positionray() 这类「没有自带起点」的轨道定起点。可以合写成 offset: path("…") 30% / center 90deg

轨道的取值面最广。 除了 path(),还有从一点按角度发射的 ray()、引用 SVG 的 url(#id)、整个 basic-shape 家族(形状的轮廓线当轨道,上面试了 circle/inset),以及 content-box 等 coord-box 关键字(盒子边缘当轨道)。动画 + 响应式的完整示例在 css-animation 系列的 Motion Path 页,该页把 7 种轨道并排对比。