关于INPUT 的光标的问题

input{
    height: 16px;
    padding: 4px 0px;
    font-size: 12px;
}

以前在项目里碰到过一个问题

input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中,

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

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

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

一直没弄明白为什么这样子,今天听罗浮宫里的同学一讨论,才知道原因所在。

初步结论如下:

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

FF:该行有文字时,光标高度与font-size一致。该行无文字时,光标高度与input的height一致。

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

解决的方案:

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

时间: 2024-08-05 23:14:49

关于INPUT 的光标的问题的相关文章

解决input输入光标不一致粗细!

今天有人问了谷歌和火狐下input输入框中的光标大小显示不一致,之前都没遇到过这~把人家的解决方法转过来先~~~以前在项目里碰到过一个问题input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中, 在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高,但当开始输入文字时,光标又变得跟文字一样高, chrome下光标跟input的height一样高, 而IE下光标跟文字的大小一致. 一直没弄明白为什么这样子,今

JQUERY实现点击INPUT使光标移动到最后或指定位置

下面本文章给大家简单介绍一下JQUERY实现点击INPUT使光标移动到最后或指定位置例子,希望对各位有帮助,你要知道面对一个 处女座的 需求者, focus()是远远不够的,比如说“我点进去的时候光标要在最后,这样我就不用再把光标移动到最后去添加东西了.”,oh,让我先撞下墙. 我们需要扩展jQuery,代码如下: //光标放在最后 $("#文本框ID").textFocus();光标放在第二个字符后面 $("#文本框ID").textFocus(2); (func

控制input输入框光标的位置

一:理解input, textarea元素在标准浏览器下两个属性selectionStart, selectionEnd. selectionStart: 该属性的含义是 选区开始的位置: selectionEnd: 选区结束的位置. 两个值默认都是为0. 注意: 该属性在chrome,safari和firefox都有用,标准浏览器下使用这两个属性. 我们先来看看如下代码,打印下如下可以看到: <!DOCTYPE html> <html> <head> <meta

ios11,弹出层内的input框光标错位

之前开发了一个微信项目,安全上线,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position: fixed:弹出层内附带input/textarea输入框,ios11系统的苹果机用户在点击输入框,出现键盘后,弹出层被顶上去,而光标还停留在原处,即出现错位情况. 解决思路: 解决光标错位:弹出层设置为position: absolute:body添加position: relative; 弹出层重新定位:获取滚动条高度,设置为弹出层Top

ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳

之前开发了一个微信项目,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position: fixed:弹出层内附带input/textarea输入框,ios11系统的苹果机用户在点击输入框,出现键盘后,弹出层被顶上去,而光标还停留在原处,即出现错位情况. 解决思路: 解决光标错位:弹出层设置为position: absolute:body添加position: fixed; 弹出层重新定位:获取滚动条高度,设置为弹出层Top值: funct

Google Chrome input 设置 line-height 后光标变得和input一样高

Google Chrome input的height和line-height设置为相同的比默认高度高的值时,当input控件获得焦点并且没有输入内容时,input中的光标会占满整个input控件(如果设置了padding-top或padding-bottom则会低于整个控件的高度),但输入内容后光标高度又马上恢复为字体的高度,效果图和案例代码如下,那么怎么解决这个问题呢? <!DOCTYPE html> <html> <head> <title>line-h

input 光标在 chrome下不兼容 解决方案

input 光标在 chrome下不兼容 解决方案 height: 52px; line-height: normal; line-height:52px\9 .list li input[type=text] { width: 304px; height: 52px; line-height: normal; line-height: 52px\9; border: none; color: #FFFFFF; background: url(../images/txt-bg.png) no-r

IOS中input光标跑偏问题的解决方法

ios端兼容input光标高度处理 在最近的项目中遇到一个问题,input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.造成的原因就是给父盒子添加了height和line-height 当点击输入的时候,光标的高度就自动和父盒子的高度一样了.(谷歌浏览器的设计原则,还有一种可能就 是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字 的底部). 解决办法:去掉父盒子的高度heig

[转]Android EditText不弹出输入法以及光标设置

最近在做拨号应用,需要点击输入框的时候弹出自定义的键盘,隐藏系统的输入法.网上找了不少资料,终于给解决了,通过 android:inputType:指定输入法的类型,int类型,可以用|选择多个.取值可以参考:android.text.InputType类.取值包括:text,textUri, phone,number,等. Android SDK中有这么一句话“If the given content type is TYPE_NULL then a soft keyboard will no