职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 459|回复: 9

火狐也有不标准的时候

[复制链接]
爱车车 发表于 2011-6-12 10:09 | 显示全部楼层 |阅读模式
按照W3C写了这么一段代码
Html代码
  1. <div style="overflow:scroll; width:50px; padding-right:20px;">  
  2.     <input type="button" style="width:80px;"/>  
  3. </div>  

  4. <div style="overflow:scroll; width:50px; padding-right:20px;">
  5.         <input type="button" style="width:80px;"/>
  6. </div>
复制代码
所有浏览器的显示效果都一样,唯独FF的padding-right不见了,如果知道解决方法的朋友,望告知,感谢。
其实FF的padding不是不见了,只不过没有给BUTTON留padding。
我正在找原因,希望大家能一起解决。



楠楠 发表于 2011-6-12 10:10 | 显示全部楼层
是挺费解,期待有人能回复。
似乎跟UA解释block,inline元素有关。

紫衿 发表于 2011-6-12 10:10 | 显示全部楼层
你的div才50px,button80px,Firefox就没有padding了,你设置宽点就有了。

木已 发表于 2011-6-12 10:10 | 显示全部楼层

那要overflow有啥用。。。。

fossil 发表于 2011-6-12 10:10 | 显示全部楼层
具体原因不知。但各种浏览器之间对scroll bar 的效果显示确实有差距。解决方案有一个:
<div style="overflow:scroll; width:50px; padding-right:20px;">
<div style="width:80px;"><input type="button" style="width:100%;" /></div>
</div>
这样子可以试一下。

猜测原因大约是div内元素80px > (50+20)px引起的。导致内部元素“撑开”外面的div。而因为有了overflow: scroll属性,使得内部元素显示完整,没有被“截断”。至于这个bug,我认为也不只是firefox不合群的问题。inline样式的标签一般是不能支持width属性的。可能input是比较特殊的标签。在原来代码基础上如果把input设置成block形式的。在chrome下,右侧的内边距也会不见的。我只是个人认为,这应该是比较正常的解释方式。也不算是ff的“不合群”吧……
一切均为个人猜测。。期待高手的正确解释。

木已 发表于 2011-6-12 10:11 | 显示全部楼层
把它设成button的margin而不是div的padding

北大青鸟 发表于 2011-6-12 10:11 | 显示全部楼层
不要以偏盖全,一点不足以说明问题,ie 不合群也绝不是空穴来风!

走失的猫咪 发表于 2011-6-12 10:11 | 显示全部楼层

在遵守W3C的标准前提下,实例代码确实是W3C标准的,为何FF和其他浏览器效果不一样?
我只是伪标题来反感一下FF而已,说的有点大了。抱歉

郁闷小男人 发表于 2011-6-12 10:11 | 显示全部楼层
有趣的测试,让我们了解了在一些极端情况下,号称标准的也不能尽信

hxy 发表于 2011-6-12 10:11 | 显示全部楼层
喜欢啥用啥

客户用啥,用啥给人测试呗


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-3 11:54 , Processed in 0.151029 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表