同一個 <input> 元素在 <li> 容器中,Chrome 顯示寬度大於 IE,導致佈局錯位。開發者未顯式設置 input 寬度。
瀏覽器對表單元素的默認樣式渲染存在差異:
input[type=text] 的默認寬度計算方式不一(字符數、像素值、盒模型解析)。input[type="text"] {
width: 200px; /* 固定像素寬度 */
/* 或 */
width: 100%; /* 自適應父容器 */
box-sizing: border-box; /* 統一盒模型,含 padding/border */
}
/* 通用重置 */
input, select, textarea {
margin: 0;
padding: 0;
border: 1px solid #ccc;
font-family: inherit;
font-size: inherit;
box-sizing: border-box;
}
引入成熟的 CSS 重置庫,統一跨瀏覽器基準樣式:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.css">
確保頁面以標準模式渲染,避免 IE 進入 Quirks 模式:
<!DOCTYPE html>
瀏覽器間 Input 寬度不一致的核心原因是默認樣式差異。解決關鍵在於顯式聲明樣式屬性,特別是 width、box-sizing、font 等關鍵屬性。引入 Normalize.css 並遵循標準模式開發,可從根源消除 90% 以上的表單兼容性問題。