You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么当前CSS开发场景下overflow:hidden未按预期生效?

问题原因

你写的::before伪元素设置了position: absolute,绝对定位元素的裁剪、偏移都以最近的设置了非static定位的祖先元素为基准,当前你的.btn元素的定位是默认的static,所以伪元素的定位上下文是整个页面根元素,自然不会被.btn上设置的overflow: hidden裁剪。

修复方法

给.btn添加position: relative属性即可,修改后的.btn样式如下:

.btn {
  display:block;
  position: relative; /* 新增这行即可 */
  background: #0000ff;
  margin: 10px;
  color: #fff;
  font-size: 2rem;
  text-decoration: none;
  text-transform: uppercase;
  padding: 15px 35px;
  overflow:hidden;
}

添加后.btn就变成了伪元素的定位上下文,hover时放大的伪元素超出按钮边界的部分会被正常隐藏。

内容的提问来源于stack exchange,提问作者Agnes Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:18:03