IE8的一个BUG:Hack 兼容方案

2016-02-20 00:26 5 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享IE8的一个BUG:Hack 兼容方案吧。

【 tulaoshi.com - Web开发 】

字体真是个麻烦的东西,然后又是个重要的东西。为以更方的解决字体问题,就像上次推荐的《》,为了Pixel Perfect,我们不断纠结。像支付宝在CSS Reset中是这样写的:

body{:12px Tahoma,Helvetica,Arial,,sans-serif} 

而淘宝这样写:

body, button, input, select, textarea {:12px/1.5 tahoma,arial,,sans-serif;} 

个人偏向于淘宝的写法,显然,button/input/select/textarea的字体都是要重设才会显示正常的。这里并不是为了讨论这个,而是这里面都有 tohama 这种字体,它是今天的主角。因为字体显示好,也因为导致 BUG 而被搬上台面。让我们来先看一个Demo:

Here:

如果你是从 IE8 打开,将会看到第一个按钮有错位。如标题所说,你懂的,这就是 Tahoma 给我们带来的问题。而解决方案很简单,就是避用 tahoma 字体,其他的随便。比如:

body, button, input, select, textarea {:12px/1.5 arial,,sans-serif;} 

在支持没有那么完美的状况下,这样的解决方式可以说是完美的。即使你像我一样也,还是不推荐使用暴力方式,我们的目标是、也应该是更有效、更优雅。

然后,其实 hack IE 8的时候,可以考虑 selector{property:value;} 这样的方法来,因为这是 IE8+ 独有的方法。Hmmm 多好,虽然有点暴力。最后,推荐一下工友。解决这个 Bug,还得归功于他。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

经过一条完美分割线从火星来到地球,囧,刚刚还测试了arial放在前面是可以的,而且早上测试过,不过,事实证明测试要更小心,要多次,不然可能刷出来的是缓存。事实的解决方法似乎是这样的:

有中文和英文混排的时候,怎么写都无所谓; 只有中文的时候,放在前面最好的系统所拥有的字体,或者一种系统没有的字体来让他显示默认字体; 全英文就更是所所谓了

多谢帮助寻找真相的 和 默默同学,一个问到底,一个提供一个非中文的 IE8 显示效果图片。

来源:https://www.tulaoshi.com/n/20160220/1631831.html

延伸阅读
标签: Web开发
IE8 将具有 多种兼容模式 。IE平台建筑师Chris Wilson在博客中写到,IE平台的工作是同时提供互操作性(网页在不同浏览器的均能正常工作)和向后兼容性(兼容之前版本的IE浏览器)。若是希望IE8继续与目前的数十亿网页兼容,同时也满足使未来数十亿网页开发更加容易的目标,IE8将采用不同的模式显示网页。 他在博客中表示,在过去的6个主...
标签: Web开发
一个 utf-8 网页在 IE6 下的BUG自己测试的,不一定100%准确,仅供参考。 触发条件: 1. title标签里的内容为中文其他双字节字符 2. 指定网页编码的 meta 信息在 title 标签的下方,即 title中文或其他双字节字符title/titlemeta http-equiv="Content-Type" content="text/html; charset=utf-8" / 3. 另存或转换utf-8编码...
标签: 浏览器
IE8隔离功能   平时大家在使用任何浏览器上网的过程中,不管您使用的是IE6还是IE8,或者还是火狐等浏览器,都会遭遇到浏览器崩溃或者无响应的情况,尤其是在浏览器打开多个选项卡浏览的情况下,一旦有一个浏览器窗口中的选项卡出现崩溃的情况,那么就会殃及到整个浏览器。假如在这期间我们有在下载资讯,那这之前的下载就等于白费了。...
标签: Web开发
今天在梦之光芒的BLOG上看见了一个Ajax Hack示范,其实跨站发现很容易,但是要做到大危害还是很难,偷偷COOKIE什么的只针对用户而已,XSS WORM的那种利用才是可怕的。 来看看他的一段VBSCRIPT脚本 代码如下: vbscript:execute("  dim l,s:  l=chr(13)+chr(10):  s=""sub mycode""&l:  s=s&""d...
标签: Web开发
IE8在默认情况下是使用全新的标准模式(Standard Mode)显示引擎来显示网页。 如果网页代码还没有标准化, 在IE8下可能会显示不正常。 重写网页代码使之标准化的工作量很大,需要长时间慢慢修复。 一个简单快捷的方法就是让IE8继续IE7的显示引擎来显示你的网站,我们称这个旧的显示引擎为兼容视图(Compatibility View) 。  在网页里面加...

经验教程

661

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部