我們把一組樣式類別改名,範圍寫得很清楚:只改某個前綴開頭的那些。

改完之後有三個元件的樣式不見了。它們的名字不在改名清單上。

原因

被改的那個名字,是另外三個名字的前段。

批次取代看到的是字元,不是語意。它不知道 .mz-card 和 .mz-card-meta 是兩個東西 —— 對它來說後面那個只是前面那個再加幾個字。

為什麼所有檢查都是綠的

因為結果是合法的。

改完的樣式表語法正確,能解析、能載入、能套用。它只是套到別的東西上,或者誰都沒套到。

沒有任何一支編譯器、格式檢查、語法驗證會對這件事有意見。唯一看得出來的是眼睛,而且要先知道要去看哪一頁。

兩條做法

① 取代一律加邊界。 類別名後面必須接的是引號、空白或大括號,而不是任意字元。

② 先乾跑。 把每一處命中的上下文印出來看過,再真的寫進去。這一步的成本是三十秒,省下的是一次找不到原因的視覺缺陷。

命名本身的一課

把名字當成命名空間來設計,這類碰撞就不會發生。

⭐ 工具類的名字要嘛完全獨立,要嘛有一個不會被當成前綴的結尾。「看起來有層級」跟「機器認得出層級」是兩回事。