表单input按钮在各浏览器之间的兼容性

从网上看了这篇关于表单input按钮的浏览器兼容性问题,总结的还不错,所以copy下来学习下。

input按钮在各个浏览器之间的兼容性问题,看下边这段代码:

input.item {

background: #4D90FE;

border: 1px solid #4D90BB;

color: white;

}

<input type="submit" value="提交" />

这是很简单的一个input提交按钮,它在各大浏览器中的情况如下:

很明显,我们会看到它在每个浏览器中的效果都是长短不一,参差不齐的,哪个是标准的也不好说。

现在我们来对他进行一个修正,我用的修正样式如下:

.item input {

background:#4D90FE;

border:1px solid #4D90BB;

color:white;

font-family:Arial,sans-serif,Tahoma; 规定同一字体

font-size:12px; 规定同一字体大小

height:25px; 解决Safari和Chrome下的高度问题

line-height:15px; 协调height,让文字居中

overflow:visible; 只有设置这个属性IE下padding才能生效

padding:0 0.5em; chrome、ff默认值;调整其值,让IE和其他浏览器的一样

}

后面有注释的六行就是后来添加的。我们从上图可以看到,chrome下高度”有问题”,不符合我们的预期。

经测试,firefox下给input设置line-height值是无效的。

这应该是firefox中已经给input标签的line- height值定死了,那就只有从height和padding入手了。

经测试,firefox和chrome下,input中padding都有一个默认值padding:0 0.5em;

当我们将padding调至此默认值时发现IE下的input按钮的高度有了变化。

再经过height与line-height协调,最终修复的input按钮效果如下:

这时候可以看到,input按钮的高度在各大浏览器下都一样了。我们来个对比:

我们将input按钮放大并标注他的像素来看看:

经过修正,我们可以让input按钮的高度都达到一致(25px),宽度width方面,

IE7、IE8、IE9、chrome表现的效果都是一致(38×25)的,这次最让我失望就是firefox了,

width居然达到44px。有童鞋可能会说了,宽度不一致,还不是等于没修复吗?

好吧,我认为企图通过纯粹的CSS样式去让input标签样式中各个浏览器达到一致的效果几乎是不可 能的,

这不应该是表单设计需要过于纠结的问题,别在这方面浪费太多时间了。

也不是说完全没有办法的,其中很多用js可以模拟实现一致的效果,最经典的就是 select下拉框。

时间: 2025-01-06 20:55:50

表单input按钮在各浏览器之间的兼容性的相关文章

ASP.NET 表单验证方法与客户端(浏览器)服务器交互机制的故事

想到这个问题完全是一个意外吧,是在寻找另外一个问题答案的过程中,才对验证方法与浏览器服务器交互机制的关系有了清晰的认识. 先说下验证方法,验证方法分为前台验证和后台验证. 前台验证就是类似jQuery.Validate这类的插件,当然也可以我们自己写. 后台验证就是ASP.NET自带的验证控件,如RequiredFieldValidator. 记得初学.NET的时候,那会儿接触验证控件,也知道验证分为前台,后台.但是随着时间的推移,由于做的项目基本上都是公司内部使用的软件,比如OA.因为这种项目

前端1-----块级标签(独占一行),排版标签(样式排版),其他标签,form表单(input的多种类型)

前端1-----块级标签(独占一行),排版标签(样式排版),其他标签,form表单(input的多种类型) 一丶HTML块级标签 排版标签 p 标签: 段落标签,会自动在段落上下加上空白来分开 p标签是一个文本标签,本身是一个块级标签不能再嵌套块标签 div 标签: 没有样式的标签 ,最常用 列表 ???????1.无序列表 常用 ??????2.有序列表 ??????3.标题列表 # 无序列表 circle:空心圆, disc:默认实心圆,square:实心方片 <ul type='circl

表单提交按钮input和button、a的差异

现在普遍的在网页中,表单提交数据的按钮最常见实用有三种,一种是input,一种是button,最后一种,是其他如a标签,div标签,span标签代替而来.在以前的日子里,大家都习惯于用input,因为他直接拥有type=submit,而button没有,它更适合于表达 button.然而... 首先我们说说:input标签:这个最常见了,不多说:当type="submit"时,提交表单数据! button标签:经过测试:在<IE8浏览器,button的默认type="b

HTML中让表单input等文本框为只读不可编辑的方法

<转> 方法1: onfocus=this.blur() <input type="text" name="input1" value="中国" onfocus=this.blur()> 方法2:readonly <input type="text" name="input1" value="中国" readonly> <input type=&

Form表单内按钮实现location.href跳转

这两天在架设一个较早的PHP应用程序,发现有几个按钮在IE下点击有效果,在Chrome.Firefox下点击则没反应.问题来了,那么马上F12拉出神器开始调试,下面把HTML代码贴出来: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

表单input

inputname属性:用于对提交到服务器后的表单数据进行标识(否则服务器无法得到数据),通过该属性可以在脚本中引用表单数据.document.getElementByTagName("firstname")和$(".firstname")可以获取name值为firstname的元素对象. formname属性:规定表单的名称.通过name属性可以在脚本中引用表单.action属性:必须.规定当提交表单时,向何处发送表单数据.(属性值:绝对URL.相对URL)met

bootstrap基础学习【表单含按钮】(二)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bootstrap基础学习[表单](二)</title> <link rel="stylesheet" href="css/bootstrap.min.css" /> </head> <body style="padd

form表单input file类型的重置

我们知道form表单的dom中有一个reset方法,通过 document.getelemetbyid('yourform').reset()可以重置表单. Jquery对象没有reset方法,所以jquery的重置也是通过dom的reset方法完成,即 $('yourform')[0].reset() 对于form表单的input file类型的元素,在其他主流浏览器中通过form的reset方法完全可以重置 但是IE9以及以下对input file类型,reset无法重置.查了一些资料据说是

Easyui表单之按钮的提交

一.表单按钮的提交前代表对提交内容的验证 二.表单按钮的提交后代表对把数据提交给后台 1. 界面层页面编辑代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <!-- 1 JQuery的js包 --> <script type="text/javascript&