因为input输入框字数限定超过了背景图的宽度,背景图在ie67下会跟着移动,尝试了以下的解决办法:
1.background-attachment:fixed
但是ie7不管用,继续下一个方案
2.字数限定
对input做字数限定是最好的办法
3.背景图模拟
这个方法也不错,但是要根据情况,稍微调整一下以适应改动,比如我的项目中input后面有提示文字 加了背景图模拟层 需要做浮动margin等来调整
*“背景图模拟”引出的问题
<label for="username">账号</label><span class="input_bg"><input type="text" id="username" class="username"/></span>
用一个背景图模拟,设置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去填充,基本上可以解决所有浏览器的问题
input{ font-size: 12px; height: 16px; line-height:1; padding: 4px 10px; padding: 0px\9 10px\9;/*for ie*/ height: 20px\9;/*for ie*/ line-height:20px\9;/*for ie*/ }