说明,本篇内容为书籍《高流量网站CSS开发技术》的学习总结,文字出自书本

书不错,推荐阅读学习

也可参阅网上的博文

原载:彬Go
链接:http://blog.bingo929.com/css-coding-semantic-naming.html


class和id是用来建立CSS到HTML文件内部的衔接

注意,有些选择器的写法应考虑浏览器兼容问题,如nth-child选择器,多class选择器.classA.classB(IE6和以前的版本不能理解)

对于元素class和id命名,有几件事要放在心上:

  • 语义性
  • 可接受的字符
  • 惯例
  • 一致性

1.首先说说语义性

所谓语义性,即名字应当描述内容,而不是描述表现,例子如下

♦表现型(不提倡)

PurpleBold(紫色粗体)

BigHeading(大号标题)

top-left-box(左上方框)

underlined-and-green(下划线绿色)

boxLeft(左侧框)

red(红色)

红色标示涉及元素的表现形式,这在命名里是不允许的,因为表现形式是变化的,当变化发生,不仅要修改CSS的class和id名,还要修改html相应元素的class和id名,相当麻烦,当你所编辑的是大型网站,出现多处这样的修改,是非常耗时且头疼的。所以应该尽可能采用适应变化的命名,即命名与内容紧密相关。

♦语义型(提倡)

sidebar(侧边栏)

warning(警告)

当然,有些时候适当运用表现来命名会更灵活。如,用bordered(带边框)的表现名给网站多处添加同样的样式。

记住,最佳方案不是最干净的那个,也不是最漂亮的那个,与其拘泥成法,不如将思路放开一些。

2.可接受的字符

最佳规则:始终使用字母、数字或连字符,并且始终以字母开头

记住,class和id名称是区分大小写的。

不要使用下划线,不要以数字或连字符打头,不接受“*”,“/”,“\”。虽然新的浏览器对生僻字符集的支持功能更多,但不是所有的浏览器如此,为了保证兼容性,请遵循最佳规则吧。

3.惯例

使用一些约定俗称的惯例名称,可提高代码可预测性,既让自己和他人容易理解,也有助于屏幕阅读器和分析器的工作,提高SEO(搜索引擎优化)

惯例参照Web前端开发规范手册

4.大小写

驼峰式(缩写单词的每个字母采用同样的大小写:pdfLink linkPDF)

连字符

5.命名空间

加前缀,如:wp-users。命名空间需要制定团队内的命名空间约定。

这是防御式CSS采用的技术之一,通过命名空间隔离代码,避免冲突,使其不影响原有和未来的代码。

后续阶段的学习:

Microformat(微格式)   http://microformats.org/

随机推荐

  1. Linux_arm驱动之按键模拟脉冲实现定时器的精确计时

    /***************************************************************** 内核驱动部分button_ker.c ************** ...

  2. ArcGIS Server,4000端口被占用

    server使用的端口:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//015400000537000000 cmd 输入命 ...

  3. 使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介

    原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的.根本算不上框架的玩意儿. 现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的. 本次博客先说说各部件都是干什么 ...

  4. 新版本的strcpy_s

    char a[32] = "1234"; char b[32] ="123"; strcpy_s(b,sizeof(b), a + 2);//可以用strlen ...

  5. 一个ajax实现表单上传文件的神器 formdata

    通过传统的form表单提交的方式上传文件: $.ajax({ url : "http://localhost:8080/STS/rest/user", type : "P ...

  6. Xcode8插件安装

    一.创建一个自定义证书并且为Xcode重新签名1.打开钥匙串 2.创建自定义签名证书 3.重新签名Xcode(速度比较慢,大概要等1分钟) $ sudo codesign -f -s XcodeSig ...

  7. VR全景项目领导者,VR全景智慧城市

    在互联网大趋势下,实体商家都迫切需要一个好的线上广告宣传方式,来推广自己的店铺及产品,传统的线上宣传方式已经无法满足消费者需求,360度全景展示能更真实直观的把商家展示给用户消费者,给商家带来客流及收 ...

  8. C#微信公众号/订阅号开发 接口源码

    using System; using System.Web; using System.IO; using System.Text; using System.Web.Security; using ...

  9. 通过LoadGenerator将Linux作为负载机进行压力测试

    前提说明: 测试架构:controller部署在windows操作系统下(windows下安装loadrunner的过程,可以去网上搜下,这里不做解释),loadgenerator部署在linux下. ...

  10. QQ 互联认证 回调地址提示说要http :// 但是事实不用

    真奇怪 腾讯最近人手不够吧 这样的错误也会犯错....