頁面位置 top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHe
發(fā)布時間:2009-11-23 00:31:49 作者:佚名
我要評論
top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight 等應(yīng)用,大家可以參考下。
1.top
此屬性僅僅在對象的定位(position)屬性被設(shè)置時可用。否則,此屬性設(shè)置會被忽略。
<div style="background-color:red; position:absolute; width:100px; height:100px;">
<p style="background-color:silver; position:absolute; top:-5px;">測試top</p>
</div>
上面是一個段落P包含在一個DIV內(nèi),可以看到P的top設(shè)置為-5px后,它的上邊距超過了容器DIV的上邊距,超過的這段距離就是設(shè)置的5px。
需要注意的是,DIV和P這一對包含元素,都需要設(shè)置position為absolute才能得到想要的結(jié)果,假如父元素不設(shè)置,則子元素的參照將是更上層定義過position的元素,直到整個文檔;
2.posTop
posTop的數(shù)值其實和top是一樣的,但區(qū)別在于,top固定了元素單位為px,而posTop只是一個數(shù)值,一般使用posTop來進行運算。
3.scrollTop
<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red;" mce_style="background-color:red;">
這里是文本
</p>
</div>
<script type="text/javascript"><!--
container.scrollTop = 12;
// --></script>
這一段文本在這個100*100的DIV內(nèi)無法完全顯示,所以設(shè)置了overflow為auto,它會出現(xiàn)一個上下方向的滑動框,假如沒有設(shè)置 id.scrollTop屬性的話,默認情況下滑塊位置在頂端。而設(shè)置了scrollTop值為12后,滑塊的位置改變了,默認顯示是卷過了12個象素的文本。如果設(shè)置overflow為hidden,則將會無法顯示頂部12個象素的文本。
注意設(shè)置方式是id.scrollTop,而不是id.style.scrollTop。
4.offsetTop
如果元素 A 是 HTML 的 body 元素,其 display 屬性計算值是 none,或者不具有 CSS 布局盒子,則返回 0,并停止本算法。
如果元素 A 的 offsetParent 是 null 或者是 HTML 的 body 元素,以 CSS 像素為單位返回元素 A 上邊框距畫布原點的垂直距離,并停止本算法。
以 CSS 像素為單位返回元素 A 上邊框距其 offsetParent 上邊框的距離。
5. scrollHeight 與 offsetHeight與clientHeight
對于document.body
clientHeight
大家對 clientHeight 都沒有什么異議,都認為是內(nèi)容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內(nèi)容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內(nèi)容無關(guān)。
offsetHeight
IE、Opera 認為 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認為 offsetHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
scrollHeight
IE、Opera 認為 scrollHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
NS、FF 認為 scrollHeight 是網(wǎng)頁內(nèi)容高度,不過最小值是 clientHeight
對某個HTML控件
offsetHeight是自身元素的高度,scrollHeight是 自身元素的高度+隱藏元素的高度。
<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red; height:250px; ">
別再做情人 做只貓 做只狗 不做情人 做只寵物至少可愛迷人 和你相交不淺無謂明日會被你憎</p>
</div>
<script type="text/javascript"><!--
alert(container.offsetHeight);
alert(container.scrollHeight);
// --></script>
將依次輸出100,250。因為已經(jīng)指定了元素的height為100px,所以offsetHeight始終為100px;內(nèi)部元素為250px,而容器元素只有100px,那么還有150px的內(nèi)容它無法顯示出來,但它卻是實際存在的,所以scrollHeight值為100+150=250。
此屬性僅僅在對象的定位(position)屬性被設(shè)置時可用。否則,此屬性設(shè)置會被忽略。
復(fù)制代碼
代碼如下:<div style="background-color:red; position:absolute; width:100px; height:100px;">
<p style="background-color:silver; position:absolute; top:-5px;">測試top</p>
</div>
上面是一個段落P包含在一個DIV內(nèi),可以看到P的top設(shè)置為-5px后,它的上邊距超過了容器DIV的上邊距,超過的這段距離就是設(shè)置的5px。
需要注意的是,DIV和P這一對包含元素,都需要設(shè)置position為absolute才能得到想要的結(jié)果,假如父元素不設(shè)置,則子元素的參照將是更上層定義過position的元素,直到整個文檔;
2.posTop
posTop的數(shù)值其實和top是一樣的,但區(qū)別在于,top固定了元素單位為px,而posTop只是一個數(shù)值,一般使用posTop來進行運算。
3.scrollTop
復(fù)制代碼
代碼如下:<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red;" mce_style="background-color:red;">
這里是文本
</p>
</div>
<script type="text/javascript"><!--
container.scrollTop = 12;
// --></script>
這一段文本在這個100*100的DIV內(nèi)無法完全顯示,所以設(shè)置了overflow為auto,它會出現(xiàn)一個上下方向的滑動框,假如沒有設(shè)置 id.scrollTop屬性的話,默認情況下滑塊位置在頂端。而設(shè)置了scrollTop值為12后,滑塊的位置改變了,默認顯示是卷過了12個象素的文本。如果設(shè)置overflow為hidden,則將會無法顯示頂部12個象素的文本。
注意設(shè)置方式是id.scrollTop,而不是id.style.scrollTop。
4.offsetTop
如果元素 A 是 HTML 的 body 元素,其 display 屬性計算值是 none,或者不具有 CSS 布局盒子,則返回 0,并停止本算法。
如果元素 A 的 offsetParent 是 null 或者是 HTML 的 body 元素,以 CSS 像素為單位返回元素 A 上邊框距畫布原點的垂直距離,并停止本算法。
以 CSS 像素為單位返回元素 A 上邊框距其 offsetParent 上邊框的距離。
5. scrollHeight 與 offsetHeight與clientHeight
對于document.body
clientHeight
大家對 clientHeight 都沒有什么異議,都認為是內(nèi)容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內(nèi)容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內(nèi)容無關(guān)。
offsetHeight
IE、Opera 認為 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認為 offsetHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
scrollHeight
IE、Opera 認為 scrollHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
NS、FF 認為 scrollHeight 是網(wǎng)頁內(nèi)容高度,不過最小值是 clientHeight
對某個HTML控件
offsetHeight是自身元素的高度,scrollHeight是 自身元素的高度+隱藏元素的高度。
復(fù)制代碼
代碼如下:<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red; height:250px; ">
別再做情人 做只貓 做只狗 不做情人 做只寵物至少可愛迷人 和你相交不淺無謂明日會被你憎</p>
</div>
<script type="text/javascript"><!--
alert(container.offsetHeight);
alert(container.scrollHeight);
// --></script>
將依次輸出100,250。因為已經(jīng)指定了元素的height為100px,所以offsetHeight始終為100px;內(nèi)部元素為250px,而容器元素只有100px,那么還有150px的內(nèi)容它無法顯示出來,但它卻是實際存在的,所以scrollHeight值為100+150=250。
相關(guān)文章

CSS3打造的現(xiàn)代交互式登錄界面詳細實現(xiàn)過程
本文介紹CSS3和jQuery在登錄界面設(shè)計中的應(yīng)用,涵蓋動畫、選擇器、自定義字體及盒模型技術(shù),提升界面美觀與交互性,同時優(yōu)化性能和可訪問性,感興趣的朋友跟隨小編一起看看吧2025-06-20CSS普通流、浮動與定位網(wǎng)頁布局三大機制及最佳實踐
本文給大家講解CSS 的三種核心布局機制——普通流(Normal Flow)、浮動(Float)和定位(Positioning)對于創(chuàng)建靈活、響應(yīng)式的網(wǎng)頁至關(guān)重要,本文將深入探討這三種機制的工作原2025-06-19
css實現(xiàn)角標效果并帶有文章或圖標效果(完整代碼)
文章介紹如何用CSS實現(xiàn)角標效果,通過.active類結(jié)合::after和::before偽元素,利用定位、邊框和旋轉(zhuǎn)創(chuàng)建紅色邊框與白色三角形的提示標志,適用于按鈕或卡片元素的視覺增強設(shè)計2025-06-19CSS Anchor Positioning重新定義錨點定位的時代來臨(最新推薦)
CSS Anchor Positioning是一項仍在草案中的新特性,由 Chrome 125 開始提供原生支持需啟用實驗 flag,它允許你在 CSS 中通過錨點(anchor)來相對于任意 DOM 元素定位,本文2025-06-17CSS中的Static、Relative、Absolute、Fixed、Sticky的應(yīng)用與詳細對比
CSS 中的 position 屬性用于控制元素的定位方式,不同的定位方式會影響元素在頁面中的布局和層疊關(guān)系,以下是 static、relative、absolute、fixed、sticky 的詳細對比和應(yīng)用2025-06-17CSS place-items: center解析與用法詳解
place-items: center; 是一個強大的 CSS 簡寫屬性,用于同時控制 網(wǎng)格(Grid) 和 彈性盒(Flexbox) 布局中的對齊方式,本文給大家介紹CSS place-items: center; 詳解與用法2025-06-17
在日常開發(fā)中,我們經(jīng)常需要讓某個元素占據(jù)容器的剩余空間,本文將介紹5種不同的方法來實現(xiàn)這個需求,并分析各種方法的優(yōu)缺點,感興趣的朋友一起看看吧2025-06-17CSS中前端單位 px、vw、vh 等的區(qū)別與使用建議
CSS單位區(qū)別與使用場景總結(jié):px絕對、vw/vh響應(yīng)式,%繼承父尺寸,em/rem文字縮放,vmin/vmax適應(yīng)寬高變化,固定布局用px或%,響應(yīng)式布局用vw/vh/rem,文字用em或rem,本文給大家2025-06-16CSS 樣式表的四種應(yīng)用方式及css注釋的應(yīng)用小結(jié)
這篇文章主要介紹了CSS 樣式表的四種應(yīng)用方式及css注釋的應(yīng)用小結(jié),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2025-05-21- 在CSS布局中,padding屬性是控制元素內(nèi)容與其邊框之間距離的關(guān)鍵工具,本文介紹CSS基礎(chǔ)中padding,通過本文的介紹,我們深入了解了padding的基本概念、簡寫方法以及它對元2025-05-16




