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

能否修改Ngx-Mask特殊字符样式?仅放大输入框中的|字符

解决Ngx-Mask输入框分隔符“|”单独放大的问题

原生<input>无法为单个字符设置独立样式,因此可以通过容器包裹+模拟分隔符的方式实现需求,具体步骤如下:

1. 调整HTML结构与Ngx-Mask配置

将原输入框的分隔符从|改为空格,并用容器包裹,同时添加用于模拟大尺寸|的空标签:

<div class="mask-input-container">
  <!-- 5个用于模拟分隔符的标签 -->
  <span class="big-separator"></span>
  <span class="big-separator"></span>
  <span class="big-separator"></span>
  <span class="big-separator"></span>
  <span class="big-separator"></span>
  
  <input
    type="text"
    [specialCharacters]="[' ']"
    mask="0 0 0 0 0 0"
    [showMaskTyped]="true"
    placeHolderCharacter="0"
    class="autolectura-input form-control"
    required
    id="codigo"
    formControlName="codigo"
  />
</div>

2. 添加CSS样式

通过定位模拟分隔符,放大|并隐藏原生空格的视觉效果:

.mask-input-container {
  position: relative;
  display: inline-block;
}

/* 调整输入框内间距,为模拟分隔符留出位置 */
.mask-input-container input {
  letter-spacing: 1.6em;
  text-align: center;
  padding: 0 0.6em;
}

/* 设置大尺寸分隔符样式 */
.mask-input-container .big-separator::before {
  content: '|';
  font-size: 1.8em; /* 按需调整此值控制|的大小 */
  color: inherit;
}

.mask-input-container .big-separator {
  position: absolute;
  pointer-events: none; /* 避免干扰输入操作 */
  top: 50%;
  transform: translateY(-50%);
}

/* 定位每个分隔符的位置,根据输入框实际宽度微调百分比 */
.mask-input-container .big-separator:nth-child(1) { left: 17%; }
.mask-input-container .big-separator:nth-child(2) { left: 34%; }
.mask-input-container .big-separator:nth-child(3) { left: 51%; }
.mask-input-container .big-separator:nth-child(4) { left: 68%; }
.mask-input-container .big-separator:nth-child(5) { left: 85%; }

原理说明

  • 让Ngx-Mask用空格作为分隔符,规避原生|的尺寸限制
  • 通过容器内的定位标签生成放大的|,精准摆放至数字之间
  • pointer-events: none确保分隔符不会影响输入交互

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:10:08