用了一個很大的詞「前端調試」,事情是這樣的,這兩天一直在解決一個bug,咱們用iscroll作了一個下拉刷新的產品列表頁面,總會出現頁面渲染錯亂的問題,只要用js動態修改html或者在瀏覽器開發者工具中修改css、html就會恢復正常。css
原本想分享一下iscroll的問題,避免你們走彎路,後來索性把咱們定位問題的方法和過程也記錄了一下。html
頁面效果 前端
調試工具修改git
之前也遇到過不少相似的問題,大部分是用如下三種方法解決的github
文檔頭要告訴瀏覽器用什麼類型的語言和版原本渲染你的代碼。 大部份前端書籍都有介紹HTML的來歷,推薦書籍《web標準開發之道》。web
咱們須要瞭解HTML與XHTML的來歷與版本,HTML 元素和有效的 DTD,出現渲染異常的問題以下:後端
第一階段 HTML4/HTML4.01瀏覽器
時間 | HTML4\HTML4.01 |
---|---|
1995年 | IETF(因特網工程推進小組) 發佈HTML2.0 |
1997年1月 | W3C發佈初版HTML標準:HTML3.2 |
1997年12月 | W3C發佈:HTML4.0 |
1999年12月 | W3C發佈:HTML4.01 |
第二階段 XHTML1.0/XHTML1.01/XHTML1.2/HTML4.01 隨後,W3C將重點放在向後兼容的XHTML上, 2000年年初,W3C發佈:XHTML1.0 徹底兼容HTML4.01 緊隨其後,XHTML1.1發佈,放棄與HTML4.01兼容,移除大量樣式標籤、font、align等。jsp
第三階段 HTML2/XHTML5 2002年,W3C轉變工做激進轉變,提案HTML2,當時瀏覽器不支持、HTML4.01不兼容。 2007年,W3C內部提出HTML5,向後兼容 XHTML1.01 和 HTML4.01。 2009年放棄更新HTML2,而後就有了我們唸叨的HTML5.wordpress
不少先後端未分離的項目,常常出現後端工程師套完頁面之後出現頁面錯亂的狀況,大部分都是標籤沒有閉合或者js生成的DOM沒有閉合,不少高版本的瀏覽器能夠自動補全不規範的標籤,不影響展現,可是不少低版本的瀏覽器就沒有那麼智能了,好比IE。
這也是一個經常使用的辦法,刪除js和css,若是還復現,那確定是HTML的問題,而後再刪50%的html,依次去定位問題,直到定位到問題代碼代碼。
你懂得,有問題問度娘,疑難雜症通常在網上都有人分享或者吐槽,直接百度問題關鍵詞。
解決問題的辦法不少,簡單寫一下個人調試過程,雖然笨拙,寫出來也能夠避免你們重複個人笨拙。
確認jsp的文檔頭
以前遇到過靜態頁面是HTML5的文檔頭,開發用的是HTML4,會發現異常問題,確認jsp與靜態頁面一致後,排除文檔頭問題。
刪除多餘HTML標籤
把其餘元素所有刪除,僅留下上拉加載部分的DOM標籤,仍是存在問題,而後再對比標籤,無異常,排除標籤閉合問題。
刪除多餘CSS樣式
團隊的同事們比較認真的學習過張鑫旭大神的《CSS世界》,按照**「z-index 不犯二原則」**,頁面並無使用z-index,使用的positon定位,並有增長,刪除其餘css代碼後,仍是能夠復現,感受與positon有關係。
刪除JS代碼
註釋掉iscroll實例就行了,而後再github上找position的lssues, 找到討論關於 z-index、translate、transform的lssues連接,而後提取關鍵詞搜索。
定位到問題點
找到解決辦法
根據內容的理解,增長了transform: translateZ(100px)。
最終效果 齊活兒