已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
30个最常用css选择器解析作者:iiduce文章来源:点击数:835更新时间:2011-7-31 你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。1. 以下是代码片段:* margin:0; padding:0; 星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中所有元素的margin和padding设置为0。 *选择符也可以在子选择器中使用。以下是代码片段:#container* border:1pxsolidblack; 上面的代码中会应用于id为container元素的所有子元素中。 除非必要,我不建议在页面中过的的使用星状选择符,因为他的作用域太大,相当耗浏览器资源。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera2. #X以下是代码片段:#container width:960px; margin:auto; 井号作用域有相应id的元素。id是我们最常用的css选择器之一。id选择器的优势是精准,高优先级(优先级基数为100,远高于class的10),作为javascript脚本钩子的不二选择,同样缺点也很明显优先级过高,重用性差,所以在使用id选择器前,我们最好问下自己,真的到了非用id选择器的地步?兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera3. .X以下是代码片段:.error color:red; 这是一个class(类)选择器。class选择器与id选择器的不同是class选择器能作用于期望样式化的一组元素。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera4. X Y以下是代码片段:lia text-decoration:none; 这也是我们最常用的一种选择器后代选择器。用于选取X元素下子元素Y,要留意的点是,这种方式的选择器将选取其下所有匹配的子元素,无视层级,所以有的情况是不宜使用的,比如上述的代码去掉li下的所有a的下划线,但li里面还有个ul,我不希望ul下的li的a去掉下划线。使用此后代选择器的时候要考虑是否希望某样式对所有子孙元素都起作用。这种后代选择器还有个作用,就是创建类似命名空间的作用。比如上述代码样式的作用域明显为li。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera5. X以下是代码片段:acolor:red; ulmargin-left:0; 标签选择器。使用标签选择器作用于作用域范围内的所有对应标签。优先级仅仅比*高。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera6. X:visited和X:link以下是代码片段:a:linkcolor:red; a:vistedcolor:purple; 使用:link伪类作用于未点击过的链接标签。:hover伪类作用于点击过的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera7. X+Y以下是代码片段:ul+p color:red; 相邻选择器,上述代码中就会匹配在ul后面的第一个p,将段落内的文字颜色设置为红色。(只匹配第一个元素) 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera8. XY以下是代码片段:div#containerul border:1pxsolidblack; ListItem Child ListItem ListItem ListItem 子选择器。与后代选择器X Y不同的是,子选择器只对X下的直接子级Y起作用。在上面的css和html例子中,div#containerul仅对container中最近一级的ul起作用。从理论上来讲X Y是值得提倡选择器,可惜IE6不支持。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera9. X Y以下是代码片段:ulp color:red; 相邻选择器,与前面提到的X+Y不同的是,XY匹配与X相同级别的所有Y元素,而X+Y只匹配第一个。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera10. Xtitle以下是代码片段:atitle color:green; 属性选择器。比如上述代码匹配的是带有title属性的链接元素。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera11. Xtitle=foo以下是代码片段:ahref= color:#1f6053; 属性选择器。 上面的代码匹配所有拥有href属性,且href为的所有链接。 这个功能很好,但是多少又有些局限。如果我们希望匹配href包含的所有链接该怎么做呢?看下一个选择器。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera12. Xtitle*=以下是代码片段:ahref*= color:#1f6053; 属性选择器。正如我们想要的,上面代码匹配的是href中包含的所有链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera13. Xhref=http以下是代码片段:ahref=http background:url(path/to/external/icon.png)no-repeat; padding-left:10px; 属性选择器。上面代码匹配的是href中所有以http开头的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera13. Xhref$=.jpg以下是代码片段:ahref=http background:url(path/to/external/icon.png)no-repeat; padding-left:10px; 属性选择器。在属性选择器中使用$,用于匹配结尾为特定字符串的元素。在上面代码中匹配的是所有链接到扩展名为.jpg图片的链接。(注意,这里仅仅是.jpg图片,如果要作用于所有图片链接该怎么做呢,看下一个选择器。) 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera14. Xdata-*=foo 在上一个选择器中提到如何匹配所有图片链接。如果使用Xhref$=.jpg实现,需要这样做:以下是代码片段:ahref$=.jpg, ahref$=.jpeg, ahref$=.png, ahref$=.gif color:red; 看上去比较麻烦。另一个解决办法是为所有的图片链接加一个特定的属性,例如data-file html代码如下:以下是代码片段:图片链接 css代码如下:以下是代码片段:adata-filetype=image color:red; 这样所有链接到图片的链接字体颜色为红色。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera15. Xfoo=bar 属性选择器。属性选择器中的波浪线符号可以让我们匹配属性值中用空格分隔的多个值中的一个。看下面例子: html代码如下:以下是代码片段:ClickMe,Fool css代码如下:以下是代码片段:adata-info=external color:red; adata-info=image border:1pxsolidblack; 在上面例子中,匹配data-info属性中包含“external”链接的字体颜色为红色。匹配data-info属性中包含“image”的链接设置黑色边框。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera17. X:checked checked伪类用来匹配处于选定状态的界面元素,如radio、checkbox。以下是代码片段:inputtype=radio:checked border:1pxsolidblack; 上面代码中匹配的是所有处于选定状态的单选radio,设置1px的黑色边框。 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera18. X:after和X:before 这两个伪类与content结合用于在元素的前面或者后面追加内容,看一个简单的例子:以下是代码片段:h1:aftercontent:url(/i/logo.gif) 上面的代码实现了在h1标题的后面显示一张图片。 我们也经常用它来实现清除浮动,写法如下:以下是代码片段:.clearfix:after content:; display:block; clear:both; visibility:hidden; font-size:0; height:0; .clearfix *display:inline-block; _height:1%; 19. X:hover以下是代码片段:div:hover background:#e3e3e3; :hover伪类设定当鼠标划过时元素的样式。上面代码中设定了div划过时的背景色。 需要注意的是,在ie 6中,:hover只能用于链接元素。 这里分享一个经验,在设定链接划过时出现下滑线时,使用border-bottom会比text-decoration显得更漂亮些。代码如下:以下是代码片段:a:hover border-bottom:1pxsolidblack; 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera20. X:not(selector)以下是代码片段:div:not(#container) color:blue; 否定伪类选择器用来在匹配元素时排除某些元素。在上面的例子中,设定除了id为container的div元素字体颜色为blue。 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera21. X:pseudoElement :伪类用于给元素片段添加样式。比如一个段落的第一个字母或者第一行。需要注意的是,这个:伪类只能用于块状元素。 下面的代码设定了段落中第一个字母的样式:以下是代码片段:p:first-letter float:left; font-size:2em; font-weight:bold; font-family:cursive; padding-right:2px; 下面的代码中设定了段落中第一行的样式:以下是代码片段:p:first-line font-weight:bold; font-size:1.2em; 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera (IE6竟然支持,有些意外啊。)22. X:nth-child(n)以下是代码片段:li:nth-child(3) color:red; 这个伪类用于设定一个序列元素(比如li、tr)中的第n个元素(从1开始算起)的样式。在上面例子中,设定第三个列表元素li的字体颜色为红色。 看一个更灵活的用法,在下面例子中设定第偶数个元素的样式,可以用它来实现隔行换色:以下是代码片段:tr:nth-child(2n) background-color:gray; 兼容浏览器:IE9+、Firefox、Chrome、Safari23. X:nth-last-child(n)以下是代码片段:li:nth-last-child(2) color:red; 与X:nth-child(n)功能类似,不同的是它从一个序列的最后一个元素开始算起。上面例子中设定倒数第二个列表元素的字体颜色。 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera24. X:nth-of-type(n)以下是代码片段:ul:nth-of-type(3) border:1pxsolidblack; 与X:nth-child(n)功能类似,不同的是它匹配的不是某个序列元素,而是元素类型。例如上面的代码设置页面中出现的第三个无序列表ul的边框。 兼容浏览器:IE9+、Firefox、Chrome、Safari25. X:nth-last-of-type(n)以下是代码片段:ul:nth-last-of-type(3) border:1pxsolidblack; 与X:nth-of-type(n)功能类似,不同的是它从元素最后一次出现开始算起。上面例子中设定倒数第三个无序列表的边框 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera26. X:first-child :first-child伪类用于匹配一个序列的第一个元素。我们经常用它来实现一个序列的第一个元素或最后一个元素的上(下)边框,如:以下是代码片段:ul:nth-last-of-type(3) border:1pxsolidblack; 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera27. X:last-child以下是代码片段:ulli:last-child border-bottom:none; 与:first-child类似,它匹配的是序列中的最后一个元素。 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera28. X:only-child以下是代码片段:divp:only-child color:red; 这个伪类用的比较少。在上面例子中匹配的是div下有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。以下是代码片段:Myparagraphhere. Twoparagraphstotal. Twoparagraphstotal. 在上面代码中第一个div中的段落p将会被匹配,而第二个div中的p则不会。 兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera29. X:only-of-type以下是代码片段:li:only-of-type font-weight:bold; 这个伪类匹配的是,在它上级容器下只有它一个子元素,它没有邻居元素。例如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设计师年度作品述职报告
- 人工智能在金融数据处理中的挑战与对策
- 国家关于政策法规的解读
- 交易自动化与监管合规
- 夜间施工油漆施工方案
- 人机协同在智能银行中的应用模式
- 山西省晋中市榆次第一中学校2025-2026学年高一下学期期末考试历史试题(文字版含答案)
- 山东省潍坊市坊子区2025-2026学年度第二学期期末质量检测七年级生物学试题(文字版含答案)
- 2026年广西桂林市龙胜县瓢里镇梅洞村社区工作人员考试模拟试题及答案
- 2026年辅警招聘考试试题库附参考答案(考试直接用)
- 2025年四川省水电投资经营集团有限公司招聘真题
- 2026北京朝阳区王四营乡人民政府编外辅助岗招聘2人笔试参考题库及答案详解
- 2026年文山州州属事业单位公开选调工作人员(37人)笔试备考试题及答案详解
- 2026贵州民航产业集团招聘试题及答案
- 2026年内蒙古自治区中考语文真题含解析
- 2026年党建知识竞赛题库含答案
- GA 1817.1-2026学校反恐怖防范要求第1部分:普通高等学校
- 民用建筑电线电缆防火技术规程DBJ-T 15-226-2021
- 《石家庄市消防设计审查疑难问题操作指南》修订版(2023.2.28)
- 失业保险待遇申请表范本
- 第九章 常见急症(第07节 脑卒中)
评论
0/150
提交评论