解决IE6与IE7中的按钮多出1px的内边框问题
参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2 ]
[操作系统:Windows]
自古多情空余恨——这话太适合形容我此时此刻的心情,IE6/IE7这俩自作多情的浏览器经常让我愤恨不已。
这故事、这bug是这样的:
默认的按钮我不爱它,所以我想给它一个我觉得漂亮的背景,但是长度又不一致,所以就加个border,然后弄个可以repeat-x的background-image。
结果:IE6/IE7出现了1px的白色内边框。
提示:你可以先修改部分代码再运行。
^-^ 改变了一下body的背景,发现原来这个内边框其实不是白色的,而是透明的。
提示:你可以先修改部分代码再运行。
唔,幸亏是透明的,于是解决方案很快就找到啦:
提示:你可以先修改部分代码再运行
让Select在IE下去掉边框
<select style="border:none">
<option value="1">111</option>
<option value="2">222</option>
</select>
这样显示的时候,在ie5,6,7,8都会有边框,解决办法:
<div style="overflow:hidden;border:none;display:inline;position:absolute;">
<select style="border:none;margin:-1px;">
<option value="1">111</option>
<option value="2">222</option>
</select>
</div>
但是这样后,下面的元素会被这个绝对定位的div给覆盖掉。
而且元素本身也发生了位移,进一步的解决:
<div style="overflow:hidden;border:none;display:inline;position:relative; margin-top:3px;">
<select style="border:none;margin:-1px;">
<option value="1">111</option>
<option value="2">222</option>
</select>
</div>
后面的元素的 position属性页定义为: relative 这样就避免了被叠加覆盖的问题。