摘要:和都是相對(duì)于內(nèi)邊距邊界的。和即為向上滾動(dòng)時(shí),元素內(nèi)容區(qū)被遮住的那一部分。同理參考中的各種寬高屬性
引子
曾經(jīng)校招面試的時(shí)候,學(xué)習(xí)了三個(gè)月前端的我去某廠面試,面試官循循善誘考察了一個(gè)開(kāi)發(fā)中的實(shí)際場(chǎng)景,其中有需要用到某元素的高度,面試官問(wèn)我clientHeight和offsetHeight的區(qū)別是什么,我當(dāng)時(shí)一臉懵逼,這個(gè)問(wèn)題對(duì)于當(dāng)時(shí)的我來(lái)說(shuō)已經(jīng)完全超綱了...面試結(jié)果自然是面試官感謝我來(lái)參加面試...
好漢不提當(dāng)年囧,今天總結(jié)一下常見(jiàn)的元素各種寬高。
沒(méi)有橫向滾動(dòng)條時(shí):clientHeight = css設(shè)置的height + paddingTop + paddingBottom
有橫向滾動(dòng)條時(shí):clientHeight = css設(shè)置的height + paddingTop + paddingBottom - 滾動(dòng)條的高度
clientWidth類似,就不再贅述
ps:這個(gè)屬性是只讀屬性,對(duì)于沒(méi)有定義CSS或者內(nèi)聯(lián)布局盒子的元素為0
offsetHeight = ccss設(shè)置的height + paddingTop + paddingBottom + borderTop + borderBottom
offsetWidth類似,就不再贅述
無(wú)滾動(dòng)條時(shí):scrollHeight = clientHeight = css設(shè)置的height + paddingTop + paddingBottom
有滾動(dòng)條時(shí):scrollHeight = 實(shí)際內(nèi)容的高度 + paddingTop + paddingBottom(即要算上因?yàn)闈L動(dòng)被遮住的內(nèi)容高度
scrollWidth不再贅述
clientTop = borderTop
clientLeft = borderLeft
以offsetTop為例,搞懂它首先要明白o(hù)ffsetParent是什么
offsetParent是元素最近的有定位的父元素,如果父元素中沒(méi)有有定位的,那么就是最近的 table, table cell 或根元素。
offsetTop 和 offsetLeft 都是相對(duì)于offsetParent內(nèi)邊距邊界的。
scrollTop即為向上滾動(dòng)時(shí),元素內(nèi)容區(qū)被遮住的那一部分。
scrollLeft同理
JavaScript 中的各種寬高屬性
MDN
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/116885.html
摘要:和都是相對(duì)于內(nèi)邊距邊界的。和即為向上滾動(dòng)時(shí),元素內(nèi)容區(qū)被遮住的那一部分。同理參考中的各種寬高屬性 引子 曾經(jīng)校招面試的時(shí)候,學(xué)習(xí)了三個(gè)月前端的我去某廠面試,面試官循循善誘考察了一個(gè)開(kāi)發(fā)中的實(shí)際場(chǎng)景,其中有需要用到某元素的高度,面試官問(wèn)我clientHeight和offsetHeight的區(qū)別是什么,我當(dāng)時(shí)一臉懵逼,這個(gè)問(wèn)題對(duì)于當(dāng)時(shí)的我來(lái)說(shuō)已經(jīng)完全超綱了...面試結(jié)果自然是面試官感謝我來(lái)...
摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開(kāi)發(fā)教程工程實(shí)踐深度閱讀開(kāi)源項(xiàng)目巔峰人生等欄目。它能夠?yàn)槲覀兲峁╊愃朴陬A(yù)處理器命名空間等多方面的輔助。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開(kāi)發(fā)教程、工程實(shí)踐、深度閱讀、開(kāi)源項(xiàng)目、巔峰人生等欄目。歡迎關(guān)注【前端之巔】微信公眾號(hào)(ID:f...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:重繪元素做了一些不影響排版的改變,比如背景色下劃線等等,只需要重新繪制的過(guò)程,叫做重繪。顯然回流帶來(lái)的代價(jià)大于重繪,因?yàn)橹乩L僅僅是重新畫(huà)一遍元素而已,但是重繪是重新計(jì)算重新畫(huà)。不然這會(huì)導(dǎo)致大量地讀寫(xiě)這個(gè)結(jié)點(diǎn)的屬性。 瀏覽器的大概工作流程 以普通的HTML頁(yè)面為例: 解析HTML文檔,生成dom樹(shù) 解析css產(chǎn)生css規(guī)則樹(shù) 解析JavaScript,通過(guò)DOM-API來(lái)操作dom樹(shù)和...
閱讀 3344·2023-04-25 19:42
閱讀 1383·2021-11-23 10:11
閱讀 2338·2021-11-16 11:51
閱讀 1632·2019-08-30 15:54
閱讀 2080·2019-08-29 18:44
閱讀 1655·2019-08-23 18:24
閱讀 521·2019-08-23 17:52
閱讀 1804·2019-08-23 15:33