許多開(kāi)發(fā)者使用 CSS 預(yù)處理器來(lái)產(chǎn)生 CSS 樣式表,比如 Sass, Less 或者 Stylus。因?yàn)?CSS 文件是生成的,直接修改 CSS 文件是沒(méi)有用的。
對(duì)于支持 CSS 源映射(source maps)的預(yù)處理器, DevTools 允許你在源面板中實(shí)時(shí)編輯預(yù)處理器的源文件,并且不需要離開(kāi) DevTools 或者刷新頁(yè)面就能查看結(jié)果。當(dāng)你審查生成的 CSS 文件提供的樣式元素時(shí),元素面板會(huì)顯示一個(gè)鏈接到源文件的鏈接,而不是生成的 .css
文件。
如果要跳轉(zhuǎn)到源文件:
Control
+ 鼠標(biāo)左鍵(或者在Mac上用 Command
+ 鼠標(biāo)左鍵)點(diǎn)擊 CSS 屬性名或者屬性值可以打開(kāi)源文件并且跳轉(zhuǎn)到相應(yīng)的行。當(dāng)你通過(guò) DevTools 來(lái)保存對(duì) CSS 預(yù)處理器做出的更改時(shí),CSS 預(yù)處理器會(huì)重新生成 CSS 文件。然后 DevTools 會(huì)重新加載新生成的 CSS 文件。
在外部編輯器中做出的修改不會(huì)被 DevTools 偵測(cè)到,除非 Source 選項(xiàng)卡包含的相關(guān)源文件重新獲得了焦點(diǎn)。而且,手動(dòng)編輯由 Sass/LESS/ 其他編譯器 產(chǎn)生的 CSS 文件將會(huì)中斷源映射的關(guān)聯(lián),直到重新加載頁(yè)面為止。
如果你正在使用 Workspaces(工作空間),你需要確認(rèn)產(chǎn)生的文件是否映射到了 Workspace 中。你可以在源面板右側(cè)的樹(shù)中來(lái)查看并驗(yàn)證源自本地的 CSS。
使用 CSS 預(yù)處理器的時(shí)候有一些要求需要滿(mǎn)足:
Python SimpleHTTPServer
模塊默認(rèn)會(huì)提供這個(gè)文件頭。你可以像這樣啟動(dòng)一個(gè) web 服務(wù)來(lái)服務(wù)當(dāng)前目錄:python -m SimpleHTTPServer
默認(rèn)情況下,CSS 源映射是啟用的。你可以選擇是否要啟用自動(dòng)重新加載生成的 CSS 文件模式。
如果想要啟用 CSS 源映射,重載 CSS 文件,請(qǐng)參照以下步驟:
要在 Chrome 中實(shí)時(shí)編輯 Sass 文件,你需要3.3以上的 Sass,因?yàn)橹挥羞@樣才支持源映射。
gem install sass
當(dāng) Sass 安裝好以后,開(kāi)啟 Sass 編譯器來(lái)監(jiān)測(cè)你的 Sass 源文件的改變并為每個(gè)產(chǎn)生的 CSS 文件創(chuàng)建源映射文件,例如:
sass --watch --sourcemap sass/styles.scss:styles.css
DevTools 支持 Source Map Revision 3 proposal。該協(xié)議在幾個(gè) CSS 預(yù)編譯器中實(shí)施(2014年8月更新):
對(duì)于每個(gè)生成的 CSS 文件,預(yù)處理器另外為編譯的 CSS 生成一個(gè)源映射文件(.map)。源映射是一個(gè) JSON 格式的文件,它定義了每個(gè)生成的 CSS 聲明和在原文件中相應(yīng)行的映射。每個(gè) CSS 文件的最后一行都會(huì)含有一個(gè)說(shuō)明其源文件路徑的特別注釋。
/*# sourceMappingURL=<url> */
例如,給定一個(gè)名為 styles.css 的 CSS 文件:
$textSize: 26px;
$fontColor: red;
$bgColor: whitesmoke;
h2 {
font-size: $textSize;
color: $fontColor;
background: $bgColor;
}
Sass 會(huì)生成一個(gè) styles.css 文件并且在后面添加源文件路徑映射的注釋?zhuān)?/p>
h2 {
font-size: 26px;
color: red;
background-color: whitesmoke;
}
/*# sourceMappingURL=styles.css.map */
下面是關(guān)于源映射文件的例子:
{
"version": "3",
"mappings":"AAKA,EAAG;EACC,SAAS,EANF,IAAI;EAOX,KAAK"
"sources": ["sass/styles.scss"],
"file": "styles.css"
}
很多開(kāi)發(fā)者會(huì)在使用 CSS 預(yù)處理器的過(guò)程中形成自己的工作流。有關(guān)教程和備用工作流的內(nèi)容請(qǐng)參照下面的文章:
注意:外部資源可能不是有關(guān)最新版 Chrome 的資料。
以上內(nèi)容適用于 CC-By 3.0 license
更多建議: