input[type=date]
这是一些浏览器中的默认示例:
Edge Chromium 和 Chrome 都在 input[type=date] 的默认宽度上添加了很多不必要的空白,每个空白大约 50px。在我的特殊情况下,我在一个非常宽的网格/表格中放置了一些,并且水平空间非常宝贵,以适应屏幕上所有复杂的表单字段。
理想情况下,我可以width: max-content
用来收紧这些宽度,但这没有效果。(或者更好的是,默认情况下根本不存在额外的空白。)如果我在 CSS 中设置特定的宽度,所有浏览器都会开始围绕不同的值重叠我的日期文本。
我能想到的解决宽度问题的唯一两个选择是:
- 浏览器嗅探并为不同的浏览器使用不同的 CSS 选择器。(我知道为什么这是不好的做法和糟糕的主意。)
- 不要使用 input[type=date] 而是使用 JavaScript 日期选择器或 Web 组件。(我不喜欢这个,因为我认为移动浏览器实现了比桌面浏览器更好的日期选择器,我不想强迫用户使用其中一个。)
有人有其他建议吗?这是一个 CodePen,以防有人想分叉。