构建一个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