登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>程序开发>CSS>正文
 
设计技巧:CSS选择符命名的原则

http://www.dbit.cn 2009-1-16 8:04:44  来源:东北IT网  编辑:叶子
 
  坦率的说,我写CSS时,有至少1/4的时间是在纠结选择符该如何命名。随意的命名,会让你陷入尴尬。

  举个例子,我们需要在一段文字里将某些词标红。所以为此建了一个.red { color: red; }。结果产品经理觉得,红色太刺眼了,改成橘色比较好吧。这下头大啦,难道写成.red { color: orange; }么?要不然就是把HTML里的每个class="red"改成class="orange"?

  在过去几年时间里,我经常遇到这样的尴尬。因此作为一些经验之谈,我整理出以下的几个命名原则:

  原则一:CSS选择符命名应该体现结构而不是样式。

  这句话听起来很奇怪。这样不是违反了结构和样式分离的原则么?恰恰相反,其实正是遵循分离原则。要知道,CSS选择符名真正的用处是在HTML代码里修饰标签。所以它其实应该被看作结构的一部分。因此选择符的名字不可以跟样式有关。
  我开头将的那个例子,就是违反这一原则典型。正确的写法,应该是.highlight { color: red; },或者索性就用em { color: red; font-style:normal; }。
  同理,我尽量避免用带有left、right、颜色、bold等字眼的名字,总而言之,那些可以被作为CSS属性值的名字,都尽量少用作名字。
  有时候,我们会遇到另一种情况。有一个很常见的布局:标题放在区块的左上方,而右上方是一个“查看更多”的链接。所以我们会用这样的代码

<h2>
<span><a href="#">查看更多</a></span>
精彩贴图
</h2>


  自然,会有相应的样式:

  h2 span {float:right;}

  但是这样做其实很危险。如果我们要求给标题后再加一个副标题(比如“超过1000万精美图片”之类的恶俗标语),就没法再用span了。用strong或是em,其实感觉怪怪的。

  原则二:不要轻易将特殊样式直接赋给常用的HTML标签

  上面那个例子的问题就在于,轻易的将样式应用在span这种常用的标签上了。h2 span这种选择符,意味着你认为h2里所有的span都要使用右浮动。但是这样的判断显然是很武断的。

  另一个例子是,喜欢用ul.top10 li这种选择符。这样用并非不可,但请先确保这个排行榜里只是纯文字。倘若有一天产品经理发现,似乎应该把前三个的信息写得更详细,就意味着你可能需要用到下面这种结构:

<ul class="top">
<li>
<div class="product">
<h6>产品名称</h6>
<ul>
<li>型号:XXX</li>
...
</ul>
<div>
</li>
</ul>

  这下又傻眼了吧。只能用.top20 .product li {}去覆盖掉之前的样式。
  我比较倾向的写法,是如 ul.top20 li.item这样写。(当然,CSS2准备了更多更精准的后代选择器,就犯不着这个了。等待IE8吧~~)

  原则三:设计好一系列的“全局保留字”,以避免命名冲突

  一些常用的单词,就不要用作特殊样式的名字。比如,我们会经常用到如下的选择符:

  .tab li.current
  或者
  .nav li.current

  以表示当前激活的标签或选项。很多样式都会用到“current”这个单词,为了避免彼此的样式冲突,有一个很简单的办法,就是人为商定,单纯的.current样式不作任何定义。换句话说,current这个名字只能出现在精确的后代选择符中。
  类似的还有:

  “.active”:和current差不多,有人也喜欢用这个
  “.first”:经常在如“ 选项   选项   选项”的结构中用到
  “.last”:在田字格布局中可能会用到
  “.hover”:有时候需要用这个样式结合JS实现一些效果
  “.text”、“.button”、“.submit”等:在属性选择器普及前,input标签的样式都靠它们了。

  原则四:英文要正确

  哎,这只能怪计算机是美国人发明的了。有时候会看到一些奇怪的选择符名。我解释一些常用单词的含义:

  header,footer:
  这两个的意思是指“头部”和“底部”,更确切点讲是“页头”和“页尾”。

  heading,footing:

本新闻共2页,当前在第1页  1  2  

 
收藏】【打印】【进入论坛
  相关文章:

·CSS3 Media Queries 详解
·CSS实例教程:非浮动区域设置宽度
·css的效率和浏览器渲染的速度
·关于CSS HACK 解决兼容的写法 
·小议使用“完整”的CSS的缺点
·关于CSS不透明的详细介绍 
·CSS中设置段落间距的方法
·用css网站布局之十步实录
·DIV+CSS布局代码精简对SEO的影响 
·CSS教程:网页中英文字体的设置 
·css3文本阴影属性text-shadow说明 

 
 
 
 
最新文章

中关村艳照门女主角详记录高清组图 
大连护士门大尺度艳照高清组图
iPhone女孩微博爆红 最宝贵东西换iPhon
反恐精英之父内维尔:改变电脑游戏销售
团购网站黎明之前:中国市场惨烈厮杀不
团购鼻祖Groupon中国揭秘:快与慢的商业
Spil Games发布新的品牌形象
1800配置一台主机 不要显示器
联想V360笔记本模特写真
爱国者第四代移动硬盘将面市、低电压保

 
推荐文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆红 最宝贵东西换
大连护士门大尺度艳照高清组图
中关村艳照门女主角详记录高清组
苹果员工中毒门
宫如敏不雅照疯传 看张馨予韩一菲
深耕市场 永续经营——专访百脑汇
优派专业电子书 让您回家旅途多姿
揭晓百万大奖三星bada魅力绽放中
大明龙权“江湖英雄会”全国PK大
永恒之塔校园达人挑战赛完美落幕
八卦图解 More>>
iPhone女孩微博爆红 最宝贵东西换 大连护士门大尺度艳照高清组图
中关村艳照门女主角详记录高清组 宫如敏不雅照疯传 看张馨予韩一菲