fix(ui): 日期占位改用不透明遮罩盖住原生文字,不再依赖伪元素着色
把 ::-webkit-datetime-edit 系列伪元素设为透明的做法在部分环境下不生效, 空值日期框会同时显示自绘的「选择日期」与原生「yyyy/mm/日」,文字重叠。 改为用一层不透明背景直接盖住原生提示:靠绘制顺序生效,不依赖伪元素支持 与 CSS 选择器匹配;显示时机由 Vue 状态(空值 && 未聚焦)控制。同时删掉 style.css 里已失效的 .date-field--blank 规则。
This commit is contained in:
+3
-18
@@ -73,22 +73,7 @@
|
||||
}
|
||||
|
||||
/*
|
||||
* 空值的日期输入框:遮住浏览器自带的格式提示。
|
||||
* Edge 会按页面 lang 拼出「yyyy / mm / 日」这种半英半中的提示,
|
||||
* 既与界面语言不统一,又容易被误读成已经有内容。
|
||||
*
|
||||
* 只在未聚焦时遮挡 —— 否则聚焦编辑时连正在输入的数字都看不见。
|
||||
* 同时覆盖输入框本身与各分段伪元素,避免不同 Chromium 版本着色位置不一致。
|
||||
*
|
||||
* 刻意写在 @layer 之外:Tailwind 的 utilities 层优先级高于 components 层,
|
||||
* 若放进层里会被 text-slate-700 之类的工具类盖掉。也不写成 Tailwind 任意变体,
|
||||
* 因为那依赖扫描器从模板字符串里提取类名,HMR 或增量构建时容易漏。
|
||||
* 注:日期输入框空值时的原生提示(「yyyy / mm / 日」)不在这里处理。
|
||||
* 试过把 `::-webkit-datetime-edit` 系列伪元素设成透明,但部分环境下不生效,
|
||||
* 已改为在 DatePicker.vue 里用不透明占位层直接盖住。
|
||||
*/
|
||||
.date-field--blank:not(:focus),
|
||||
.date-field--blank:not(:focus)::-webkit-datetime-edit,
|
||||
.date-field--blank:not(:focus)::-webkit-datetime-edit-text,
|
||||
.date-field--blank:not(:focus)::-webkit-datetime-edit-year-field,
|
||||
.date-field--blank:not(:focus)::-webkit-datetime-edit-month-field,
|
||||
.date-field--blank:not(:focus)::-webkit-datetime-edit-day-field {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user