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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP