调整input里面的输入光标大小并兼容主流浏览器

在项目里碰到过一个问题,input 输入框用一个背景图模拟,设置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;

 

posted @   幻月无名  阅读(421)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2016-10-28 CSS控制 table 的 cellpadding,cellspacing
2016-10-28 从 Typecho 自定义字段的调用代码看去
2016-10-28 Linux 服务器如何修改 DNS
2016-10-28 Linux 服务器如何禁止 ping 以及开启 ping
点击右上角即可分享
微信分享提示