这篇文章发布于 2025年12月22日,星期一,09:00,归类于 CSS相关。 阅读 71 次, 今日 69 次 没有评论
by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11972
本文可全文转载,但需要保留原作者、出处以及文中链接,AI抓取保留原文地址,任何网站均可摘要聚合,商用请联系授权。
一、CSS锚点定位的不足
CSS锚点定位是非常强大且实用的CSS新特性,这个特性我去年就介绍过,参见“全新的CSS Anchor Positioning锚点定位API”
虽然强大,但不完美。
这个问题我在升级LuLu UI的Select组件的的时候也遇到过,看下图一目了然:

看箭头指示的那里,圆角是在上面的,实际上,当列表朝上的时候(底部空间不足),圆角应该在左下方和右下方。
为什么会出现这种情况,那就是因为CSS锚点定位使用候补定位的时候,开发人员是不知道的,就没有在使用候补定位的时候进行专门的处理。
在上面的例子中,LuLu UI下拉框朝上的样式处理最后还是放弃了锚点定位的候补位置方法。
不过,现在,Chrome 143+新支持了一个特性,可以实现锚定容器回退检测了。
二、回退检测语法的使用
CSS锚点定位的回退检测使用很简单。
第一步,设置容器类型为anchored,同时指定自动回退的方位类型,这个对应的CSS属性是position-try-fallbacks属性,例如设置边界自动垂直翻转:
.float-element {
position-try-fallbacks: flip-block;
container-type: anchored;
}
第二步,使用@container anchored()函数进行匹配,示意:
@container anchored(fallback: flip-block) {
.float-element {
/* 如果垂直定位方向改变,如何如何…… */
}
}
就可以了!
三、fallback案例
最好的学习方法还是案例,您可以狠狠地点击这里:CSS锚点定位回退检测与tooltip效果实现demo
在默认状态下,黑色提示框是在上面的,箭头朝下。
随着滚动进行,当提示框触碰到浏览器上边缘的时候,提示框的位置就会使用候补位置,垂直翻转,此时,大家可以看到箭头位置朝上了,这就是用的新的语法实现的。
以上效果需要Chrome 143+浏览器支持,如果您的浏览器不满足条件,也可以查看下面的GIF录屏效果,体会我说的意思。

实现代码
HTML代码如下:
<span class="tooltip">我是提示内容</span> <button class="anchor">我是按钮</button>
CSS完整代码:
.anchor {
anchor-name: --my-anchor;
}
/* 提示浮层元素 */
.tooltip {
position: fixed;
margin-top: 1rem;
position-anchor: --my-anchor;
position-area: bottom;
/* 垂直方向翻转 */
position-try-fallbacks: flip-block;
/* 设置为锚点查询容器类型 */
container-type: anchored;
/* 向上小三角效果 */
&::before {
content: '';
position: absolute;
bottom: 100%;
inset-inline: 0;
width: 1em;
margin-inline: auto;
aspect-ratio: 3/2;
clip-path: polygon(50% 0, 100% 100%, 0% 100%);
background: inherit;
}
background: #121212;
color: #fff;
padding: 4px 8px;
}
/* 如果触发了垂直翻转 */
@container anchored(fallback: flip-block) {
.tooltip::before {
/* 小三角翻转,定位调整 */
scale: 1 -1;
bottom: auto;
top: 100%;
}
}
四、点到为止、结语
关于CSS锚点定位容器查询,本文就先说这么多,不做进一步展开,为什么呢?
很简单,兼容性还很一般,目前Chrome 143才支持,而Chrome 143就是最近的正式版本。

考虑到我现在的年纪,不知道有生之年,有没有可能在正式项目中使用这个特性。
嘿嘿!

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:https://www.zhangxinxu.com/wordpress/?p=11972
(本篇完)
- 介绍2022年最期待的CSS container容器查询 (0.438)
- 又发现一种无需绝对定位就可以元素重叠的CSS技巧 (0.438)
- jQuery powerFloat万能浮动层下拉层插件 (0.307)
- js页面文字选中后分享到新浪微博实现 (0.307)
- 告别JS浮层,全新的CSS Anchor Positioning锚点定位API (0.255)
- 聊聊Top Layer顶层特性的隐患与实践 (0.184)
- 好诶,select下拉框元素支持样式完全自定义啦! (0.184)
- CSS锚点定位实战-鼠标跟随交互效果 (0.184)
- 好奇心驱使下试验了chatGPT写CSS代码的能力 (0.131)
- CSS高宽不等图片固定比例布局的三重进化 (0.131)
- 大侠,请留步,要不过来了解下CSS Scroll Snap? (RANDOM - 0.071)