能否修改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
相关产品推荐
相关产品推荐

