CSS中如何正确的使用id和class

2016-02-19 13:08 6 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的CSS中如何正确的使用id和class,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

今天有点闲,想向大家请教一下id和class的使用。

  按照字面的意思,id是指一个元素在整个文档中的“唯一标志”,而class则是它所属的“类别”。按照语法,同名的id在一个文档里只应该出现一次,而class名可重复使用。

  但是在具体使用的时候,哪些样式该用id,哪些样式改用class呢?有个答案很简单:

  那些只会在页面中出现一次的元素应该用id来表示。比如页头(header) 页尾(footer),导航菜单(main-menu)等。但是真的这么简单么?

我先举几个例子来说明我所遇到的尴尬:

大多数的页面都是两栏布局的:一个主栏(main column),一个侧栏(side column)。就像这样:

 

CSS中如何正确的使用id和class(图一)

OK,我们会用两个div来表示它们。问题来了,应该使用id还是class?按照常规的理解,一个页面只会有一个主栏,一个侧栏咯,所以当然应该用id。文档写成这:

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

div/div
div/div

#main-col { float: left; width: 700px;}
#side-col { float: right; width: 200px; }

也是很赏心悦目的,不是么?所以我决定用id。

于是页面做好了,网站做好了,上线了,运营了,访问量大了。这时候公司决定,嗯,我们应该在一些页面中加几个通栏广告。“通栏”哦!这就意味着它必须横跨主栏和侧栏,把它们俩拦腰截断。于是我们重新“发明”一个样式:banner,让banner来一个clear:both; 然后放到页面中间去阻止掉两个栏的浮动。然后再在banner的后面继续分两栏。下面是示意图:

CSS中如何正确的使用id和class(图二)

所以HTML应该是这样:

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

div/div
div/div

divmain-col"/div
div/div

问题轻松解决(多亏偶经验丰富啊,表扬一下自己,咔咔。)。唯独只有一个问题:main-col和side-col这两个id重复了。这个问题其实也不麻烦,把它们全部改成class不就好啦(甚至,不去改它,我就不信浏览器会给我报错,哼)。

但是,我这不是自己给了自己一个嘴巴么?当初还信誓旦旦的说,main-col只会出现一次,所以用id……。所以教训就是,main-col和side-col,或是left-col, right-col ,extra-col, xxx-col,这些用来分栏布局的样式,都给我用class。嗯,记在本本上。 设计页面的时候,在页头和主菜单之间放了一个搜索框(search-box)。既然我们的页头(header),导航栏(main-menu),登录框(login-box)都用的是id,和它们在一起的search-box也应该用id咯?呃,小心啊,老板很可能会让你在页尾也放一个搜索框的,你用id你就死定了。所以search-box应该用class。不过这样怪怪的,凭什么login-box用id,而search-box却用class呢? 慢着,你以为导航栏就可以保证唯一了么?我来讲一个例子:
CSS中如何正确的使用id和class(图三)

喏,老板要来一点不同的,让把导航栏放在左侧。这个没问题,用一个ul就搞定拉。我把它的id设置成main-menu但是过了一会儿,他说,嗯,为了可用性(咳咳。。),我们需要把菜单分成两部分。就像:

CSS中如何正确的使用id和class(图四)

呃。。好说,分成两个ul就好了。但是,它们的id都叫main-menu么??哎,老问题又来了

来源:http://www.tulaoshi.com/n/20160219/1603065.html

延伸阅读
    先看一个简单的例子:以下是常见按钮,使用“类”控制字体的按钮是不是漂亮了许多?而没有使用“类”控制的按钮的字体看上去就有点变形?本例使用9pt大小的宋体字控制的。        这是“类”的一个用途。     奥秘是这样的:     先定义一...
标签: Web开发
 SPAN 和 DIV 的区别 SPAN 和 DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN 是行内元素,SPAN 的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN。 ------------------------------------------------------------ CLAS...
标签: Web开发
在webjx.com前面的文章里讨论过很多DIVCSS布局的技巧。在用CSS来控制网页布局时我们可能都会遇到一个问题:当定义一个属性时,是使用id,还是使用class?今天webjx.com再谈id与class的使用原则,把自己平时做站时的经验给大家简要讲述一下,希望能够对您有所帮助。 id的使用原则 先来说说id,id具有唯一性,其使用原则也是依...
标签: Web开发
class是设置标签的类。 id是设置标签的标识。  class属性用于指定元素属于何种样式的类。 如样式表可以加入: .baobao { color: lime; background: #ff80c0 } 使用方法:class="baobao" id属性用于定义一个元素的独特的样式。 如一个CSS规则: #binbin { font-size: larger } 使用方法:id="binbin" id是一个标签,用于区分不...
标签: Web开发
前面的学习我们仅仅使用HTML选择器(在HTML页面里为html标签,如 P) 现在我们学习使用clss和id定义属于自己的选择器。 这样,同样的html元素可以通过class或ID使用不同的表现。 在CSS里,使用点号(.)创建class选择器,使用hash符号(#)创建ID选择器。 例子: #top {     background-color:&...

经验教程

716

收藏

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