我們把一組樣式類別改名,範圍寫得很清楚:只改某個前綴開頭的那些。
改完之後有三個元件的樣式不見了。它們的名字不在改名清單上。
原因
被改的那個名字,是另外三個名字的前段。
批次取代看到的是字元,不是語意。它不知道 .mz-card 和 .mz-card-meta 是兩個東西 —— 對它來說後面那個只是前面那個再加幾個字。
為什麼所有檢查都是綠的
因為結果是合法的。
改完的樣式表語法正確,能解析、能載入、能套用。它只是套到別的東西上,或者誰都沒套到。
沒有任何一支編譯器、格式檢查、語法驗證會對這件事有意見。唯一看得出來的是眼睛,而且要先知道要去看哪一頁。
兩條做法
① 取代一律加邊界。 類別名後面必須接的是引號、空白或大括號,而不是任意字元。
② 先乾跑。 把每一處命中的上下文印出來看過,再真的寫進去。這一步的成本是三十秒,省下的是一次找不到原因的視覺缺陷。
命名本身的一課
把名字當成命名空間來設計,這類碰撞就不會發生。
⭐ 工具類的名字要嘛完全獨立,要嘛有一個不會被當成前綴的結尾。「看起來有層級」跟「機器認得出層級」是兩回事。



