HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。选择器有类别选择器、标签选择器、ID选择器、后代选择器、子选择器、伪类选择器、通用选择器、群组选择器、相邻同胞选择器和属性选择器,css3定义中有更多的选择器类型,但由于各浏览器支持不一,所以不推荐使用,在此不详细叙述。下面我们具体介绍一些常用选择器。
一、ID与类class
选择器是用于控制页面设计的样式,即ID 选择器何类选择器。一直以来,许多开发人员经常将ID 与类混淆,或者不能正确的使用这两种选择器,或者简单的认为是一个代替另一个,这种认知是及其错误的。
(1)、应用ID
每个ID 在一个页面中只能使用一次,作为某个元素的唯一标识符.一般情况下,ID 只
用于页面的唯一元素,如页眉,主导航条,布局区块等.
示例:
<p id=”hightlight”>This paragraph has red text.</p>
复制代码相应的CSS 代码:
#hightlight{
color:#FFFFFF;
}
复制代码(2)、将ID与选择器结合
/*适合所有h2 标题*/
h2{
color:# 333;
font-size:16px;
}
/*只适合title 的h2 标题*/
h2#title {
color:# eee;
}
复制代码相应的XHTML 代码:
<h2>Title Of My Article</h2>
<h2 id=”title”>Title Of My Article</h2>
复制代码(3)、ID的使用场合
对于每个ID,每个页面只能有一个元素使用该样式,因此ID 应该为每个页面唯一存在并仅使用一次的元素不保留。
(4)、避免使用ID的场合
当一个以上的地方需要使用同一CSS 规则时,不应该使用ID。
(5)、应用类
类可以无限次的使用,因此它是应用CSS 的非常灵活的方法。
<p class=”hightlight”>his paragraph has red text.</p>
复制代码相关CSS 代码:
.hightlight {
color:FFFFFF;
}
复制代码(6)、结合多个类和ID
范例:
<ul id=”drinks”>
<li class=”mix”>Beer</li>
<li class=”mix”>Spirtis</li>
<li class=”hot”>Cola</li>
<li class=”hot”>Lemonade</li>
</ul>
复制代码相应的CSS 代码:
ul#drinks {
color:FF6600;
}
.mix {
Color:# 999999;
}
.hot {
Color:# 333333;
}
复制代码(7)、利用类改写基本样式:
p{Color:#ff6600;}
.bleached {Color:#ccc;}
复制代码相应的XHTML 代码:
<p>This paragraph has red text.</p>
<p class=”bleached”>This paragraph has red text.</p>
复制代码(8)、直接将类链接到元素上
相应的XHTML 代码:
<p class=”bleached”>This paragraph has red text.</p>
复制代码(9)、避免,适合
对于class,如果多次重复使用或者使用子类选择器,那么就选择class,如果是定义唯一性的标记,比如布局,那么用id。
二、层叠
(1)、外部链接实现层叠
<link rel=”stylesheet” type=”text/css” href=”css/one.css”>
<link rel=”stylesheet” type=”text/css” href=”css/two.css”>
<link rel=”stylesheet” type=”text/css” href=”css/three.css”>
复制代码(2).导入样式实现层叠
@import url(“one.css”)
@import url(“two.css”)
@import url(“three.css”)
复制代码注意点:必须牢记一个规则,越晚给的规则越重要.
三、分组
h1{
Font-family:隶书,宋体,楷体;
Line-height: 140%;
Color:# 333;
}
h2{
Font-family:隶书,宋体,楷体;
Line-height: 140%;
Color:# 333;
}
h3{
Font-family:隶书,宋体,楷体;
Line-height: 140%;
Color:# 333;
}
/*分组后*/
h1,h2.h3{
Font-family:隶书,宋体,楷体;
Line-height: 140%;
Color:# 333;
}
/*分组例外*/
h1{
Font-style:italic;
}
复制代码四、继承
h1 {
Color:# 333;
}
<h1>This is the greatest heading <i>in the world</i></h1>
复制代码从BODY 继承
Body {
Margin:10px;
Font-family:隶书;
Background:#000;
Color:#fff;
}
复制代码五、上下文选择器
h1{
Color: #ccc;
}
i {
Color:# 000;
}
/*使用上下文选择器*/
h1 I {
Color:# 000;
}
复制代码六、子类选择器
.box {
color:red;
}
.box1 {
font-weight:bold;
}
.box2 {
font-style:italic;
}
<div class="box">Box</div>
<div class="box box1">Box1</d iv>
<div class="box box2">Box2</d iv>
复制代码七、其他选择器
(1)、类型选择器
p{color:black;}
a{text-decoration:underline;}
h1{font-weight:bold;}
复制代码(2)、后代选择器
h2 i{color:red;}
li a{text-decoration:none;}
#main h1{Color:red;}
复制代码(3)、伪类
a:link{color:blue;}
a:visited{color:green;}
a:hover,a:active{color:red;}
input:focus{background-color:yellow;}
复制代码(4)、通用选择器
(5)、高级选择器
高级选择器,目前支持还不太完善,所以对于站点功能很重要的任何元素上,应该避免使用这些高级选择器。
1、子选择器和相邻同胞选择器
子选择器
#nav > li {background:url(bg.gif) no-repeat left top;}
<ul id="nav">
<li>Home</li>
<li>Server
<ul>
<li>Development</li>
<li>Consultancy</li>
</ul>
</li>
<li>Contact Us</li>
</ul>
复制代码相邻同胞选择器:
h1+p{font-weight:bold;}
<h1>Main Heading</h1>
<p>First Paragraph</p>
<p>Second Paragraph</p>
复制代码2、属性选择器
<strong title=”Cascading Style Sheets”>CSS</strong>
strong[title] {border-bottom: 1px dotted #999;}
strong[title]:hover {cursor:help;background:#ccc}
复制代码八、代码注释与结构
/*body styles*/
body {
Font-size:67.5%;
}
复制代码1、添加结构性注释
/*---------------------------------------------------
Version: 1.1
Author: andy budd
Email:info@andybudd.com
Website:http:www.andybudd.com
-----------------------------------------------------*/
复制代码2.自我提示
/*
Use the star selector hack to give IE a different font size
http://www.info.co.ph
*/
复制代码布局结构是使用有意义的标记。