CSS常用的选择器,前端开发中遇到最难的问题

本文详细介绍了CSS3中的各种选择器(如nth-child,last-child,first-child,only-child等)以及伪类(如:hover,:active等),展示了它们在页面样式控制中的应用,并强调了不同浏览器的兼容性问题。
摘要由CSDN通过智能技术生成

a[data-info~=“external”] {

color: red;}

/ And which contain the value “image” /

a[data-info~=“image”] {

border: 1px solid black;}

17. X:checked


input[type=radio]:checked {

border: 1px solid black; }

上面这个伪类写法可以定位那些被选中的单选框和多选框,就是这么简单。

兼容性

  • IE9+

  • Firefox

  • Chrome

  • Safari

  • Opera

18. X:after


beforeafter这俩伪类。好像每天大家都能找到使用它们的创造性方法。它们会在被选中的标签周围生成一些内容。

当使用.clear-fix技巧时许多属性都是第一次被使用到里面的。

.clearfix:after {

content: “”;

display: block;

clear: both;

visibility: hidden;

font-size: 0;

height: 0;

}

.clearfix {

display: inline-block;

_height: 1%;

}

上面这段代码会在目标标签后面补上一段空白,然后将它清除。这个方法你一定得放你的聚宝盆里面。特别是当overflow:hidden方法不顶用的时候,这招就特别管用了。

根据 CSS3 标准规定,可以使用两个冒号::。然后为了兼容性,浏览器也会接受一个双引号的写法。其实在这个情况下,用一个冒号还是比较明智的。

兼容性

  • IE8+

  • Firefox

  • Chrome

  • Safari

  • Opera

19. X:hover


div:hover {

background: #e3e3e3; }

不用说,大家肯定知道它。官方的说法是user action pseudo class.听起来有点儿迷糊,其实还好。如果想在用户鼠标飘过的地方涂点儿彩,那这个伪类写法可以办到。

注意旧版本的IE只会对加在锚点a标签上的:hover伪类起作用。

通常大家在鼠标飘过锚点链接时候加下边框的时候用到它。

a:hover {

border-bottom: 1px solid black;

}

专家提示:​border-bottom:1px solid black​;比​text-decoration:underline​;要好看很多。

兼容性

  • IE6+(IE6只能在锚点标签上起作用)

  • Firefox

  • Chrome

  • Safari

  • Opera

20. X:not(selector)


div:not(#container) {

color: blue;

}

取反伪类是相当有用的,假设我们要把除idcontainer之外的所有div标签都选中。那上面那么代码就可以做到。

或者说我想选中所有出段落标签之外的所有标签。

:not§ {

color: green;

}

兼容性

  • IE9+

  • Firefox

  • Chrome

  • Safari

  • Opera

21. X::pseudoElement


p : : first-line {

font-weight: bold;

font-size:1.2em;

}

我们可以使用::来选中某标签的部分内容,如第一段,或者是第一个字没有。但是记得必须使用在块式标签上才起作用。

伪标签是由两个冒号 ​::​ 组成的。

定位第一个字

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;

}

::first-line相似,会选中段落的第一行 。

为了兼容性,之前旧版浏览器也会兼容单冒号的写法,例如:first-line,:first-letter,:before,:after.但是这个兼容对新介绍的特性不起作用。

兼容性

  • IE6+

  • Firefox

  • Chrome

  • Safari

  • Opera

22. X:nth-child(n)


li:nth-child(3) {

color: red;

}

还记得我们面对如何取到推跌式标签的第几个元素是无处下手的时光么,有了nth-child那日子就一去不复返了。

请注意nth-child接受一个整形参数,然后它不是从0开始的。如果你想获取第二个元素那么你传的值就是li:nth-child(2).

我们甚至可以获取到由变量名定义的个数个子标签。例如我们可以用li:nth-child(4n)去每隔3个元素获取一次标签。

兼容性

  • IE9+

  • Firefox3.5+

  • Chrome

  • Safari

23. X:nth-last-child(n)


li:nth-last-child(2) {

color: red;

}

假设你在一个ul标签中有N多的元素,而你只想获取最后三个元素,甚至是这样li:nth-child(397),你可以用nth-last-child伪类去代替它。

这个技巧可以很正确的代替第16个TIP,不同的就是它是从结尾处开始的,倒回去的。

兼容性

  • IE9+

  • Firefox3.5+

  • Chrome

  • Safari

  • Opera

24. X:nth-of-type(n)


ul:nth-of-type(3) {

border: 1px solid black;

}

曾几何时,我们不想去选择子节点,而是想根据元素的类型来进行选择。

想象一下有5个ul标签。如果你只想对其中的第三个进行修饰,而且你也不想使用id属性,那你就可以使用nth-of-type(n)伪类来实现了,上面的那个代码,只有第三个ul标签会被设置边框。

兼容性

  • IE9+

  • Firefox3.5+

  • Chrome

  • Safari

25. X:nth-last-of-type(n)


ul:nth-last-of-type(3) {

border: 1px solid black;

}

同样,也可以类似的使用nth-last-of-type来倒序的获取标签。

兼容性

  • IE9+

  • Firefox3.5+

  • Chrome

  • Safari

  • Opera

26. X:first-child


ul li:first-child {

border-top: none;

}

这个结构性的伪类可以选择到第一个子标签,你会经常使用它来取出第一个和最后一个的边框。

假设有个列表,每个标签都有上下边框,那么效果就是第一个和最后一个就会看起来有点奇怪。这时候就可以使用这个伪类来处理这种情况了。

兼容性

  • IE7+

  • Firefox

  • Chrome

  • Safari

  • Opera

27. X:last-child


ul > li:last-child {

color: green;

}

first-child相反,last-child取的是父标签的最后一个标签。

例如

标签

List Item

List Item

List Item

这里没啥内容,就是一个了 List。

ul {

width: 200px;

background: #292929;

color: white;

list-style: none;

padding-left: 0;

}

li {

padding: 10px;

border-bottom: 1px solid black;

border-top: 1px solid #3c3c3c;

}

上面的代码将设置背景色,移除浏览器默认的内边距,为每个li设置边框以凸显一定的深度。

背景色

兼容性

  • IE9+

  • Firefox

  • Chrome

  • Safari

  • Opera

28. X:only-child


div p:only-child {

color: red;

}

说实话,你会发现你几乎都不会用到这个伪类。然而,它是可用的,有会需要它的。

它允许你获取到那些只有一个子标签的父标签。就像上面那段代码,只有一个段落标签的div才被着色。

My paragraph here.

Two paragraphs total.

Two paragraphs total.

上面例子中,第二个div不会被选中。一旦第一个div有了多个子段落,那这个就不再起作用了。

兼容性

  • IE9+

  • Firefox

  • Chrome

  • Safari

  • Opera

29. X:only-of-type


li:only-of-type {

font-weight: bold;

}

结构性伪类可以用的很聪明。它会定位某标签只有一个子标签的目标。设想你想获取到只有一个子标签的ul标签?

使用ul li会选中所有li标签。这时候就要使用only-of-type了。

ul > li:only-of-type {

font-weight: bold;

}

兼容性

  • IE9+

  • Firefox 3.5+

  • Chrome

  • Safari

  • Opera

30. X:first-of-type first-of-type

伪类可以选择指定标签的第一个兄弟标签。

测试

My paragraph here.

List Item 1

List Item 2

List Item 3

List Item 4

来你把List Item 2取出来,如果你已经取出来或者是放弃了,来继续。

解决办法1

办法很多,我们看一些比较方便的。首先是first-of-type

ul:first-of-type > li:nth-child(2) {

font-weight: bold;

}

找到第一个ul标签,然后找到直接子标签li,然后找到第二个子节点。

解决办法2

另一个解决办法就是邻近选择器。

p + ul li:last-child {

font-weight: bold;

}

这种情况下,找到p下的直接ul标签,然后找到它的最后一个直接子标签。

解决办法3

我们可以随便玩耍这些选择器。来看看:

ul:first-of-type li:nth-last-child(1) {

font-weight: bold;

}

先获取到页面上第一个ul标签,然后找到最后一个子标签。

兼容性

  • IE9+

  • Firefox 3.5+

  • Chrome

  • Safari

  • Opera

结论


我目前是在职前端开发,如果你现在也想学习前端开发技术,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我所在的前端学习交流裙:前面是 4213 后面是 74697。里面聚集了一些正在自学前端的初学者,转行者,初阶者,我这里也有我做前端技术这段时间整理的一些前端学习思维导图,前端大厂面试题,前端开发源码教程,PDF文档书籍教程,需要的话都可以找裙猪获取。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

last-child {

font-weight: bold;

}

这种情况下,找到p下的直接ul标签,然后找到它的最后一个直接子标签。

解决办法3

我们可以随便玩耍这些选择器。来看看:

ul:first-of-type li:nth-last-child(1) {

font-weight: bold;

}

先获取到页面上第一个ul标签,然后找到最后一个子标签。

兼容性

  • IE9+

  • Firefox 3.5+

  • Chrome

  • Safari

  • Opera

结论


我目前是在职前端开发,如果你现在也想学习前端开发技术,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我所在的前端学习交流裙:前面是 4213 后面是 74697。里面聚集了一些正在自学前端的初学者,转行者,初阶者,我这里也有我做前端技术这段时间整理的一些前端学习思维导图,前端大厂面试题,前端开发源码教程,PDF文档书籍教程,需要的话都可以找裙猪获取。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-9cz1pCcQ-1710871022816)]
[外链图片转存中…(img-Jxtp80xG-1710871022817)]
[外链图片转存中…(img-eJc2bjEt-1710871022818)]
[外链图片转存中…(img-4sRDHHKz-1710871022818)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-tnoVhIsE-1710871022819)]

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值