日期:2014-05-16  浏览次数:20665 次

css选择器 w3c笔记

?

w3cshool 笔记

?

?

1. 派生选择器

?

比如:

li strong {

? ? font-style: italic;

? ? font-weight: normal;

? }

<p><strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用</strong></p>

?

<ol>

<li><strong>我是斜体字。这是因为 strong 元素位于 li 元素内。</strong></li>

<li>我是正常的字体。</li>

</ol>

?

在上面的例子中,只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class 或 id,代码更加简洁

?

?

?

2.id 选择器

下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色:

#red {color:red;}

#green {color:green;}

下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。

<p id="red">这个段落是红色。</p>

<p id="green">这个段落是绿色。</p>

注意:id 属性只能在每个 HTML 文档中出现一次

?

?

?

3. id 选择器和派生选择器

在现代布局中,id 选择器常常用于建立派生选择器。

#sidebar p {

font-style: italic;

text-align: right;

margin-top: 0.5em;

}

上面的样式只会应用于出现在 id 是 sidebar 的元素内的段落。

?

?

4. 一个选择器,多种用法

即使被标注为 sidebar 的元素只能在文档中出现一次,这个 id 选择器作为派生选择器也可以被使用很多次:

#sidebar p {

font-style: italic;

text-align: right;

margin-top: 0.5em;

}

?

#sidebar h2 {

font-size: 1em;

font-weight: normal;

font-style: italic;

margin: 0;

line-height: 1.5;

text-align: right;

}

在这里,与页面中的其他 p 元素明显不同的是,sidebar 内的 p 元素得到了特殊的处理,同时,与页面中其他所有 h2 元素明显不同的是,sidebar 中的 h2 元素也得到了不同的特殊处理。

?

?

?

5.单独的选择器

id 选择器即使不被用来创建派生选择器,它也可以独立发挥作用:

#sidebar {

border: 1px dotted #000;

padding: 10px;

}

根据这条规则,id 为 sidebar 的元素将拥有一个像素宽的黑色点状边框,同时其周围会有 10 个像素宽的内边距(padding,内部空白)。老版本的 Windows/IE 浏览器可能会忽略这条规则,除非你特别地定义这个选择器所属的元素:

div#sidebar {

border: 1px dotted #000;

padding: 10px;

}

?

?

7.CSS 类选择器

?

.center {text-align: center}

在上面的例子中,所有拥有 center 类的 HTML 元素均为居中。

在下面的 HTML 代码中,h1 和 p 元素都有 center 类。这意味着两者都将遵守 ".center" 选择器中的规则。

?

?

?

8.class 派生选择器:

.fancy td {

color: #f60;

background: #666;

}

在上面这个例子中,类名为 fancy 的更大的元素内部的表格单元都会以灰色背景显示橙色文字。(名为 fancy 的更大的元素可能是一个表格或者一个 div)

?

?

?

9.元素也可以基于它们的类而被选择:

td.fancy {

color: #f60;

background: #666;

}

在上面的例子中,类名为 fancy 的表格单元将是带有灰色背景的橙色。

<td class="fancy">

?

?

?

10. CSS 属性选择器

对带有指定属性的 HTML 元素设置样式。

可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。

?

<style type="text/css">

[title]

{

color:red;

}

</style>

<h2 title="Hello world">Hello world</h2> ??

<a title="W3School" href="http://w3school.com.cn">W3School</a>

?

?

如果您希望把包含标题(title)的所有元素变为红色,可以写作:

*[title] {color:red;}

亲自试一试

例子 2

与上面类似,可以只对有 href 属性的锚(a 元素)应用样式:

a[href] {color:red;}

?

还可以根据多个属性进行选择,只需将属性选择器链接在一起即可。

例如,为了将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色,可以这样写:

a[href][title] {color:red;}

?

?

?

?

?

?

11.属性和值选择器

下面的例子为 title="W3School" 的所有元素设置样式:

<img title="W3School" src="/i/w3school_logo_white.gif" />

<br />

<a title="W3School" href="http://w3school.com.cn">W3School</a>

?

?

?

12.属性和值选择器 - 多个值

下面的例子为包含指定值的 title 属性的所有元素设置样式。适用于由空格分隔的属性值:

?

<head>

<style type="text/css">

[title~=hello]

{

color:red;

}?

</style>

</head>

?

<body>

<h1>可以应用样式:</h1&