css命名规则及id与class的选择问题

CSS网页布局有很多值得学习的地方,这里和大家重点讨论一下CSS中id与class命名及编码的6个最佳习惯,相信本文介绍一定会让你有所收获。

CSS中id与class命名及编码的6个最佳习惯

关于CSS网页布局id与class命名或许成为大家比较头疼的问题,在51cto.com中早已有相关的介绍,但还是不能满足大家对知识的渴求。

一、用class_name方式写类名。

以前喜欢用class-name写,不过好像两样也没什么差别。但我比较反对用className写类名,因为始终对浏览器大小写敏感的问题抱有怀疑态度。但是id我会写成驼峰式,理由见下一条。

二、样式都用class而不用id

有三个理由。

1,id不可以重复,所以用class的话,可以肆无忌惮的用无数次。

2,id的优先级太高,若是写了一个#page_contenta{color:#f60},那你完蛋了,里面要改链接颜色,都必须加上#page_content才能越过这个优先级。

3,id专门留给JS用,这样才符合表现与行为分离的原则。所以id我用驼峰式,也是为了体现这一点。

三、margin和padding,尽量省略最后一个值。

比如margin:20px10px5px10px;,左右值是一样的,就应该省略掉最后一个值,写成margin:20px10px5px;这样到时候要改左右间距,改一个就好,免得改漏了。其实这个问题虽然很细小,但是可以看得出对margin四个值省略规则的熟练程度。

四、按标准写css,再针对特定浏览器作hack。

比如,通常我们会遇到如下的写法:

ExampleSourceCode

 
 
  1. .side_col_52CSS{  
  2. float:left;  
  3. display:inline;  
  4. margin-left:20px;  
  5. }  
  6.  

而我的写法会是:

ExampleSourceCode

 
 
  1. .side_col_52CSS{  
  2. float:left;  
  3. margin-left:20px;  
  4. }  
  5. *.side_col_52CSS{  
  6. _display:inline;/*hackedforIE6*/  
  7. }  
  8.  

看明白了么?不应该把hack混在一起,也不应该用一种侥幸的心态,觉得float:left与display:inline写在一起没事。嗯,它们俩确实没事儿,但是其他的hack就不一定了。而且这里写display:inline纯粹就是为了解决IE6的bug,所以前面加上下划线,以明确的表达你的目的。

另外不要以为凡是hack都是为IE准备的。其实有些hack是针对其他浏览器的,比如FF。这就要求你对css标准的熟练掌握,能够自信的判断哪些渲染是遵守标准,哪些违反标准的。
此外,我喜欢在hack前面加上星号,其实这纯粹是个人习惯了。可能过段时间我就不这么用了,呵呵。

五、记得加空格。

.class_name{property:value;}。我个人觉得合理的空格是优秀代码的一个指标。按英文的习惯,标点后面都应该带空格(如果你写Thisisapen.That’sapencil.句点后面不加空格,word里面会有错误提示)。所以既然css是外国人发明的,应该按他们的格式来写。类似的,在JS里vara=b+c;里面的空格也应该都要加。

六、适当的层叠(Cascading)或缩进以定义css的“作用域”。

什么是“css的作用域”?其实并不是所有的样式都在所有的地方使用。有的样式只用在某一块里面,比如“导航栏”里的“搜索框”,可能应该写成:

ExampleSourceCode

 
 
  1. .nav.search{}  
  2.  

而有时候用层叠会增加代码优先级,所以也可以用缩进来“象征性的”体现作用域。像这样:

ExampleSourceCode

 
 
  1. .login_box{}  
  2. .forgot_pwd{}  
  3.  

缩进,是为了表示它们对应的标签具有父子关系。但这样只能起一个提醒的作用。



关于选择id还是class?(一般css中用class,id用来给js使用,因为id在标准中是唯一的)

我们平常在用DIV CSS制作Xhtml网页页面时,常会用到class 和id来选择调用CSS样式属性。对学习CSS的新手来说class和id可能比较模糊,同时不知道什么时候该用class,什么时候又用id,以及它们用法与限制是怎么样的。接下来我们就来详细了解CLASS与ID基本属性及用法。

Class 在程序中称“类”,同时在CSS中也书面语也叫“类”。在CSS样式中以小写的“点”及“.”来命名如: .css5{属性:属性值;} ,而在html页面里则以class="css5" 来选择调用,命名好的CSS又叫css选择器。如: .css5{属性:属性值;} 选择器在html调用为“<div class="css5">我是class例子</div> ”如果不知道怎么引用CSS,那就可以了解下css引用

而且class(类)在同一个html网页页面可以无数次的调用相同的class类,在这里例子里则可以在对应的网页里可以无数次调用选择“css5”。这也说明class一般是用来调用css中的预配制属性的,比如说有一个预配制属性为如这里的“.class01{属性:属性值;} ”,这样就可以像调用函数一样不用再一个网页页面里重复的配置一个“类”属性,而只需要写上一个class类选择,就可以在同一个页面里任何位置调用选择具有相同的CLASS类。

ID是表示着标签的身份,在JS脚本中会用到id,当JS要修改一个标签的属性时,JS会将id名作为该标签的唯一标识进行操作。也就是说ID只是页面元素的标识,供其他元素脚本等引用。假如你的页面里出现了两个ID那JS效果特性较出现逻辑错误不知道依据哪个ID来改变其标签属性。 在CSS里的ID不一定为JS而设置的,但是同样ID在页面里也只能出现一次,并且是唯一性。虽然可能我们才学DIV+CSS爱好者在一个页面里同时调用相同的ID多次但是仍然没有出现页面混乱错误,但是我们为了W3C及各个标准我们也要遵循ID在一个页面里唯一性。以免出现浏览器兼容问题。

Div css 页面中的ID是怎么个用法呢?
通常我们在CSS样式定义的时候 以“#”来开头命名id名称如:#css5{属性:属性值;} 这个也有点像class的定义,只是class是以小写句号“.”开头命名,而ID是以“#”好开头定义。那id是怎么个用法呢? Css里的ID用法与class用法一样,只是把class换成id。如例子:在CSS样式定义ID --- #css5{height:25px;width: 200px;} ,调用ID --- <div id="css5">我是ID例子</div>。

接下来我们来看下完整关于CLASS和ID实例:

 
 
  1.  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
  5. <title>DIV CSS中CLASS与ID实例 - -DIV+CSS-www.divcss5.com</title> 
  6. <style> 
  7. .css5{ width:100px; height:100px; border:1px solid #000; float:left; } 
  8. .css5_class{ background:#FFF;} /* 背景白色 */ 
  9. #css5_id{ background:#FF0000;} /* 背景红色 */ 
  10. </style> 
  11. </head> 
  12. <body> 
  13. <div class="css5 css5_class">我在浏览器下浏览,内容背景将是白色</div>  
  14. <div class="css5" id="css5_id">我在浏览器下浏览,内容背景将是红色</div>  
  15. </body> 
  16. </html> 

接下来我们分析一下以上实例:class="css5 css5_class" 怎么是这样的?这里是相当于调用选择了class类css5与css5_class 。class="css5" id="css5_id" 这里同样是选择调用了class类 :css5和id :css5_id 。

本页通过CSS实例与CLASS类和ID分别的讲解,相信您能从此深刻认识和区分它们并且灵活。特别注意:在命名id和class类的时候特别要注意大小写,ID和class是对大小写非常敏感的,最好以英文开头,不要用中文命名CSS类名。欢迎来到DIVCSS5希望本页对你有帮助!  




转载自:http://developer.51cto.com/art/201009/223329.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值