分享更有价值
被信任是一种快乐

如何进行常用CSS选择器的解析

文章页正文上

今天就跟大家聊聊有关如何进行常用CSS选择器的解析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。1. *星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中所有元素的margin和padding设置为0。 *选择符也可以在子选择器中使用。上面的代码中会应用于id为container元素的所有子元素中。 除非必要,我不建议在页面中过的的使用星状选择符,因为他的作用域太大,相当耗浏览器资源。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera2. #X井号作用域有相应id的元素。id是我们最常用的css选择器之一。id选择器的优势是精准,高优先级(优先级基数为100,远高于class的10), 作为javascript脚本钩子的不二选择,同样缺点也很明显优先级过高,重用性差,所以在使用id选择器前,我们***问下自己,真的到了非用id选择 器的地步? 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera3. .X这是一个class(类)选择器。class选择器与id选择器的不同是class选择器能作用于期望样式化的一组元素。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera4. X Y这也是我们最常用的一种选择器——后代选择器。用于选取X元素下子元素Y,要留意的点是,这种方式的选择器将选取其下所有匹配的子元素,无视层级,所以有 的情况是不宜使用的,比如上述的代码去掉li下的所有a的下划线,但li里面还有个ul,我不希望ul下的li的a去掉下划线。使用此后代选择器的时候要 考虑是否希望某样式对所有子孙元素都起作用。这种后代选择器还有个作用,就是创建类似命名空间的作用。比如上述代码样式的作用域明显为li。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera5. X标签选择器。使用标签选择器作用于作用域范围内的所有对应标签。优先级仅仅比*高。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera6. X:visited和X:link使用:link伪类作用于未点击过的链接标签。:hover伪类作用于点击过的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera7. X+Y相邻选择器,上述代码中就会匹配在ul后面的***个p,将段落内的文字颜色设置为红色。(只匹配***个元素) 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera8. X>Y子选择器。与后代选择器X Y不同的是,子选择器只对X下的直接子级Y起作用。在上面的css和html例子中,div#container>ul仅对container中最近一级的ul起作用。从理论上来讲X > Y是值得提倡选择器,可惜IE6不支持。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera9. X ~ Y相邻选择器,与前面提到的X+Y不同的是,X~Y匹配与X相同级别的所有Y元素,而X+Y只匹配***个。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera10. X[title]属性选择器。比如上述代码匹配的是带有title属性的链接元素。兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera11. X[title=”foo”]属性选择器。 上面的代码匹配所有拥有href属性,且href为http://css9.net的所有链接。这个功能很好,但是多少又有些局限。如果我们希望匹配href包含css9.net的所有链接该怎么做呢?看下一个选择器。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera12. X[title*=”css9.net”]属性选择器。正如我们想要的,上面代码匹配的是href中包含”css9.net”的所有链接。兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera13. X[href^=”http”]属性选择器。上面代码匹配的是href中所有以http开头的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera13. X[href$=”.jpg”]属性选择器。在属性选择器中使用$,用于匹配结尾为特定字符串的元素。在上面代码中匹配的是所有链接到扩展名为.jpg图片的链接。(注意,这里仅仅是.jpg图片,如果要作用于所有图片链接该怎么做呢,看下一个选择器。)兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera14. X[data-*=”foo”]在上一个选择器中提到如何匹配所有图片链接。如果使用X[href$=”.jpg”]实现,需要这样做:看上去比较麻烦。另一个解决办法是为所有的图片链接加一个特定的属性,例如‘data-file’html代码这样所有链接到图片的链接字体颜色为红色。兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera15. X[foo~=”bar”]属性选择器。属性选择器中的波浪线符号可以让我们匹配属性值中用空格分隔的多个值中的一个。看下面例子:html代码css代码在上面例子中,匹配data-info属性中包含“external”链接的字体颜色为红色。匹配data-info属性中包含“image”的链接设置黑色边框。兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera17. X:checkedchecked伪类用来匹配处于选定状态的界面元素,如radio、checkbox。上面代码中匹配的是所有处于选定状态的单选radio,设置1px的黑色边框。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera18. X:after和X:before这两个伪类与content结合用于在元素的前面或者后面追加内容,看一个简单的例子:上面的代码实现了在h2标题的后面显示一张图片。我们也经常用它来实现清除浮动,写法如下:19. X:hover:hover伪类设定当鼠标划过时元素的样式。上面代码中设定了div划过时的背景色。需要注意的是,在ie 6中,:hover只能用于链接元素。这里分享一个经验,在设定链接划过时出现下滑线时,使用border-bottom会比text-decoration显得更漂亮些。代码如下:兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera20. X:not(selector)否定伪类选择器用来在匹配元素时排除某些元素。在上面的例子中,设定除了id为container的div元素字体颜色为blue。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera21. X::pseudoElement::伪类用于给元素片段添加样式。比如一个段落的***个字母或者***行。需要注意的是,这个::伪类只能用于块状元素。下面的代码设定了段落中***个字母的样式:下面的代码中设定了段落中***行的样式:兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera(IE6竟然支持,有些意外啊。)22. X:nth-child(n)这个伪类用于设定一个序列元素(比如li、tr)中的第n个元素(从1开始算起)的样式。在上面例子中,设定第三个列表元素li的字体颜色为红色。看一个更灵活的用法,在下面例子中设定第偶数个元素的样式,可以用它来实现隔行换色:兼容浏览器:IE9+、Firefox、Chrome、Safari23. X:nth-last-child(n)与X:nth-child(n)功能类似,不同的是它从一个序列的***一个元素开始算起。上面例子中设定倒数第二个列表元素的字体颜色。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera24. X:nth-of-type(n)与X:nth-child(n)功能类似,不同的是它匹配的不是某个序列元素,而是元素类型。例如上面的代码设置页面中出现的第三个无序列表ul的边框。兼容浏览器:IE9+、Firefox、Chrome、Safari25. X:nth-last-of-type(n)与X:nth-of-type(n)功能类似,不同的是它从元素***一次出现开始算起。上面例子中设定倒数第三个无序列表的边框兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera26. X:first-child:first-child伪类用于匹配一个序列的***个元素。我们经常用它来实现一个序列的***个元素或***一个元素的上(下)边框,如:兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera27. X:last-child与:first-child类似,它匹配的是序列中的***一个元素。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera28. X:only-child这个伪类用的比较少。在上面例子中匹配的是div下有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。Myparagraphhere.Twoparagraphstotal.Twoparagraphstotal.在上面免费云主机、域名代码中***个div中的段落p将会被匹配,而第二个div中的p则不会。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera29. X:only-of-type这个伪类匹配的是,在它上级容器下只有它一个子元素,它没有邻居元素。例如上面代码匹配仅有一个列表项的列表元素。兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera30. X:first-of-type:first-of-type伪类与:nth-of-type(1)效果相同,匹配出现的***个元素。我们来看个例子:Myparagraphhere.在上面的html代码中,如果我们希望仅匹配List Item 2列表项该如何做呢:方案一:方案二:方案三:兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera。如果你正在使用老版本的浏览器,如IE 6,在使用上面css选择器时一定要注意它是否兼容。不过,这不应成为阻止我们学习使用它的理由。在设计时,你可以参考浏览器兼容性列表,也可以通过脚本手段让老版本的浏览器也支持它们。另一点,我们在使用javascript类库的选择器时,例如jquery,要尽可能的使用这些原生的css3选择器,因为类库的选择器引擎会通过浏览器内置解析它们,这样会获得更快的速度。看完上述内容,你们对如何进行常用CSS选择器的解析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注云技术行业资讯频道,感谢大家的支持。

相关推荐: jquery中如何隐藏元素

这篇文章给大家分享的是有关jquery中如何隐藏元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 方法:1、免费云主机、域名使用“$(选择器).css(‘display’,’none’);”;2、使用“$(选择器).attr(“d…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册