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

如何让password类型输入框无论输入多少字符都仅显示1个圆点?

实现密码框固定显示单个圆点的两种方案

纯CSS方案

实现逻辑简单,无需JS,通过让所有密码圆点重叠实现单圆点效果,适合浏览器环境可控的场景使用。

<input type="password" class="single-dot-password">
.single-dot-password {
  /* 核心配置:极大负字符间距让所有圆点重叠 */
  letter-spacing: -10em;
  /* 调整内边距让圆点位于输入框正常起始位置 */
  padding-left: 8px;
  /* 可选:隐藏光标避免视觉异常,需要保留光标可删除该行 */
  caret-color: transparent;
}

注意:该方案存在一定浏览器兼容性差异,部分非webkit内核浏览器可能出现圆点偏移、重叠失效的问题。

JS+CSS方案(更推荐)

通过视觉层和数据层分离实现,兼容性拉满,无适配问题,可自定义程度更高。

<div class="password-input-wrapper">
  <!-- 视觉层固定圆点 -->
  <span class="dot">*</span>
  <!-- 真实输入层,透明覆盖接收用户输入 -->
  <input type="password" class="real-input" placeholder="请输入密码">
</div>
.password-input-wrapper {
  position: relative;
  width: 200px;
  height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 0 8px;
  display: flex;
  align-items: center;
}
.real-input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 2;
  border: none;
  background: transparent;
}
/* 无输入时隐藏圆点,有输入时显示 */
.dot {
  display: none;
  font-size: 16px;
}
.password-input-wrapper.has-value .dot {
  display: block;
}
const realInput = document.querySelector('.real-input');
const wrapper = document.querySelector('.password-input-wrapper');

// 监听输入控制圆点显示
realInput.addEventListener('input', () => {
  wrapper.classList.toggle('has-value', realInput.value.length > 0);
});

// 取值直接取realInput.value即可

这个方案中,用户的输入全部由真实的密码输入框接收,表单提交、取值逻辑和原生输入框完全一致,没有额外改造成本。

内容的提问来源于stack exchange,提问作者Jasper Scritt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:48:03