這是專案中一段**,然後看了半天,發現自己的基礎是如此的薄弱,只能看懂個大概意思。
var html = document.queryselector("html");
var clientwidth = html.getboundingclientrect().width
;html.style
.fontsize = clientwidth/18 + "px"
;
然後我就又搜了var doc = document.documentelement..
body是dom物件裡的body子節點,即body標籤,documentelement 是整個節點樹的根節點root.
body是dom物件裡的body子節點,即 標籤;
documentelement 是整個節點樹的根節點root,即標籤;
接著我又搜了
getboundingclientrect()
getboundingclientrect用於獲取某個元素相對於視窗的位置集合。集合中有top, right, bottom, left等屬性。
1.語法:這個方法沒有引數。
rectobject = object.getboundingclientrect();2.返回值型別:textrectangle物件,每個矩形具有四個整數性質( 上, 右 , 下,和左 )表示的座標的矩形,以畫素為單位。
rectobject.top:元素上邊到視窗上邊的距離;
rectobject.right:元素右邊到視窗左邊的距離;
rectobject.bottom:元素下邊到視窗上邊的距離;
rectobject.left:元素左邊到視窗左邊的距離;
示圖:
3. 相容性:我用ie11的document mode模式測試,ie5以上都能支援。
pc端:
mobile端:
4.width和height:ie9以上支援width/height屬性。
相容ie6~ie8的width/height的寫法:
var rectwidth = rectobject.right -rectobject.left;5.在ie7及ie7以下left和top會多出兩個畫素。rectheight = rectobject.bottom - rectobject.top;
ie7下測試:
chrome下測試:
ie7下:
在ie7及ie7以下的html元素座標會從(2, 2)開始算起,在ie8已經修復了這個bug。這就是多出兩個畫素的原因。下面我們做下相容:
var rectleft = rectobject.left - document.documentelement.clientleft || 2;rectright = rectobject.right - document.documentelement.clientleft || 2;
rectbottom = rectobject.bottom - document.documentelement.clienttop || 2;
recttop = rectobject.top - document.documentelement.clienttop || 2;
專案總結(1)
先手拿到專案,作為寫專案的人得明白,這個專案如何去布局,你只有清楚知道如何布局才能知道專案的整體流程是怎麼樣子的。如果能清楚如何去進行布局,那麼我覺得這個專案,從某種意義上來說已經完成了一半。個人認為,懂得乙個專案該如何去布局應該算的上是乙個比較重要的點。乙個專案有很多種的布局辦法,但是考驗乙個前端...
專案重構總結 1
到今天為止,webgate 專案重構 初步完成。還需要實現的功能有 1 修改,重置密碼功能。2 修改 page 功能。3 外部專案引入的jar 包。4 首頁 優化。重構一共經歷了 7 個周。第一周,看基本的 登入功能 實現思路。第二週,看兩個專案的配置,並開始配置。第三週,基本配置實現 核心資料表 ...
EnumPortal專案總結1
記得當時還是在做王磊的820時,李波就找過我和王興軍解決一些enumportal線網的一些小問題,當時幸有王興軍支援,那些小問題很容易就解決了 還是enumportal,在做楊生飛的830時又有一些小問題要解決,當時王興軍已經不在這邊了,所以,經常是疲於兼顧830和enumportal。8月底9月初...