我最近開始了一個大型的多年客戶項目,前端開發的第一個階段是創建一個模式庫來在整個項目中使用。我爲我的網格使用了Compass和Blueprint。 Mixin的這個項目看起來非常完美:它會自動生成語義類名稱(即.span5
),其他小組可以在所有頁面上重用。爲什麼不使用Compass/Blueprint Grid的語義類名稱?
然而,Compass documentation states:
最佳實踐反對使用這種混入,但它提供了支持舊版網站和測試針對藍圖的示例頁面的薩斯端口。
這是爲什麼?爲何在現代網格系統中推動使用非語義類?爲各種頁面元素創建一個新的CSS類,它們都會共享相同的網格寬度,這看起來不那麼幹。例如:
.dashboard__chart {
@include column(6);
}
.dashboard__news {
@include column(6);
}
的時候我可以簡單地只是有一個.span6
類在我的標記申請。
這可能是情境性的:如果整個項目在整個項目中都有類似的佈局(例如新聞網站或博客),則非語義類是有意義的。但是,這個儀表板/報表工具項目在每個頁面中都有不同的佈局。
回到最初的問題:爲什麼最好不要使用語義類,以及避免它們的最佳方法是什麼?
謝謝,這正是我正在尋找的信息的類型。我很好奇:因爲我有機會從這個項目的最佳實踐方法入手,有沒有關於如何在不使用HTML類的情況下概括佈局的理論指導/理論文章? –
當沒有更好的元素可用時,它不是關於*不使用類,而是將它們定製爲內容。我認爲你的儀表板的例子很好,給一個元素名稱爲「儀表板」或「儀表板新聞儀表板」類將被視爲語義,因爲沒有「儀表板」標籤,並且該類名稱描述內容。 [本文](http://css-tricks.com/semantic-class-names/)闡明瞭我想說的。您也可以查看可能已爲您的內容標準化的微數據格式:http://microformats.org/wiki/Main_Page –