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

CSS Translate未生效:密码输入框眼睛图标无法居中对齐求助

解决密码输入框眼睛图标垂直居中问题

问题根源在于你的.field容器固定了70px高度,但输入框只占容器的70%(49px),输入框在容器内存在上下留白;再加上字体图标默认的基线对齐特性,导致你设置的top:50%是基于整个容器高度居中,和输入框的视觉中心错位。

下面提供两种实用解决思路:


方法1:微调图标定位,匹配输入框位置

输入框在容器内的顶部偏移为(70px - 49px)/2 = 10.5px,输入框自身的垂直中心和容器的50%位置数值上一致,但字体图标因基线问题会视觉偏下,可通过以下两种方式修正:

修改.eye-icon的CSS:

.eye-icon {
  position: absolute;
  top: 50%;
  right: 10px;
  /* 微调垂直偏移,抵消字体基线的影响 */
  transform: translateY(-55%);
  font-size: 18px;
  color: #8b8b8b;
  cursor: pointer;
  padding: 5px;
  /* 或者直接设置line-height等于输入框高度 */
  /* line-height: 49px; */
}

方法2:重构布局,让对齐逻辑更简洁

去掉容器的固定高度,改用内边距控制垂直空间,让输入框高度自适应,这样图标基于容器居中就会和输入框自然对齐:

修改相关CSS代码:

.form .field {
  position: relative;
  width: 100%;
  margin-top: 24px;
  border-radius: 3px;
  /* 移除固定高度,用padding控制上下留白 */
  padding: 8px 0;
}

.field input, .field button {
  width: 100%;
  border: none;
  font-size: 14px;
  font-weight: 400;
  border-radius: 3px;
  /* 移除固定高度,用padding定义输入框自身高度 */
  padding: 12px 15px;
}

.field input {
  outline: none;
  border: 1px solid#CACACA;
}

.eye-icon {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  font-size: 18px;
  color: #8b8b8b;
  cursor: pointer;
  padding: 5px;
}

这种方式布局更灵活,后续修改输入框高度时,图标对齐逻辑无需额外调整。


内容的提问来源于stack exchange,提问作者Marc Kch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:15:26