微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: IE浏览器的一个BUG:页边距设置
俺红
新手上路





积分 21
发帖 17
注册 2008-12-10
#1  IE浏览器的一个BUG:页边距设置

今天打印网页,需要设置页面边距,却发现有些值设置不了,如26、27等。
如果设置,则会自动变成另一个值。
26 --> 31.4
27 --> 41.4

莫名其妙,以为中毒了。于是在上网搜索,看看有没有人出现这样的情况。没找到,倒是找到了页边距对应的注册表项。
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup]

进去瞅了瞅,发现有以下关系:
设定值      注册表项值
26            1.2362
31.4         1.23622
27            1.6299
41.4         1.62992

我知道,这是公制和英制的区别,根据常识 1英寸=25.4毫米
换算得出,正确的关系应该是:
设定值      注册表项值
26            1.02362
31.4         1.23622
27            1.06299
41.4         1.62992

MD,原来是IE的一个BUG:在设定后,系统将公制的值转换成英制的数值,并设将转换后值保存到注册表中,但是保存时出问题了,微软工程师将小数点后面高位的零都去掉了,从而使 1.02362 --> 1.2362。

如果将公制更改成英制,就很容易找到问题所在了。比如更改成英制后,设定值为 1.02,回头一瞅,神奇般地变成了 1.2。

根据这个分析,还找出了另外一些存在问题的数值(按公制的毫米来说):
51、52、53、77、78、102、103、104 等

解决办法:
很简单,打开注册表编辑器,找到上面所说的那个注册表项,然后手动更改为正确的值即可。比如,要将上边距设定为27毫米,那么就将 margin_top 的值更改为 1.02362 即可。
当然,要之前要做个简单的数学换算。不过如果懒,那也没关系,懒人方法是先将手动在IE的页面设置界面设定想要的值,然后再到注册表下相应地在小数点后添“0”,至于是添一个两个三个,就要视原值的小数点后有几个数而定。只要添上N个“0”后,使得小数点后的位数为 5 就完事。

注:
公制 <--> 英制 (实际显示的是“美国”) 的选定:
开始 -> 控制面板 -> 区域和语言选项 -> 自定义 -> 度量衡系统

另外,IE7问题依旧,怀疑不是IE本身的问题。

※ ※ ※ 本文纯属【俺红】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-12-17 13:04
查看资料  发送邮件  发短消息   编辑帖子
freedom11
版主

电脑&数码区版主


积分 1212
发帖 1139
注册 2007-11-6
#2  

不错,加分鼓励一下

※ ※ ※ 本文纯属【freedom11】个人意见,与【 微点交流论坛 】立场无关※ ※ ※


2008-12-17 14:26
查看资料  发短消息   编辑帖子
liym_888
高级用户




积分 883
发帖 855
注册 2008-12-7
来自 甘肃兰州
#3  

试试看看!!!

※ ※ ※ 本文纯属【liym_888】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-12-17 19:27
查看资料  发短消息   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号