構建一個Javascript重載的Web應用程序時,命名CSS類以保持Javascript代碼和CSS樣式表清潔並且UI結構靈活的最佳做法是什麼?用於jQuery選擇器的CSS類命名的最佳實踐
選項1:名稱的每一個唯一地元件。
例如,
// HTML
<div id="list">
<button class="list-delete" />
<div class="list-items">
<div class="item">
<button class="item-delete" />
<h1 class="item-name">Item 1</h1>
</div>
</div>
</div>
// CSS
.list-delete {
color: black;
}
.item-delete {
color: blue;
}
// Javascript
$(".list-delete").show();
$(".item-delete").hide();
優點:
- 選擇了造型或JS操作的項目是很容易
缺點:
- 元素名稱開始變得雷爾Ÿ漫長而艱難的跟蹤
- 更改HTML結構需要大量的重命名
方案二:名稱的每一個元素語義,並選擇要素分層。
例如,
// HTML
<div id="list">
<button class="delete" />
<div class="items">
<div class="item">
<button class="delete" />
<h1 class="name">Item 1</h1>
</div>
</div>
</div>
// CSS
#list > .delete {
color: black;
}
#list > .items > .item > .delete {
color: blue;
}
// Javascript
$("#list > .delete").show();
$("#list > .items > .item > .delete").hide();
優點:
- 命名感覺更自然,而且名稱是簡短明瞭
缺點:
- 選擇元素爲styl ING或操縱笨重
- 更改HTML結構需要改變很多選擇的,因爲名字是綁層次結構
選項3,...,N:一些混合的方法?完全不同的方法?
請注意將來添加更多元素時名稱衝突的問題,特別是當您有嵌套元素時。另外,理想的解決方案可以很容易地改變現有元素的HTML結構,而不會在其他地方造成過多的中斷。
我嘗試了這一點,然後結束了很多很長的jQuery選擇器,當我想稍微改變HTML的結構時,我不得不更改很多jQuery代碼行。沒有更好的方法嗎? – Chetan 2011-04-15 22:11:34
更好的方法是不要太依賴jQuery選擇器。使用這樣的大選擇器會導致你描述的問題。相反,模塊化您的代碼並使用jQuery.find()從組件中獲取元素,而不是始終使用全局選擇器。 – 2011-04-15 22:13:13