堂Di

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

因为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*/
}

 


 

posted on 2012-11-01 11:55  堂Di  阅读(353)  评论(0编辑  收藏  举报