CSS选择符命名的几个原则

2016-02-19 23:31 8 1 收藏

今天图老师小编给大家精心推荐个CSS选择符命名的几个原则教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  坦率的说,我写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
    spana 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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  这下又傻眼了吧。只能用.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:
  heading的意思是标题、题目,h1的h就是heading的缩写。
  footing的意思是注脚。

  所以呢,我的看法是,整个页面的顶部和底部用header和footer,而区块的标题和底部用heading和footing。

  caption:
  这个词的意思也是标题,但是它特指图片的文字说明。所以记得用在图片底部的文字。

  primary,secondary:
  这两个词是首要次要。它们往往是指同级别的事物,只是重要性不同。比如提交按钮和取消按钮。

  main,sub:
  这两个词才是上下级关系。如主菜单和子菜单。

  top,middle,bottom:
  这里主要是中这个词。上中下里的中是用middle。参见text-align属性。

  left,center,right:
  左中右的中是center。参见vertical-align。

  此外,还有一些常用的词语:

  rating:打分
  rank:第几位
  showcase:展示橱窗,可以用作一行五个这种排布。
  category:分类
  thumbnail:缩略图
  snapshot:截图。这个单词的意思是快照,所以一般指原大小。
  breadcrumbs、pathway:这两个都可以用来指这个东西:首页  二级页面  内容页
  quicklinks:这个可以用作页面右上角的 登录 | 帮助 | 客服 ,也可以指页面底部的 关于我们 | 网站地图 
  tip:提示。可以用作输入框旁边的文字,或是弹出的提示框。

来源:https://www.tulaoshi.com/n/20160219/1630074.html

延伸阅读
标签: Web开发
规范的命名也是Web标准中的重要一项,标准的命名可以更好的看懂代码,我想大家应该都有这种经历,某日翻出自己过去写的代码居然看不懂了,呵呵,为了避免这种情况我们就要规范化命名,再说了,现在一个项目不是一个人就可以完成的,是需要大家互相合作的,如果没有规范化命名,别人就无法看懂你的代码,大大降低了工作效率,所以必须规范化...
标签: Web开发
命名一直是个让我头痛的问题,特别是那些看上去差不多的模块,所以就得想办法啦,我总结了下面的方法,虽然还在试验中。希望对大家有帮助。欢迎大家提出改进的意见。具体如下: 要注意的内容: 一,命名所选用的单词应选择不过于具体表示某一状态(如颜色、字号大小等)的单词,以避免当状态改变时名称失去意义。 二,样式类名由以字母开头...
标签: Web开发
(一)常用的CSS命名规则 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:left right center 登录条:loginbar 标志:Logo 广告:banner 页面主体:main 热点:hot 新闻:news 下载:download 子导航:subnav 菜单:menu 子菜单:submenu 搜索:search 友情链...
标签: Web开发
CSS样式 层叠顺序 当使用了多个样式表,样式表需要争夺特定选择符的控制权。在这些情况下,总会有样式表的规则能获得控制权。以下的特性将决定互相对立的样式表的结果。 正如以前所提及的,网页制作者和读者都有能力去指定样式表。当两者的规则发生冲突,网页制作者的规则会凌驾于读者的其它相同权重的规则。而网页制...
E:hover伪类选择符,是我们最熟悉不过的一个伪类了,而且运用也是非常的广泛,可以说在互联网中每个网站上面都会出现它的影子。我们不可否认已经对这个伪类选择符已经是相当的熟悉,但你是否真正的将它的功能发挥到淋漓尽致呢?嘿嘿只要善于发现,我们就可以创造出非常有意思的东西来,大家是否还记得之前的分享给大家的一篇文章《创意CSS技巧...

经验教程

253

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部