class(类)和id的一个小实例
在上一节中我们了解了如何为特定的标签定义样式,例如我们利用 “h1{font-size: 12px;}”将页面内所有的标题1的字体大小改为了12像素。那么如果我不希望所有的标题1样式都被修改该怎么做呢?这时class和id就可以帮你的忙。
为了了解class和id,我们先来看两个网页。
没有加入CSS时的页面,加入CSS之后的页面。它们的源代码如下:
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
<head>
<title>我真惨!被用来演示CSS!</title>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312" />
</head>
<body>
<h1>我是页面最上端的标题1</h1>
<h1>我是页面左侧的标题1,用来导航</h1>
<h1>我是页面右侧新闻的标题1</h1>
<p>我是新闻的内容。</p>
</body>
</html>
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
<head>
<title>我真惨!被用来演示CSS!</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
<!--
h1.dabiaoti {
font-weight: bolder;
text-align: center;
}
h1#daohang {
font-size: 12px;
font-weight: bolder;
text-align: left;
}
h1.xinwen {
font-size: 16px;
font-weight:bold;
text-align: center;
color:green;
}
-->
</style>
</head>
<body>
<h1 class="dabiaoti">我是页面最上端的标题1</h1>
<h1 id="daohang">我是页面左侧的标题1,用来导航</h1>
<h1 class="xinwen">我是页面新闻的标题1</h1>
<p class="xinwen">我是新闻的内容。</p>
</body>
</html>
class和id的用法
上面的例子应用class和id实现了3种不同的标题1。下面我们就来讲讲class和id的具体应用规则。
指定标签的class和id
首先我们要在<head>部分定义class(类)或id。
class的定义方法: 指定标签.类名 {样式}
id的定义方法:指定标签#id名 {样式}
然后我们在想要应用类的标签上加上class(类)或者id属性:
class的应用方法:<指定标签 class="类名">
id的应用方法:<指定标签 id="id名">
这种方式定义的class(类)和id只能作用于指定标签。在上面的例子中我们定义了三个类,类名分别为"dabiaoti"、"daohang"和"xinwen",它们均作用于h1标签。当我们试图将其中“xinwen”的样式应用于一个<p>标签的时候(<p class="xinwen">我是新闻的内容。</p>),您会看到它的样式没有发生任何改变。这是一种错误的CSS应用。
注意:类名和id名不可以用数字开头。
不指定标签的类或id
在网页设计的过程中,你可能不希望你定义的类只局限于一个标签。就拿上面的例子来说,你可能希望xinwen类可以应用于段落标签<p>。那么你只需要将定义部分的h1.xinwen改为.xinwen,即去掉h1。这种定义中不含标签名的类当然也就不再局限于某一个标签了。看看我们修改之后的网页,“新闻的内容”也应用了xinwen类的样式。
class(类)与id的区别
到这里你也许要问了,class和id看起来除了一个.和#的区别之外,无论在定义上还是在应用上似乎都是一模一样啊?然而事实上并不如此,同一id在一个页面内只能应用一次,而class则是用于描述多次出现的元素。这从它们的名称上很容易理解。id就类似元素的省份证号码,它必须是唯一的,而class则是一类具有共同属性的元素的合称,是一类。
如果你试图在一个一面内多次使用同一个id,页面通常是可以正常显示的。但是这会给后期的维护带来不便,还可能造成其它的问题。所以我们一定要区分开id和class,并且合理的应用它们。