CSS选择器总结,前端插件化面试

本文详细总结了CSS选择器的使用,包括浏览器兼容性、语言伪类、CSS3伪类和结构伪类,如`:target`、`:nth-child`等,并通过实例解释了如何在前端开发中应用这些选择器。此外,还讨论了否定选择器`:not()`以及伪元素如`::first-line`和`::first-letter`,并提到了在不同浏览器中的支持情况。对于前端开发者来说,这些知识在面试和实际项目中都非常关键。
摘要由CSDN通过智能技术生成

代码laycode - v1.1

让我们来看一看另一个例子:比如你想让你的博客的侧栏的H2标签都有个顶部边距,以将标题和它们前面的内容区分开来,但是第一个h2不需要,你就可以使用下面的代码:

#sidebar > h2 { margin-top: 10px; }   #sidebar > h2:first-child { margin-top: 0; }

  1. 1

代码laycode - v1.1

浏览器兼容性

IE6 不支持 :first-child 伪类。根据伪类应用到的设计的不同,它或许不会成为关注的主要问题。比如,如果你使用:first-child 选择器来移除标题或段落上的头部或底部的间距,你的布局在IE6中不会坏掉,它只会看起来有些不同。但是如果你使用:first-child选择器从一个,比如浮动元素,移除左边距或右边距,将会让你的设计乱掉。

语言伪类

语言伪类:lang(),允许你匹配一个基于它的语言的元素。

你如,你想让你的网站的某个特定的链接根据页面的语言有不同的背景颜色:

:lang(en) > a#flag { background-image: url(english.gif); }   :lang(fr) > a#flag { background-image: url(french.gif); }

  1. 1

  2. 2

代码laycode - v1.1

这个选择器将会匹配相关的链接——如果页面的语言等于“en”或“fr”,或者以“en”或“fr”开头并在后面带个连字符“-”的话。

浏览器兼容性

不幸的是,只有IE浏览器中只有IE8支持该选择器,其它的主要浏览器都支持该伪类选择器。

5. CSS 3 伪类

:target

当你使用锚点(片段标识符 fragment identifier)的时候,比如,http://www.smashingmagazine.com/2009/08/02/bauhaus-ninety-years-of-inspiration/#comments,这“#comments”就是一个片段标识符,你就可以使用:target伪类来控制目标的样式。

举个例子,比如你有一个很长的使用了很多文字和h2标题的页面,然后在页面的头部有一个对这些标题的索引。如果在点击索引内的某个链接时,相应的标题以某种方式高亮,然后滚动到相应的位置,对读者就会很有用。很简单。

h2:target { background: #F2EBD6; }

  1. 1

代码laycode - v1.1

浏览器兼容性

这一次,IE浏览器完全不支持:target伪类,另一个小问题就是Opera 在使用“前进”和后退按钮时不支持该选择器。但是其它的各个主流浏览器都支持该选择器。

UI元素状态伪类

有些HTML元素有enable 或disabled 状态(比如,文本输入框)和 checked 或unchecked 状态(单选按钮和复选框)。这些状态就可以使用:enabled、:disabled 或:checked 伪类来分别定位。

那么你就会想,如果任意一个禁用的(disabled)文本框应该使用浅灰色的背景和虚线边框:

input:disabled { border:1px dotted #999; background:#F2F2F2; }

  1. 1

代码laycode - v1.1

你也可能会想让所有选中的复选框有个左边距(这样就可以在众多的复选框中很容易认出来):

input[type=”checkbox”]:checked { margin-left: 15px; }

  1. 1

代码laycode - v1.1

浏览器兼容性

所有的主流浏览器,除了我们常常不报希望的IE系列浏览器,都支持UI元素状态伪类。如果你考虑只是添加附加级别的细节和增强网站的可用性,这个仍然是可以采用的。

6. CSS 3 结构伪类

:nth-child

:nth-child()伪类允许你定位某个父级元素的一个或多个特定的子元素.

你可以通过定义它的值为一个整数来定位某个单个子元素:

ul li:nth-child(3) { color: red; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值