CSS 基础语法
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。
selector {declaration1; declaration2; ... declarationN }
选择器通常是您需要改变样式的 HTML 元素。
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。如果不止一个声明,则要在声明之间加引号。
h1 {color:red; font-size:14px;}
值的不同写法和单位
除了英文单词 red,我们还可以使用十六进制的颜色值 #ff0000:
p { color: #ff0000; }
使用css缩写形式为:
p { color: #f00; }
使用rgb值确定颜色:
p{color:rgb(1,0,0);}
p{color:rgb(100%,0%,0%);}
注意:当rgb值为0时也不可省略百分号%。
为了避免增减声明时产生错误,无论声明个数,最好都在声明后加一个分号;表示隔断而非结束。为增加代码可读性,一个声明占据一行。
声明中是否包含空格不会影响 CSS 在浏览器的工作效果,同样,与 XHTML 不同,CSS 对大小写不敏感。不过存在一个例外:如果涉及到与 HTML 文档一起工作的话,class 和 id 名称对大小写是敏感的。
CSS高级语法
对选择器分类,这样就可以对相同类的选择器进行统一声明。每个选择器之间用逗号隔开。如下是对标题进行声明:
h1,h2,h3,h4,h5,h6{
color:green;
}
继承
根据 CSS,子元素从父元素继承属性。例如:
body {
font-family: Verdana, sans-serif;
}
那么body的子元素,如p、tr、th等,都将继承最高元素(本例中为body)的属性,即字体为Verdana。
对于Netscape4这样,忽略继承的浏览器,我们需要再对子元素进行声明。而对于个别想要摆脱继承父元素属性的子元素,可单独对其进行声明。
CSS派生选择器
通过依据元素在其位置的上下文关系来定义样式,在 CSS1 中,通过这种方式来应用规则的选择器被称为上下文选择器 (contextual selectors),这是由于它们依赖于上下文关系来应用或者避免某项规则。在 CSS2 中,它们称为派生选择器,但是无论你如何称呼它们,它们的作用都是相同的。
比如,将strong里的字体变成斜体:
li strong{
font-style: italic;
font-weight: normal;
}
则:
<p><strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用</strong></p> <ol> <li><strong>我是斜体字。这是因为 strong 元素位于 li 元素内。</strong></li> <li>我是正常的字体。</li> </ol>
仅有列表中的strong为斜体字,其他不变。
又如下述css规则:
strong {
color: red;
}
h2 {
color: red;
}
h2 strong {
color: blue;
}
应用于html中表现为:
<p>The strongly emphasized word in this paragraph is<strong>red</strong>.</p> <h2>This subhead is also red.</h2> <h2>The strongly emphasized word in this subhead is<strong>blue</strong>.</h2>
CSS id选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。id 选择器以 "#" 来定义。
#red{color:red;}
#green{color:green;}
下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。
<p id="red">这个段落是红色</p> <p id="green">这个段落是绿色</p>
注意:id 属性只能在每个 HTML 文档中出现一次。
id选择器可用作派生选择器。
CSS 类选择器
在css中,类选择器以一个点显示:
.center{text-align:center;}
上例表示,所有拥有center类的元素均为居中:
<h1 class="center"> This heading will be center-aligned </h1> <p class="center"> This paragraph will also be center-aligned. </p>
注意:类名的第一个字符不能是数字,它无法在 Mozilla 或 Firefox 中起作用。
类选择器也可用作派生选择器:
.fancy td {
color: #f60;
background: #666;
}
类名为 fancy 的更大的元素内部的表格单元都会以灰色背景显示橙色文字。(名为 fancy 的更大的元素可能是一个表格或者一个 div)。
元素也可以基于他们的类而被选择:
td.fancy{
color=#f60;
background: #666;
}
在上面的例子中,类名为 fancy 的表格单元将是带有灰色背景的橙色。
你可以将类 fancy 分配给任何一个表格元素任意多的次数。那些以 fancy 标注的单元格都会是带有灰色背景的橙色。那些没有被分配名为 fancy 的类的单元格不会受这条规则的影响。还有一点值得注意,class 为 fancy 的段落也不会是带有灰色背景的橙色,当然,任何其他被标注为 fancy 的元素也不会受这条规则的影响。这都是由于我们书写这条规则的方式,这个效果被限制于被标注为 fancy 的表格单元(即使用 td 元素来选择 fancy 类)。
CSS 属性选择器
下面的例子为带有 title 属性的所有元素设置样式:
[title]
{
color:red;
}
带有title属性的元素将被设置为红色:
<h2 title="Hello world">Hello world</h2> <a title="W3School" href="http://w3school.com.cn">W3School</a>
显示结果为:
对title=“W3School”的所有元素设置样式:
[title=W3School]
{
border:5px solid blue;
}
则只能对title=“W3School”元素产生影响,而对title=“***”,***为不是W3School的其他内容没有影响:
<img title="W3School" src="/i/w3school_logo_white.gif" />
效果如下:
下面的例子为包含指定值的 title 属性的所有元素设置样式。适用于由空格分隔的属性值:
[title~=hello]
{
color:red;
}
则可用情况为:
<h2 title="hello world">Hello world</h2> <p title="student hello">Hello W3School students!</h1>
不可用情况为:
<h2 title="world">Hello world</h2> <p title="student">Hello W3School students!</p>
该效果的另一种定义方式是:[title | =hello],使用方式同上。
属性选择器在为不带有 class 或 id 的表单设置样式时特别有用:
input[type="text"]
{
150px;
display:block;
margin-bottom:10px;
background-color:yellow;
font-family: Verdana, Arial;
}
input[type="button"]
{
120px;
margin-left:35px;
display:block;
font-family: Verdana, Arial;
}
<form name="input" action="" method="get"> <input type="text" name="Name" value="Bill" size="20"> <input type="text" name="Name" value="Gates" size="20"> <input type="button" value="Example Button">
CSS 选择器参考手册
选择器 | 描述 |
---|---|
[attribute] | 用于选取带有指定属性的元素。 |
[attribute=value] | 用于选取带有指定属性和值的元素。 |
[attribute~=value] | 用于选取属性值中包含指定词汇的元素。 |
[attribute|=value] | 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。 |
[attribute^=value] | 匹配属性值以指定值开头的每个元素。 |
[attribute$=value] | 匹配属性值以指定值结尾的每个元素。 |
[attribute*=value] | 匹配属性值中包含指定值的每个元素。 |