请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 27627|回复: 68

[教程] CSS入门4:css选择符 [复制链接]

greengnn 楼主

酒酣几度

荣誉管理 手机认证 

帖子
1367
体力
3521
威望
127
发表于 2006-4-6 16:15:00 |显示全部楼层
  1. 这些教程是我整理的,参考小雨css 2.0手册,hve && Star Ocean得css手册,还有网上的一些资源,关于版权,你就别找我麻烦了。
复制代码

一.选择符模式
模式/含义/内容描述

*
匹配任意元素。(通用选择器)
E
匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器)
E F
匹配元素 E 的任意后代元素 F 。(后代选择器)
E > F
匹配元素 E 的任意子元素 F 。(子选择器)
E:first-child
当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类)
E:link E:visited
如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类)
E:active E:hover E:focus
在确定的用户动作中匹配 E 。(动态伪类)
E:lang(c)
如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类)
E + F
如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器)
E[foo]
匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器)
E[foo="warning"]
匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器)
E[foo~="warning"]
匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器)
E[lang|="en"]
匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器)
DIV.warning
仅 HTML。用法同 DIV[class~="warning"]。(类选择器)
E#myid
匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)

From:http://www.w3.org/TR/CSS2/selector.html


我们用下面的例子来解释“父元素”、“子元素”、“父/子”及“相邻”这几个概念。
  1. <div title="这是一个div">
  2. <h1>这是是h1的内容</h1>
  3. <p>这是一个段落p的内容!<strong>这里是strong的内容</strong>这是一个段落p的内容!</p>
  4. </div>
复制代码

从以上代码中,我们可以找出这样的关系:
  • h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。
  • h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内)
  • div 是 h1 和 p 的“父元素”。
  • strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。
  • 但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。
  • div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。
  • h1 和 p 两者是相邻的。


继承上面的实例来具体演示一下E F的关系:假如,我们需要将 strong 内的内容二字变为绿色,我们可以有哪些方法呢?

  1. div strong {color:green;} /* - 正确。strong 是 div 的“子元素”*/
  2. p > strong {color:green;} /* - 正确。strong 和 p 是“父/子”关系*/
  3. div > strong {color:green;} /* - 错误!strong 虽然是 div 的“子(孙)元素”,但两者乃是“祖孙”关系,而非“父/子”关系,因此不能用 > 符号连接*/
复制代码


临近选择器和通用选择器:通用选择器以星号“*”表示,可以用于替代任何 tag 。
实例:

  1.     h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/
复制代码


二.选择符分类介绍

1.通配选择符
语法:
  1. * { sRules }
复制代码

说明:
通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。
示例:
  1. *[lang=fr] { font-size:14px; width:120px; }
  2. *.div { text-decoration:none; }
复制代码


2.类型选择符
语法:
  1. E { sRules }
复制代码

说明:
类型选择符。以文档语言对象(Element)类型作为选择符。
示例:
  1. td { font-size:14px; width:120px; }
  2. a { text-decoration:none; }
复制代码

3.属性选择符
语法:
  1. E [ attr ] { sRules }
  2. E [ attr = value ] { sRules }
  3. E [ attr ~= value ] { sRules }
  4. E [ attr |= value ] { sRules }
复制代码

说明:
属性选择符。
选择具有 attr 属性的 E
选择具有 attr 属性且属性值等于 value 的 E
选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格
选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E
示例:
  1. h[title] { color: blue; }
  2. /* 所有具有title属性的h对象 */

  3. span[class=demo] { color: red; }

  4. div[speed="fast"][dorun="no"] { color: red; }

  5. a[rel~="copyright"] { color:black; }
复制代码

4.包含选择符
语法:
  1. E1 E2 { sRules }
复制代码

说明:
包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。
示例:
  1. table td { font-size:14px; }

  2. div.sub a { font-size:14px; }
复制代码

5.子对象选择符
语法:
  1. E1 > E2 { sRules }
复制代码

说明:
子对象选择符。选择所有作为 E1 子对象的 E2 。
示例:
  1. body > p { font-size:14px; }
  2. /* 所有作为body的子对象的p对象字体尺寸为14px */

  3. div ul>li p { font-size:14px; }
复制代码

6.ID选择符
语法:
  1. #ID { sRules }
复制代码

说明:
ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。
示例:
  1. #note { font-size:14px; width:120px;}
复制代码

7.类选择符
语法:
  1. E.className { sRules }
复制代码

说明:
类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。
在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class="class1 class2">。
示例:
  1. div.note { font-size:14px; }
  2. /* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */

  3. .dream { font-size:14px; }
  4. /* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */
复制代码


8.选择符分组
语法:
  1. E1 , E2 , E3 { sRules }
复制代码

说明:
选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。
示例:
  1. .td1,div a,body { font-size:14px; }
  2. td,div,a { font-size:14px; }
复制代码


9.伪类及伪对象选择符

语法:
  1. E : Pseudo-Classes { sRules }
  2. E : Pseudo-Elements { sRules }
复制代码

说明:
伪类及伪对象选择符。
伪类选择符。请参阅伪类( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
伪对象选择符。请参阅伪对象( Pseudo-Elements )[:first-letter :first-line :before :after]。
示例:
  1. div:first-letter { font-size:14px; }
  2. a.fly :hover { font-size:14px; color:red; }
复制代码
blog Web标准化交流会 WEB标准群:23783439
西部数码顶级域名注册商39元抢注!

老吃不饱

金牌会员 手机认证 

帖子
774
体力
3916
威望
2
发表于 2006-7-27 10:35:07 |显示全部楼层
一个微小疏忽错误

CODE:

    h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/

这里应是
    h2 + * { color:red}/*所有紧随 h2 的元素内的文字都将呈现红色*/



还有:

CODE:

div.note { font-size:14px; }
/* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */

.dream { font-size:14px; }
/* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */
                                            ~~~ dream

[ 本帖最后由 loveface 于 2006-7-27 17:48 编辑 ]
不要浮躁
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

帖子
92
体力
368
威望
0
发表于 2006-8-22 16:12:46 |显示全部楼层
说实话,我看这个有点蒙了,sRules 是什么意思我到现在还没看明白?

使用道具 举报

帖子
66
体力
181
威望
0
居住地
陕西省 西安市
发表于 2006-9-7 12:16:21 |显示全部楼层
跟楼上兄弟的问题一样
   "我看这个有点蒙了,sRules 是什么意思我到现在还没看明白?"  
请高人指点!
谢谢!~~

使用道具 举报

帖子
41
体力
116
威望
0
发表于 2006-9-12 11:49:09 |显示全部楼层

有点蒙,感觉好高深啊,平时好象一般用不到这些把

使用道具 举报

ameron 
帖子
9
体力
17
威望
0
发表于 2006-10-1 19:16:45 |显示全部楼层
看懂了几句,就晕了

使用道具 举报

帖子
77
体力
358
威望
0
居住地
江苏省 南京市
发表于 2006-10-6 02:58:59 |显示全部楼层
偶觉得sRules没什么意思,只是一个抽像

代表元素表现部份,如
td { font-size:14px; width:120px; }
    ====================
                         ||
               这些就是sRules
WXYCooL.COM

使用道具 举报

ahwing 

ahwing

银牌会员

帖子
588
体力
1993
威望
2
居住地
广东省 深圳市
发表于 2006-10-12 15:04:26 |显示全部楼层

瑕不掩瑜!顶啊

哈哈,其实我在看的过程也有同样的问题。

不过看下,应该就能知道是个小失误。

   

多谢楼主这么详细!!!

使用道具 举报

帖子
154
体力
218
威望
3
居住地
广东省 深圳市
发表于 2006-10-12 15:35:44 |显示全部楼层
E > F

E:first-child

E:active E:hover E:focus

E:lang(c)

E + F
————————————————————————————
IE6下都不能实现吧

使用道具 举报

帖子
33
体力
65
威望
0
发表于 2006-10-25 13:16:38 |显示全部楼层
这些以前不知道。。写代码太费力了。。谢谢。。楼主。。。
需要照顾

使用道具 举报

myy02 
帖子
102
体力
232
威望
0
居住地
浙江省 杭州市
发表于 2006-11-8 15:34:22 |显示全部楼层
又晕了一次   怎么老是晕呀

使用道具 举报

帖子
4
体力
13
威望
0
发表于 2006-11-11 10:21:28 |显示全部楼层
谢谢 确实看不懂啊

使用道具 举报

帖子
253
体力
783
威望
0
发表于 2006-11-11 10:36:30 |显示全部楼层
#11 老晕的原因是没见过世面~~~
   不过我和你一样`~~~

使用道具 举报

帖子
52
体力
86
威望
0
发表于 2006-11-15 16:59:12 |显示全部楼层

郁闷

狂晕中~~~

使用道具 举报

esefei 

阿飚

中级会员

帖子
368
体力
479
威望
0
居住地
湖北省 武汉市
发表于 2006-11-16 14:40:43 |显示全部楼层
是啊`
写代码很费力
不过还是应该读的懂哦`

使用道具 举报

帖子
15
体力
39
威望
0
发表于 2006-11-17 17:40:48 |显示全部楼层
谢谢LZ~~
好DD!!
还有能总结下哪个能在什么浏览器下执行就更好了~

使用道具 举报

帖子
12
体力
64
威望
0
发表于 2006-11-19 12:25:53 |显示全部楼层
确实很多都没有见过

使用道具 举报

帖子
22
体力
176
威望
0
发表于 2006-11-27 14:36:17 |显示全部楼层
谢谢楼主
学习一下

使用道具 举报

帖子
52
体力
60
威望
0
发表于 2006-12-1 17:00:51 |显示全部楼层
这个有点晕!平时用不大到吧!!!!

使用道具 举报

帖子
40
体力
91
威望
0
居住地
辽宁省 大连市
发表于 2006-12-14 11:15:38 |显示全部楼层
没看明白,放弃这个,太累了,好像平时不常见,搞好常见的就好了,呵呵
ThinkPad  QQ 6724640

使用道具 举报

简简单单

钻石会员 手机认证 

帖子
183
体力
7227
威望
0
居住地
北京市 海淀区
发表于 2006-12-15 21:14:24 |显示全部楼层

很精点哟

我也的好学习了,哈哈,谢谢楼主~~~

使用道具 举报

帖子
114
体力
221
威望
0
发表于 2006-12-21 11:14:13 |显示全部楼层
谢谢LZ 这一节对我很有用,正缺这节没弄明白
logoku.com

使用道具 举报

个性猪

银牌会员 手机认证 

帖子
458
体力
1215
威望
0
居住地
广东省 深圳市
发表于 2006-12-21 20:28:56 |显示全部楼层
用到其中几种方式就OK了。呵呵

使用道具 举报

帖子
4
体力
13
威望
0
发表于 2006-12-25 15:51:53 |显示全部楼层

这个是理论吧!

我看了近1个多小时才看完,这个应该是一个理论,象前面几个说的,很晕,理论这玩意儿,我一向学得不好,呵呵,不过看了这么久,以偶现在的水平,以后遇到案例,能看懂(借助以上资料),偶想也就差不多了,要进一步升级,就得看以后的造化了~~

使用道具 举报

ljzlxj 
帖子
23
体力
89
威望
0
发表于 2006-12-29 19:23:12 |显示全部楼层
彻底云里雾里

使用道具 举报

Shellway

初级会员

帖子
103
体力
317
威望
0
居住地
福建省 厦门市
发表于 2006-12-29 19:40:59 |显示全部楼层
楼上两位多多学习CSS就会明白的
呵呵,CSS是个好咚咚啊.期待CSS 3……
乘风破浪

使用道具 举报

帖子
12
体力
36
威望
0
发表于 2007-2-7 14:11:42 |显示全部楼层
上半部份还看得明白,下面一半差不多就晕了,和我一样晕的大家加油呀.

使用道具 举报

帖子
29
体力
66
威望
0
发表于 2007-2-10 14:04:04 |显示全部楼层
呵呵,我还行,全看懂了.但我最近才开始研究网页标准化.先学,学完做一个标准化的.

使用道具 举报

帖子
146
体力
237
威望
0
居住地
浙江省 杭州市
发表于 2007-2-26 16:17:00 |显示全部楼层
看了这个真是豁然开朗啊

使用道具 举报

zouql 
帖子
137
体力
291
威望
0
居住地
江苏省 苏州市
发表于 2007-3-8 15:31:00 |显示全部楼层
好帖
又提高了不少
可以更加灵活了
每次来都能学点东西
不错
不过有些IE6不支持!!!
h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/
h2 > * { color:green }
h[title] { color: blue; }
.
.
.
IE都不行啊

[ 本帖最后由 zouql 于 2007-3-8 15:42 编辑 ]

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 09:58 , Processed in 0.207938 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部