Browsers 板


LINE

※ 引述《tyf99 (呵呵)》之铭言: : Firefox, Opera 抓到的 scrollHeight 都是错的! : 这和 body margin, padding 什麽的都完全无关.. : test1.html 内容很简单,只有一个 <div> 和两个 <hr> : <div> 高度设定 100px,很固定不会变. : <hr> redner 出来的线条高度是 2px,<hr> 本身 margin-top=margin-bottom=0.5em : 所以在 {font-size:16px; line-height:16px;} 设定下,<hr> 实际占用高度 18px 看起来 hr 占的高度是 18px 没错,但不要忘了, hr 的上面没有其他物件,所以 hr 的 margin-top 必须与 body 的 margin-top 重叠, 而两者的 margin-top 都是 8px,只画一次 8px。 而 hr 和 div 之间的距离,就是 margin-bottom = 8px。 所以根据我对 css 以及 dom 的了解,在你这个例子里: body (body 的 margin-top) 8px hr------------------------------ 2px <-- (hr div 间 margin) 8px | -------------------------------- | | | | | | | body 的实际 height | div | 100px | 也就是 | | | scrollHeight | | | -------------------------------- | (hr div 间 margin) 8px | hr------------------------------ 2px <-- (body 的 margin-bottom) 8px 根据这样来算,body.scrollHeight = 120px 因为 scrollHeight 不计入 margin。 : 结果抓出来的 scrollHeight: : Firefox 120px 只有 Firefox render 出来的结果是符合这个算法的。 当然 html 并没有规定 hr 的高度设定以及 margin 该是多少, 所以不同的浏览器可以有自己的解读,这可能是造成 Opera 与 Safari 不同的原因。 但不论如何,scrollHeight 不能算 margin, 我觉得 Safari 把 margin 给算进去了,才会得到 136px。 : Opera 124px : WebKit 136px : 用肉眼看也只有 WebKit 的最正确,Firefox, Opera 都是错的.. : 顺带一提,IE 抓到的是 132px,可能是没有把 <hr> 本身的线条高度算进去. : 但 Firefox, Opera 这两个怎麽看都不正常. 根据上述, 把 iframe 的 height 设成 body 的 scrollHeight 时, 不能计入 body 的上下 margin, 但是当内框页面载入时,会从页面的顶部开始显示, 也就是必须要画内框页面的 margin-top, 於是 iframe 的高度就不够显示底下的 hr。 在这点上只有 Firefox 和 Opera 是对的, Safari 看得到两条 hr 以及中间的 div,也看得到页面的上下 margin, 显然是错的。 (也就是我前面说的,算入了 body 的上下 margin 的结果。) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.74.131 ※ 编辑: Hemiola 来自: 123.193.74.131 (07/22 18:20)
1F:推 WandererM:常遇到的人都知道基本上Webkit出错的地方很多就是XD 07/22 18:30
2F:推 art1:好深入的讨论 07/22 18:50
3F:→ tyf99:其实我上一篇测的时候已经把 body margin 设为 0 了... 07/22 20:55
4F:→ tyf99:http://tyf.nckualumni.org.tw/~tyf/browser_bug/ 自己玩玩 07/22 20:56
5F:→ tyf99:fx 3.0.12: 120px, fx 3.0.11: 119px,跑个奇数出来是怎样XD 07/22 20:57
6F:→ tyf99:scrollHeight 好麻烦喔,我还是改用 clientHeight 算了.. 07/22 21:11
7F:→ tyf99:至少各浏览器解读 clientHeight 比较一致 07/22 21:13







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP