您的位置:首页 > Web前端 > CSS

input、select、textarea兼容不同浏览器样式统一

2015-04-28 10:55 489 查看
输入框高亮,文字上下居中

input,textarea,select {
border:1px solid #ccc;
font-family:inherit;
font-size:inherit;
*font-size:100%; /* IE *
font-weight:inherit;
outline:none;
-moz-border-radius:1px;Firefox
-webkit-border-radius:1px;Safari和Chrome
border-radius:1px;IE9+
}

input:focus, select:focus, textarea:focus {
-moz-outline: 1px solid #e74c3c;
-moz-outline-radius: 1px;
border-color:#e74c3c;	/* IE */
outline:#e74c3c 1px solid;	/* Chrome */
-webkit-border-radius:1px;Safari和Chrome
border-radius:1px;IE9+
}
input{	/*for ie, 字体上下居中*/
height:20px;
line-height:20px;
}


扩展:

以下选自:http://www.jb51.net/css/143472.html

设置height和line-height一样的高度,使里面的输入文字能够居中

在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高,但当开始输入文字时,光标又变得跟文字一样高,

chrome下光标跟input的height一样高,

而IE下光标跟文字的大小一致。

初步结论如下:

IE:不管该行有没有文字,光标高度与font-size一致。

FF:该行无文字时,光标高度与input的height一致。该行有文字时,光标高度与font-size一致。(最新版的好像和ie一样了)

Chrome:该行无文字时,光标高度与line-height一致;该行有文字时,光标高度从input顶部到文字底部(这两种情况都是在有设定line-height的时候),如果没有line-height,则是与font-size一致。

解决办法:

1,给input的height设定一个较小的高度,然后用padding去填充,基本上可以解决所有浏览器的问题

复制代码
代码如下:

input{

height: 16px;

padding: 4px 0px;

font-size: 12px;

}

2,只给IE line-height就可以了。

复制代码
代码如下:

-ms-line-height:40px;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐