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

Chrome浏览器中表格内<input type='date'>百分比宽度异常问题

解决Chrome中<input type="date">百分比宽度异常的问题

这个坑我之前踩过!Chrome对原生日期输入框的样式处理确实有点“特立独行”,导致直接用百分比宽度时和文本输入框表现不一致,核心原因和解决方法我给你理清楚:

问题根源

Chrome给<input type="date">内置了固定的最小宽度和特殊的布局计算逻辑,哪怕你设置了width:100%,它也会优先遵循内置的最小宽度,而不是完全继承父容器的宽度。另外你的表格默认是table-layout:auto(自动布局),列宽会根据内容自动调整,这也会干扰你设置的百分比宽度生效。

完整解决方案

分两步就能搞定,既支持表格宽度动态变化,又能让两个输入框按比例适配:

1. 先固定表格布局,控制列宽比例

给表格加上table-layout:fixed,让列宽严格按照你设置的比例分配,而不是被内容撑开:

table {
  width: 200px;
  table-layout: fixed; /* 关键:强制按设置的列宽比例计算 */
  border-collapse: collapse; /* 可选,让表格边框更规整 */
}

/* 按需分配两个td的宽度比例 */
td:first-child {
  width: 70%;
}
td:last-child {
  width: 30%;
}

2. 重置日期输入框的样式限制

给所有输入框统一盒模型,同时解除Chrome对日期输入框的最小宽度限制:

input {
  width: 100%;
  box-sizing: border-box; /* 确保padding、边框不会超出父元素宽度 */
}

input[type="date"] {
  min-width: 0; /* 核心:解除Chrome内置的最小宽度限制 */
  /* 如果你想去掉原生的日期选择箭头,可添加下面一行,非必须 */
  /* appearance: none; */
}

效果验证

这样设置后:

  • 两个输入框会完全撑满各自的<td>,宽度和你设置的列宽比例一致
  • 当表格宽度变化时,输入框会自动按比例适配,不需要改固定像素值
  • 再单独给input[type="date"]设置百分比宽度(比如50%),它会基于父<td>的宽度计算,而不是出现之前的固定80px情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:58:16