国产综合精品-久久久久久成人毛片免费看-69久久夜色精品国产69-美国十次啦怡红院

Web前端知識

首頁 > 免費 > Web前端知識 >

項目中調(diào)試CSS的方法

來源:北京匯仁智杰科技有限公司   時間:2016-11-14   點擊:

概括地說,我把調(diào)試流程分為 3 個階段:

評估并快速修復(fù)

還原和重現(xiàn)

定位根源并修復(fù)

我們挨個解釋每個階段并實踐一個例子。

評估并快速修復(fù)

如果 CSS 是你的主要工作語言,或者你對 CSS 有一定的理解和實踐經(jīng)驗的話,解決 CSS 問題就有很多簡單的方法,否則的話,方法就少一些。

有經(jīng)驗的 CSS 開發(fā)者可能都知道的一些 CSS 陷阱:

圖片周邊存在有趣的空白?設(shè)置 display: block(圖片默認(rèn)是內(nèi)聯(lián)的,因此會有空白)。

元素排列不正確?你可能有浮動的元素。

絕對定位元素不顯示、位置錯誤或者被遮擋?你可能沒有設(shè)置父元素的 position 屬性或者用 transform 及 opacity 創(chuàng)建一個 z-index 上下文。

偽元素不顯示?你可能忘記了設(shè)置 ‘content’的值。

這樣的 “bug” 有一大堆。實際上根本沒有 bug,更多的是開發(fā)者缺少對瀏覽器行為的理解。更準(zhǔn)確地說,是 CSS 代碼讓瀏覽器怎么做。

對這些 CSS 特性熟悉的開發(fā)者能夠快速定位到問題并且修復(fù)。他們對 bug 的認(rèn)識與那些對 CSS 不了解的人會產(chǎn)生分歧。這樣在解決 CSS bug 中對‘工作流’需求的重要性的認(rèn)識就會因人而異。

對于‘快速修復(fù)’中沒有覆蓋的陌生問題,在開發(fā)者工具中靠猜來解決問題的方式已經(jīng)沒什么價值。即使運氣好問題被解決了,也很難判斷出問題到底是怎樣被解決的。

如果出現(xiàn)的問題不能被輕易解決,先確定問題區(qū)域的范圍,抓取 HTML 標(biāo)簽(也就是拷貝 DOM),進(jìn)入下一個調(diào)試階段:還原和重現(xiàn)。

專業(yè)提示:大多數(shù)瀏覽器的開發(fā)者工具會讓你選擇包裹元素并拷貝 HTML 區(qū)塊。在 Chrome 的開發(fā)者工具中,要連同包裹元素一起拷貝,需要點擊 ‘Copy > Copy OuterHTML’。

還原和重現(xiàn)

本階段的 CSS bug 修復(fù)在類似 Codepen 的幫助下異常簡單。我們目的主要是復(fù)現(xiàn)出此問題 – 也就是引起 bug 的代碼。這能讓我們快速定位 bug,直搗黃龍。

為清晰起見,只把相關(guān)的 HTML 和 CSS 提取出來復(fù)現(xiàn)問題。你既可以手打 HTML 對應(yīng)的 CSS,也可以復(fù)制真實的代碼。如果可能的話,不用把所有 CSS 代碼一股腦拷貝過去重現(xiàn)問題,保證最精簡的要素即可。保持逐步增加 CSS 的習(xí)慣,問題就會自己找到你。

在快要接近真相時,往往只需要一個特殊的 CSS 屬性的改變就能讓 bug 暴露出來。

相對應(yīng)的做法是,把所有 CSS 都扔進(jìn)入復(fù)現(xiàn)問題,然后每次移除一點,直到問題出現(xiàn)。在實踐中,我發(fā)現(xiàn)這略笨,不用也因人而異,你可能有不同的見解。

逐步地增加或刪除 CSS 代碼已經(jīng)是重現(xiàn)問題和定位故障的固定套路了。

那么 HTML 標(biāo)簽?zāi)兀?br/>

假設(shè)使用最少 CSS 代碼復(fù)現(xiàn)問題時,效果有如原始代碼一樣。這也是有用的,我們現(xiàn)在看 HTML 標(biāo)簽。

第一件事要做的,也是不能跳過的,就是檢查標(biāo)簽的有效性。即使報告出我們不關(guān)心的問題(比如 meta),至少能保證它不會以某種方式破壞美感。我們希望能發(fā)現(xiàn)未閉合的標(biāo)簽、沒有引號的屬性,以及其它任何可能影響瀏覽器解析的問題。建議你使用 W3C validator。

一旦標(biāo)簽檢查通過,將有助于消除瀏覽器引入意外樣式的可能性。這樣做:

首先,把所有元素改成 div(塊級元素)和 span(行內(nèi)元素),保證它們只被 CSS 的類選擇器選中。也許有必要把額外的選擇器移除,如把 a.link 改為 .link。

通過使用固定的標(biāo)簽我們消除了瀏覽器針對特定元素引入默認(rèn)樣式的可能性。表單元素是個特例(馬上會在例子中見到)。

如果把所有元素改成 div 和 span,問題消失了,那么瀏覽器引入默認(rèn)樣式的嫌疑就被確定了?,F(xiàn)在在 computed styles 面板中尋找瀏覽器增加了什么樣式,想辦法覆蓋它。總之就是要看計算后的樣式。

網(wǎng)絡(luò)營銷推廣 . 北京匯仁智杰科技有限公司!

地址:北京市昌平區(qū)回龍觀龍冠大廈5層
咨詢:15201492965
業(yè)務(wù)QQ:373002979
E - mail:sales @ huirenzhijie.com
企業(yè)網(wǎng)站備案:京ICP備15021091號-1

匯仁智杰與眾不同

  • 有網(wǎng)絡(luò)推廣經(jīng)驗
  • 有網(wǎng)站建站隊伍
  • 有大型網(wǎng)站建設(shè)經(jīng)驗
  • 致力于營銷型網(wǎng)站建設(shè)
  • 始終堅持技術(shù)和服務(wù)同樣重要
查看PC版網(wǎng)站
備案號:京ICP備15021091號-1 版權(quán)所有:匯仁智杰