对于CSS来说,关于id和class属于选择器的问题。
二者主要的区别在哪里呢?
id具有唯一性,class具有普遍性。
id是唯一的,所以尽量在结构外围使用,通常用于页面布局。
class是可重复的,所以尽量在结构内部使用,通常用于样式定义。
id的样式优先级高于class。
id是先找到结构/内容,再给它定义样式;class是先定义好一种样式,再套给多个结构/内容。
为什么id应用少,class应用多?
单一使用的样式用id,需要程序、js动态控制的样式用id,id在页面只能使用一次!尽量少用id,因为id可能和页面嵌的程序冲突。class作为一个独立的属性,一个元素可以有多个class样式,一个class也可以用于多个元素,这样可以重分将样式分解化。同时在jquery和js可以class属性。
什么时候使用ID,什么时候使用class?
一般情况下,css只用class来写并有专门的class通用和私有模块命名,id具有唯一性且优先级太高只作为js操作dom的挂钩全部不添加样式,如果使用jq或zepto的话,操作的class类名一般也不加样式,这部分的class命名和id一样由js来制定。这样做比较适合大型,多人维护并且需要长期迭代的项目,css的class类名和js操作的id、class类完全分离,这样产品的ui或者产品交互逻辑变动二者互不影响,易维护。