class和id命名探讨
作者:tyhouse 来源:twocity.cn 发布时间:2007-10-16 17:55:00
class和id的命名,如果合理,可以使得文档具有清晰的结构
我们现在解决办法就是使用现有的元素,通过给他们id或class而得到额外的信息。这样就使得文档具有清晰的结构。比如,我们通过一个简单的无序列表UL,可以创建出一个导航元素的信息:
程序代码
<ul id="nav">
<li><a href="http://www.twocity.cn/">twocity.cn教程</a></li>
<li><a href="http://www.twocity.cn/">twocity.cn实例</a></li>
<li><a href="http://www.twocity.cn/">twocity.cn布局</a></li>
<li><a href="http://www.twocity.cn/">twocity.cn欣赏</a></li>
<li><a href="http://www.twocity.cn/">twocity.cn下载</a></li>
</ul>
我们一直强调以提醒你的注意,id是页面上单独的元素,必须是唯一的,这样的益处在于程序或脚本的控制与选择。id我们通常用来标记结构性的元素,如上面提到的头部导航、侧边栏、内容区域等。
一个id只能应用于同一个页面上的一个元素。从理论上说,不同的页面,完全可以使用同一个id。例如列表页面的标签与内容显示页面的标题,或者是首页的联系方式与内页的联系方式。需要你注意的是,这样确实能省事简化代码提高效率。但如果将来需要根据页面不同单独定义他们的外观,你将会遇到棘手的问题。我们建议你建立不同的id,但在CSS代码编写时,可以运用群组选择符进行外观的设置,即使有变化,也可以非常方便的区分开来。例如:
列表页的标题:<p id="listtitle">www.twocity.cn</p>
内容页的标题:<p id="showtitle">www.twocity.cn</p>
CSS则可以这样写:#listtitle,#showtitle {font-size:1.2em; color:red; ...}
类class是一个非常灵活的东东,你可以将它应用于页面上任意数量的元素。类class非常适合相似条目的定义。例如,我们需要在列表页标识出文章的作者,我们不必为每一个人建立id。我们只需要建立类author分配给每一位作者即可。
需要注意的是,不管你用id还是class,请不要让它的名字与它的表现有任何的关联,应该让这个名字更有意义。例如我们在处理侧边栏时,或许它是在左侧,你会给它一个leftsider的名字,但如果我们经过运行发现它处于右侧更恰当。此时leftsider居于了右侧,就显得不是非常得体与恰当了。比如我们希望我们的关键内容加粗显示,或许你会建立一个class类命名为bold800。如果我们将来将它不加粗而是赋予不同的色彩,这个类名也不合适了。
我们说说命名的大小写问题,我们的id名与class类名,一般情况下是不区分大小写的,但不是一个好习惯。我们如果使用XHTML那么id名与class类名是区分大小写的,如果是使用HTML,那么大小写是没有区别的。我们处理这样问题的方法就是全部采用小写,当然,你也可以按你的习惯,但要注意与开发团队的其他成员协调。
我们的id与class类都是比较灵活的东西,只要你愿意,你爱怎么用就怎么用,但问题就出现了。我们的页面代码中到处充斥着这些东西,我们的出发点是想更加精确的选择和控制我们的页面元素,但这好象又回到了表格时代,一切变的难以理解和不可阅读,例如下面的代码:
程序代码
HTML:
<div id="about52css">
<h1 class="title">Div+CSS教程 www.52css.com</h1>
<p class="abouttext">52css.com是一个非常专业的CSS站点</p>
<p class="abouttext">52css.com的Div+CSS教程栏目有丰富的教程</p>
</div>
CSS:
.title {font-size:13px; color:#f60;}
.abouttext {font-size:12px; color:#666;}
我们进行一下优化,去掉一些不必要的命名。代码如下:
程序代码
HTML:
<div id="about52css">
<h1>Div+CSS教程 www.twocity.cn</h1>
<p>twocity.cn是一个非常专业的CSS站点</p>
<p>twocity.cn的Div+CSS教程栏目有丰富的教程</p>
</div>
CSS:
#about52css h1 {font-size:13px; color:#f60;}
#about52css p {font-size:12px; color:#666;}
优化后的方式代码更加的简洁,我们只需要通过选择器准确的找到样式的应用目标就可以了。不必过份的依赖于id名或class类名。我们只有在不得已,不得不使用id或class标识的时候才使用它们。正常情况下,我们的文件只需要几个或十来个id名与class名就完全能满足需要了。如果你发现你的这些名字很多。要么是你就是有多id多class结合症,要么就是你的HTML文档的结构出现了问题。我们将在以后twocity.cn的教程文章中,详细的讲解选择符的相关知识与技术,让你可以非常简单而精确的选择到样式的作用目标。


猜你喜欢
- 本文实例讲述了python实现提取百度搜索结果的方法。分享给大家供大家参考。具体实现方法如下:# coding=utf8import url
- 前言copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。深复制被复制对象完全再复制一遍作为独立的新个体单
- 先来看看python的版本: >>> import sys >>> sys.version &a
- SQL Server PRIMARY KEY(主键)约束简介主键是唯一标识表中每一行的一列或一组列。您可以使用主键约束为表创建主键。如果主键
- <?php/** * 发送文件 * * @author: legend(legendsky@hotmai
- 本文实例讲述了Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法。分享给大家供大家参考,具体如下:#!/usr/bin
- <div style='display:none'> <script type="text/ja
- 如下所示:# #### dict中将key相同的字典合并在一个对象里"""a = {"a"
- JavaScript 代码一般最常见的语法格式就是定义函数 function xxx(){/*code...*/},经常有这样的一大堆函数定
- 上下文管理器最常用的是确保正确关闭文件,with open('/path/to/file', 'r') as
- 摆线最简单的旋轮线就是摆线,指圆在直线上滚动时,圆周上某定点的轨迹。设圆的半径为 r ,在x轴上滚动 x距离则意味着旋转了 x
- 方法方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接
- [参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2 ][操作系统:Windows
- 在我的博客上,以前我经常谈到SQL Serverl里的书签查找,还有它们带来的很多问题。在今天的文章里,我想从性能角度进一步谈下书签查找,还
- 痛点引出在平时的开发当中,渲染侧边栏导航菜单有时会遇到过需要侧边栏有多层甚至无限层级的问题。此时更优雅的方式便是使用递归组件<el-m
- 原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE
- 计划来实现一个便签墙系列,这个东西做简单也简单,往复杂了做功能也很多,记录一下从零到有的开发过程吧,希望最后能把这个项目做得很完善。首先是前
- 完美解决“换另一台电脑上用VS2008继续开发web项目时出现 “System.Runtime.InteropServices.COMExc
- Clion、IEDA、pycharm的设置及界面是一模一样的,下面我将按照Clion举例,但是在IEDA和pycharm是同样适用,按照方法
- 平时我们写个脚本,要放到后台执行去,我们怎么做呢?nohup python example.py 2>&1 /dev/null