Web 表单(与用户数据打交道)之表单控件兼容性列表
下面的兼容性表格尝试总结 HTML 表单的 CSS 支持状况。由于 CSS 和 HTML 表单的复杂性,不能把这些表格当作完善的参考。但是,它们可以让你很好地洞察什么能做什么不能做,这将会对你学习使用有很好地帮助。
如何阅读表格
值
对于每个属性,有四种可能地取值:
- ✅ 支持
-
此属性具有相当一致的跨浏览器支持。在某些极端情况下,你可能仍然会面临奇怪的副作用。
- ⚠️ 部分支持
-
尽管这个属性会生效,你还是会经常面对奇怪的副作用和不一致性。你应该尽力避免这些属性,除非你已经深知那些副作用。
- ❌ 不支持
-
此属性就是不工作或者表现得非常不一致,所以并不可靠。
- 不适用
-
此属性对这种类型的组件没有意义。
渲染
对于每个属性有两种可能的渲染方式:
- N (Normal)
-
表示这个属性会像设置的那样应用。
- T (Tweaked)
-
表示这个属性需要通过下列的额外规则来使用:
* { /* Turn off the native look and feel */ -webkit-appearance: none; appearance: none; /* for Internet Explorer */ background: none; }
兼容性表格
全局行为
对许多浏览器来说,许多行为在全局范围内都是通用的:
-
在某些浏览器中,这里的任意一个属性可能影响组件的部分或全部的原生外观。小心使用。
-
不同浏览器支持情况不同,避免使用。
-
This property is not supported by Opera on form widgets.
-
Opera、Safari 和 IE9 的表单组件不支持这个属性。
-
Opera 的表单组件不支持
text-shadow,IE9 则是整个表单都不支持这个属性。
文本字段
参见 text、search 和 password input 类型。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
⚠️ 部分支持[1][2] | ✅ 支持 |
|
border |
⚠️ 部分支持[1][2] | ✅ 支持 |
|
margin |
✅ 支持 | ✅ 支持 | |
padding |
⚠️ 部分支持[1][2] | ✅ 支持 |
|
| 文本和字体 | |||
color[1] |
✅ 支持 | ✅ 支持 |
|
font |
✅ 支持 | ✅ 支持 | 查看有关 line-height 的注释 |
letter-spacing |
✅ 支持 | ✅ 支持 | |
text-align |
✅ 支持 | ✅ 支持 | |
text-decoration |
⚠️ 部分支持 | ⚠️ 部分支持 | 查看有关 Opera 的注释 |
text-indent |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-overflow |
⚠️ 部分支持 | ⚠️ 部分支持 | |
text-shadow |
⚠️ 部分支持 | ⚠️ 部分支持 | |
text-transform |
✅ 支持 | ✅ 支持 | |
| 边框和背景 | |||
background |
⚠️ 部分支持[1] | ✅ 支持 |
|
border-radius |
⚠️ 部分支持[1][2] | ✅ 支持 |
|
box-shadow |
❌ 不支持 | ⚠️ 部分支持[1] |
|
按钮
参见 button、submit 和 reset input 类型,以及 元素。<button>
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
⚠️ 部分支持[1] | ✅ 支持 |
|
border |
⚠️ 部分支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
⚠️ 部分支持[1] | ✅ 支持 |
|
| 文本和字体 | |||
color |
✅ 支持 | ✅ 支持 | |
font |
✅ 支持 | ✅ 支持 | 查看 line-height 的注释。 |
letter-spacing |
✅ 支持 | ✅ 支持 | |
text-align |
❌ 不支持 | ❌ 不支持 | |
text-decoration |
⚠️ 部分支持 | ✅ 支持 | |
text-indent |
✅ 支持 | ✅ 支持 | |
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
⚠️ 部分支持 | ⚠️ 部分支持 | |
text-transform |
✅ 支持 | ✅ 支持 | |
| 边框和背景 | |||
background |
✅ 支持 | ✅ 支持 | |
border-radius |
✅ 支持[1] | ✅ 支持[1] |
|
box-shadow |
❌ 不支持 | ⚠️ 部分支持[1] |
|
数字
参见 number input 类型。没有一种标准的方式改变数字字段的样式,值得注意的是 Safari 上的数字字段不在这个范围内。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
border |
✅ 支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
| 文本和字体 | |||
color |
✅ 支持 | ✅ 支持 | |
font |
✅ 支持 | ✅ 支持 | 查看有关 line-height 的注释。 |
letter-spacing |
✅ 支持 | ✅ 支持 | |
text-align |
✅ 支持 | ✅ 支持 | |
text-decoration |
⚠️ 部分支持 | ⚠️ 部分支持 | |
text-indent |
✅ 支持 | ✅ 支持 | |
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
⚠️ 部分支持 | ⚠️ 部分支持 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
❌ 不支持 | ❌ 不支持 |
支持,但浏览器之间的不一致性太多,所以并不可靠。 |
border-radius |
❌ 不支持 | ❌ 不支持 | |
box-shadow |
❌ 不支持 | ❌ 不支持 | |
Check boxes and radio buttons
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
❌ 不支持[1] | ❌ 不支持[1] |
|
height |
❌ 不支持[1] | ❌ 不支持[1] |
|
border |
❌ 不支持 | ❌ 不支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
❌ 不支持 | ❌ 不支持 | |
| 文本和字体 | |||
color |
不适用 | 不适用 | |
font |
不适用 | 不适用 | |
letter-spacing |
不适用 | 不适用 | |
text-align |
不适用 | 不适用 | |
text-decoration |
不适用 | 不适用 | |
text-indent |
不适用 | 不适用 | |
text-overflow |
不适用 | 不适用 | |
text-shadow |
不适用 | 不适用 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
❌ 不支持 | ❌ 不支持 | |
border-radius |
❌ 不支持 | ❌ 不支持 | |
box-shadow |
❌ 不支持 | ❌ 不支持 | |
选择框(单行)
参见 、<select> 和 <optgroup> 元素。<option>
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
height |
❌ 不支持 | ✅ 支持 | |
border |
⚠️ 部分支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
❌ 不支持[1] | ⚠️ 部分支持[2] |
|
| 文本和字体 | |||
color |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
font |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
letter-spacing |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-align |
❌ 不支持[1] | ❌ 不支持[1] |
|
text-decoration |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-indent |
⚠️ 部分支持[1][2] | ⚠️ 部分支持[1][2] |
|
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
⚠️ 部分支持[1][2] | ⚠️ 部分支持[1][2] |
|
text-transform |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
| 边框和背景 | |||
background |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
border-radius |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] | |
box-shadow |
❌ 不支持 | ⚠️ 部分支持[1] | |
注意,Firefox 没有提供用于修改 元素的向下箭头的方法。<select>
选择框(多行)
参见 、<select> 和 <optgroup> 元素,以及 <option>size 属性 (en-US)。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
✅ 支持 | ✅ 支持 | |
border |
✅ 支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
| 文本和字体 | |||
color |
✅ 支持 | ✅ 支持 | |
font |
✅ 支持 | ✅ 支持 | 参见有关 line-height 的注释。 |
letter-spacing |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-align |
❌ 不支持[1] | ❌ 不支持[1] |
|
text-decoration |
❌ 不支持[1] | ❌ 不支持[1] |
|
text-indent |
❌ 不支持 | ❌ 不支持 | |
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
❌ 不支持 | ❌ 不支持 | |
text-transform |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
| 边框和背景 | |||
background |
✅ 支持 | ✅ 支持 | |
border-radius |
✅ 支持[1] | ✅ 支持[1] |
|
box-shadow |
❌ 不支持 | ⚠️ 部分支持[1] |
|
Datalist
参见 华人 <datalist> 元素,以及 <input>list 属性。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
❌ 不支持 | ❌ 不支持 | |
height |
❌ 不支持 | ❌ 不支持 | |
border |
❌ 不支持 | ❌ 不支持 | |
margin |
❌ 不支持 | ❌ 不支持 | |
padding |
❌ 不支持 | ❌ 不支持 | |
| 文本和字体 | |||
color |
❌ 不支持 | ❌ 不支持 | |
font |
❌ 不支持 | ❌ 不支持 | |
letter-spacing |
❌ 不支持 | ❌ 不支持 | |
text-align |
❌ 不支持 | ❌ 不支持 | |
text-decoration |
❌ 不支持 | ❌ 不支持 | |
text-indent |
❌ 不支持 | ❌ 不支持 | |
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
❌ 不支持 | ❌ 不支持 | |
text-transform |
❌ 不支持 | ❌ 不支持 | |
| 边框和背景 | |||
background |
❌ 不支持 | ❌ 不支持 | |
border-radius |
❌ 不支持 | ❌ 不支持 | |
box-shadow |
❌ 不支持 | ❌ 不支持 | |
文件选择器
参见 file input 类型。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
❌ 不支持 | ❌ 不支持 | |
height |
❌ 不支持 | ❌ 不支持 | |
border |
❌ 不支持 | ❌ 不支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
❌ 不支持 | ❌ 不支持 | |
| 文本和字体 | |||
color |
✅ 支持 | ✅ 支持 | |
font |
❌ 不支持[1] | ❌ 不支持[1] |
|
letter-spacing |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-align |
❌ 不支持 | ❌ 不支持 | |
text-decoration |
❌ 不支持 | ❌ 不支持 | |
text-indent |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
❌ 不支持 | ❌ 不支持 | |
text-transform |
❌ 不支持 | ❌ 不支持 | |
| 边框和背景 | |||
background |
❌ 不支持[1] | ❌ 不支持[1] |
|
border-radius |
❌ 不支持 | ❌ 不支持 | |
box-shadow |
❌ 不支持 | ⚠️ 部分支持[1] |
|
日期选择器
参见 date 和 time input 类型。很多属性都被浏览器支持,但浏览器之间的不一致性太多,所以并不可靠。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
❌ 不支持 | ❌ 不支持 | |
height |
❌ 不支持 | ❌ 不支持 | |
border |
❌ 不支持 | ❌ 不支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
❌ 不支持 | ❌ 不支持 | |
| 文本和字体 | |||
color |
❌ 不支持 | ❌ 不支持 | |
font |
❌ 不支持 | ❌ 不支持 | |
letter-spacing |
❌ 不支持 | ❌ 不支持 | |
text-align |
❌ 不支持 | ❌ 不支持 | |
text-decoration |
❌ 不支持 | ❌ 不支持 | |
text-indent |
❌ 不支持 | ❌ 不支持 | |
text-overflow |
❌ 不支持 | ❌ 不支持 | |
text-shadow |
❌ 不支持 | ❌ 不支持 | |
text-transform |
❌ 不支持 | ❌ 不支持 | |
| 边框和背景 | |||
background |
❌ 不支持 | ❌ 不支持 | |
border-radius |
❌ 不支持 | ❌ 不支持 | |
box-shadow |
❌ 不支持 | ❌ 不支持 | |
颜色选择器
参见 color input 类型:
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
❌ 不支持[1] | ✅ 支持 |
|
border |
✅ 支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
❌ 不支持[1] | ✅ 支持 |
|
| 文本和字体 | |||
color |
不适用 | 不适用 | |
font |
不适用 | 不适用 | |
letter-spacing |
不适用 | 不适用 | |
text-align |
不适用 | 不适用 | |
text-decoration |
不适用 | 不适用 | |
text-indent |
不适用 | 不适用 | |
text-overflow |
不适用 | 不适用 | |
text-shadow |
不适用 | 不适用 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
❌ 不支持[1] | ❌ 不支持[1] |
|
border-radius |
❌ 不支持[1] | ❌ 不支持[1] | |
box-shadow |
❌ 不支持[1] | ❌ 不支持[1] | |
标量值和进度
参见 和 <meter> 元素:<progress>
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
✅ 支持 | ✅ 支持 | |
border |
⚠️ 部分支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
✅ 支持 | ⚠️ 部分支持[1] |
|
| 文本和字体 | |||
color |
不适用 | 不适用 | |
font |
不适用 | 不适用 | |
letter-spacing |
不适用 | 不适用 | |
text-align |
不适用 | 不适用 | |
text-decoration |
不适用 | 不适用 | |
text-indent |
不适用 | 不适用 | |
text-overflow |
不适用 | 不适用 | |
text-shadow |
不适用 | 不适用 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
❌ 不支持[1] | ❌ 不支持[1] |
|
border-radius |
❌ 不支持[1] | ❌ 不支持[1] | |
box-shadow |
❌ 不支持[1] | ❌ 不支持[1] | |
范围
参见 range input 类型。没有一种标准的方式来改变范围小组件的样式,Opera 也没有调整范围小组件默认渲染的方法。
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
border |
❌ 不支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
⚠️ 部分支持[1] | ✅ 支持 |
|
| 文本和字体 | |||
color |
不适用 | 不适用 | |
font |
不适用 | 不适用 | |
letter-spacing |
不适用 | 不适用 | |
text-align |
不适用 | 不适用 | |
text-decoration |
不适用 | 不适用 | |
text-indent |
不适用 | 不适用 | |
text-overflow |
不适用 | 不适用 | |
text-shadow |
不适用 | 不适用 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
❌ 不支持[1] | ❌ 不支持[1] |
|
border-radius |
❌ 不支持[1] | ❌ 不支持[1] | |
box-shadow |
❌ 不支持[1] | ❌ 不支持[1] | |
图像按钮
参见 image input 类型:
| 属性 | N | T | 注释 |
|---|---|---|---|
| CSS 盒子模型 | |||
width |
✅ 支持 | ✅ 支持 | |
height |
✅ 支持 | ✅ 支持 | |
border |
✅ 支持 | ✅ 支持 | |
margin |
✅ 支持 | ✅ 支持 | |
padding |
✅ 支持 | ✅ 支持 | |
| 文本和字体 | |||
color |
不适用 | 不适用 | |
font |
不适用 | 不适用 | |
letter-spacing |
不适用 | 不适用 | |
text-align |
不适用 | 不适用 | |
text-decoration |
不适用 | 不适用 | |
text-indent |
不适用 | 不适用 | |
text-overflow |
不适用 | 不适用 | |
text-shadow |
不适用 | 不适用 | |
text-transform |
不适用 | 不适用 | |
| 边框和背景 | |||
background |
✅ 支持 | ✅ 支持 | |
border-radius |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
box-shadow |
⚠️ 部分支持[1] | ⚠️ 部分支持[1] |
|
浙公网安备 33010602011771号