本文介绍通过 Flexbox 替代绝对定位(position: absolute)来解决清除按钮在 Chrome、Safari 等浏览器中垂直位置不一致的问题,提升响应式布局的稳定性和可维护性。
本文介绍通过 flexbox 替代绝对定位(`position: absolute`)来解决清除按钮在 chrome、safari 等
浏览器
中垂直位置不一致的问题,提升响应式布局的稳定性和可维护性。
在构建搜索栏组件时,常需为输入框添加一个“清除”按钮(Clear Button),并在用户输入内容后动态显示。许多开发者习惯使用 position: absolute 配合 top/right 值精确定位该按钮——但这种方式极易因各浏览器对 padding、line-height、font-size 或 box-sizing 的默认解析差异,导致按钮垂直偏移不一致(如 Chrome 中居中、Safari 中下移),尤其在 .expanded 全屏展开态下更为明显。
根本解法:放弃绝对定位,拥抱语义化 Flexbox 布局
将清除按钮
