我們把一組 CSS 類別改名,範圍寫得很清楚:只改某個前綴開頭的那幾個。
改完,有三個元件的樣式不見了。它們不在改名清單上。
原因
被改掉的那個名字,剛好是另外三個名字的開頭。
批次取代只認字元,不懂意思。對它來說,.mz-card-meta 就是 .mz-card 後面多了幾個字,它不知道那是兩個不同的東西。
為什麼檢查全過
因為改出來的東西是合法的。
樣式表的語法沒有錯,解析得了、載入得了、也套用得上。只是套到了別的元素上,或是誰都沒套到。
編譯器、格式檢查、語法驗證,沒有一個會對這件事有意見。看得出來的只有眼睛,而且你得先知道要去看哪一頁。
我們現在的做法
取代時一律加邊界:類別名後面接的必須是引號、空白或大括號,不能是任意字元。
先乾跑一次。把每一個命中的地方連同前後文印出來,看過一遍,再真的寫進去。這一步大概花三十秒。
命名時也會多想一下。一個名字如果有可能變成別人的前綴,我們會在當下就換掉它。名字看起來有層級,機器不一定認得出來。



