網頁高度計算及瀏覽器適配的理解

2022-08-25 20:09:21 字數 1451 閱讀 8649

網頁上有  meta  name=viewport 標籤,它的寬度表示螢幕能顯示的css px 寬度,使用document.documentelement.clientwidth可以獲取  ,通常將它設定成device-width可以使1px的css能在各個手機上展示的一樣,

dev-width 部分手機可以通過 screen.width獲取。viewport的預設width 一般很大,為了能桌面端的顯示出來,一般設定為980px。

width 和 initial-scale 誰使viewport的寬度大就使用誰為viewport的寬, initial-scale 是相對於dev-width縮放。with=dev-width 和initial-scale=1 是相同的效果,initial-scale = dev-width/width

為了相容 同時寫上  width=dev-width  initial-scale=1 可以使所有的手機上1px表現出相似的物理的大小。

flexiable.js 是**的js公共庫,

其原理是給html設定乙個font-size,然後新增乙個drp屬性,通過rem來進行適配。

如果你寫了meta標籤,width=device initial-scale 則,drp一直會是1, 不寫會自動計算    

html和body的高度預設是被頁面內容撐起的。document.body.clientheight就是頁面內容的實際高度,document.documentelement.clientheight 是頁面可視區域的高度可以認為是瀏覽器的高度。

設定body背景,如果body不足乙個瀏覽器高度,body的背景也會顯示成瀏覽器的背景

乙個絕對定位的元素如果父元素無定位,則是相對於瀏覽器定位的。(以前一直以為是相對於html)

要想使乙個按鈕始終在頁面底部,不論螢幕大小,橫屏豎屏,只需將html設定為min-height:100%;position:relative; 然後這個按鈕設定為position:absolute。在在頁面底部加乙個static的元素和這個按鈕一樣的高度。

頁面的高度解析

獲取頁面滾動的高度:

document.documentelement.scrolltop + document.body.scrolltop

正常情況下寫 document.documentelement.scolltop即可,據說在chorme上某個版本上有bug

還可以使用 window.pageyoffset 來獲取,jquery上就是這麼寫的

jquery.fn.offset 其實就是 getbondingclientreact()(元素到視口的位置) 的top,left 然後加上 window.pageyoffset 展示的是元素都頁面頂部的距離

ie7上 document.documentelement.offsetleft 為2

瀏覽器高度計算不同導致的顯示問題

朋友給我發了個檔案包,讓我看看裡面的彈出遮罩層在ie下顯示是正常的,但在firefox等瀏覽器下彈出一下之後就消失了。效果如下圖,乙個遮罩的效果,在firefox裡白色的遮罩div很快又消失。第一反應是是瀏覽器相容性問題。找到div樣式裡有filter以為是這個問題,找了一下在非ie下用opacit...

JS獲取螢幕,瀏覽器,網頁高度寬度

網頁可見區域寬 document.body.clientwidth 網頁可見區域高 document.body.clientheight 網頁可見區域寬 document.body.offsetwidth 包括邊線的寬 網頁可見區域高 document.body.offsetheight 包括邊線的...

JS獲取瀏覽器的高度

ie中 document.body.clientwidth body物件寬度 document.body.clientheight body物件高度 document.documentelement.clientwidth 可見區域寬度 document.documentelement.client...