頁面位置 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來進(jìn)行運算。
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屬性的話,默認(rèn)情況下滑塊位置在頂端。而設(shè)置了scrollTop值為12后,滑塊的位置改變了,默認(rèn)顯示是卷過了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 都沒有什么異議,都認(rèn)為是內(nèi)容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內(nèi)容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內(nèi)容無關(guān)。
offsetHeight
IE、Opera 認(rèn)為 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認(rèn)為 offsetHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
scrollHeight
IE、Opera 認(rèn)為 scrollHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
NS、FF 認(rèn)為 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來進(jìn)行運算。
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屬性的話,默認(rèn)情況下滑塊位置在頂端。而設(shè)置了scrollTop值為12后,滑塊的位置改變了,默認(rèn)顯示是卷過了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 都沒有什么異議,都認(rèn)為是內(nèi)容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內(nèi)容的這個區(qū)域的高度,一般是最后一個工具條以下到狀態(tài)欄以上的這個區(qū)域,與頁面內(nèi)容無關(guān)。
offsetHeight
IE、Opera 認(rèn)為 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認(rèn)為 offsetHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
scrollHeight
IE、Opera 認(rèn)為 scrollHeight 是網(wǎng)頁內(nèi)容實際高度,可以小于 clientHeight。
NS、FF 認(rèn)為 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)文章
- CSS Grid 是一種二維布局系統(tǒng),可以同時控制行和列,相比 Flex(一維布局),更適合用在整體頁面布局或復(fù)雜模塊結(jié)構(gòu)中,這篇文章主要介紹了前端CSS Grid 布局詳解,需要的朋2025-04-16
CSS Padding 和 Margin 區(qū)別全解析
CSS 中的 padding 和 margin 是兩個非?;A(chǔ)且重要的屬性,它們用于控制元素周圍的空白區(qū)域,本文將詳細(xì)介紹 padding 和 margin 的概念、區(qū)別以及如何在實際項目中使用它們2025-04-07- will-change 是一個 CSS 屬性,用于告訴瀏覽器某個元素在未來可能會發(fā)生哪些變化,本文給大家介紹CSS will-change 屬性詳解,感興趣的朋友一起看看吧2025-04-07
- 本文給大家分享在 CSS 中,去除a標(biāo)簽(超鏈接)的下劃線的幾種方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-07
- 在前端開發(fā)中,CSS(層疊樣式表)不僅是用來控制網(wǎng)頁的外觀和布局,更是實現(xiàn)復(fù)雜交互和動態(tài)效果的關(guān)鍵技術(shù)之一,隨著前端技術(shù)的不斷發(fā)展,CSS的用法也日益豐富和高級,本文將2025-04-07
css中的 vertical-align與line-height作用詳解
文章詳細(xì)介紹了CSS中的`vertical-align`和`line-height`屬性,包括它們的作用、適用元素、屬性值、常見使用場景、常見問題及解決方案,感興趣的朋友跟隨小編一起看看吧2025-03-26淺析CSS 中z - index屬性的作用及在什么情況下會失效
z-index屬性用于控制元素的堆疊順序,值越大,元素越顯示在上層,它需要元素具有定位屬性(如relative、absolute、fixed或sticky),本文給大家介紹CSS 中z - index屬性的作用2025-03-21- 文章詳細(xì)介紹了CSS中的打印媒體查詢@mediaprint包括基本語法、常見使用場景和代碼示例,如隱藏非必要元素、調(diào)整字體和顏色、處理鏈接的URL顯示、分頁控制、調(diào)整邊距和背景等2025-03-18
CSS模擬 html 的 title 屬性(鼠標(biāo)懸浮顯示提示文字效果)
本文介紹了如何使用CSS模擬HTML的title屬性,通過鼠標(biāo)懸浮顯示提示文字效果,通過設(shè)置`.tipBox`和`.tipBox.tipContent`的樣式,實現(xiàn)了提示內(nèi)容的隱藏和顯示,感興趣的朋友一起2025-03-10前端 CSS 動態(tài)設(shè)置樣式::class、:style 等技巧(推薦)
本文介紹了Vue.js中動態(tài)綁定類名和內(nèi)聯(lián)樣式的兩種方法:對象語法和數(shù)組語法,通過對象語法,可以根據(jù)條件動態(tài)切換類名或樣式;通過數(shù)組語法,可以同時綁定多個類名或樣式,此外2025-02-26