当前位置:首页 >> 网页制作

粗上加粗的IE10字体宽到超出原本的容器

最近发现有个菜单在 IE 下面显示得非常怪异,字体宽到超出原本的容器,仔细看了下 css 代码,字体设置得也不算大啊,后来发现把加粗属性去掉就正常了。深入一步研究发现原来又是 IE 特立独行了。

代码如下:

复制代码代码如下:
<p> Normal font 1 </p>
<p><b> Bold font 2 </b></p>
<p style="font-weight: bold;"><b>Bolder font 3</b></p>

在其他 geko 浏览器和IE8以下中显示是这样的:
粗上加粗的IE10字体宽到超出原本的容器 
唯独IE 10 及以上是这样的:
粗上加粗的IE10字体宽到超出原本的容器 
请注意 font 3 比 font 2 粗了很多。

作祟的是: font-weight: bold; 和 <b> 标签同时使用时,IE 10 的处理是加粗两次,而其他浏览器(包括较早版本的IE)则只加粗一次。这个从语义上理解也无可厚非,因为的确是加粗了两次,但是从实用角度及容错角度来看,加粗渲染一次足以,相信很少有需要加这么粗的。

当然啦,这种 font-weight: bold; 和 <b> 标签同时使用的写法是应该避免的。