2个并排input在XHTML摸下下IE下输入中文导致offset增加bug

  在IE浏览器下面,当文档申明为xhtml时,2个并排的在一起的输入控件,当一个输入框内容为非中文内容,另外一个为中文时,出现奇怪的问题。测试代码在最后

1)IE8浏览器下面顶部会出现2px差距,没有对齐,并且输入框内的文字没有对齐,中文接近顶部,非中文内容和中文内容相差2px左右,如图一。

2个并排input在XHTML摸下下IE下输入中文导致offset增加bug
图一


2)IE7浏览器下面顶部对齐,但是输入框内的文字没有对齐,中文接近顶部,非中文内容和中文内容相差2px左右,和IE8一样,如图二。

输入框内的文字没有对齐
图二


  通过IE开发者工具查看布局发现,在IE8浏览器下面,中文输入内容input的offset会多2px,如图三,图四。通过图片可以看出中文input的offset莫名奇妙多了2px。

IE8非中文input布局
图三

IE8中文input布局
图四



  解决IE8下input中文内容和非中文内容不对其的问题,可以用浮动来布局。或者去掉xhtml声明,将渲染模式由CSS1Compat转为BackCompat。输入框内容对其暂时没找到好办法。

  IE8下错位的代码,xhtml申明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style type="text/css">
   input{margin: 0;padding: 0;}
</style>
<input type="text" value="123" /><input type="text" id="t1" value="中文"/>

解决方案一,去掉xhtml申明

<style type="text/css">
   input{margin: 0;padding: 0;}
</style>
<input type="text" value="123" /><input type="text" id="t1" value="中文"/>

解决方案二,float布局,保留xhtml申明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style type="text/css">
   input{margin: 0;padding: 0;float:left}
</style>
<input type="text" value="123" /><input type="text" id="t1" value="中文"/>

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:2个并排input在XHTML摸下下IE下输入中文导致offset增加bug

评论(1)Web开发网
阅读(543)喜欢(0)HTML/CSS兼容/XML