作者: 托马斯翻滚 | 来源:发表于2018-11-12 15:25 被阅读0次

在CSS选择器中,有那么一些用于实现特殊效果的选择器,我们称之为伪类,具体来说我也说不太清除,这里就只能简单的和大家谈谈我的看法。

大部分时候选择使用伪类是为了实现一些动态的效果,即在某些操作后使用别的CSS样式,有点类似于触动一些方法去改变CSS样式,甚至在很多的课程中,很多曾经的伪类都推荐通过自定义方法改变CSS内容来实现。这就是我个人对伪类的一些理解。

但今天还不谈这些,我想给大家讲个例子,方便大家来了解伪类,即标题中提到的<a>标签的伪类。我觉得这是一个很好的例子,因为这个例子在实际的开发中可以说有很广泛的应用,从而也导致了很多的笔试中喜欢去考察这个点,这里我就以此为例讲一讲。

<a>标签主要涉及四个伪类,分别是以下四个:

  • :link //正常样式,即未操作前的样式
  • :visited //已经访问过的样式
  • :hover //鼠标放置在上面的样式
  • :active //触发时的样式

以上就是就是<a>标签上常用的四个伪类,其中所能选择去涉及的内容就更是多种多样了,这里我就跳出两个较为常用内容color(字体颜色)和text-decoration(下划线)给大家个示例看一下吧:

a:link{
  color: #000;
  text-decoration: underline;
}

a:visited{
  color: red;
  text-decoration: none;
}

a:hover{
  color: blue;
  text-decoration: none;
}

a:active{
  color: green;
  text-decoration: none;
}

上面就是个很基础的例子,但我觉得对于理解伪类是一个很不错的内容,大家可以自己去感受一下,写完对照上面所提到的功能去具体试一下。

这里给大家提个细节,大家思考一个问题,就是上面我所写的样式是有一定顺序的,这个顺序有没有影响呢?换个顺序结果会不会产生变化?如果时间够的话,我推荐大家亲自动手试一试再来回答这个问题。

这里我就先告诉大家答案了,上面的顺序是很重要的,如果改变了你会发现有的变化会产生缺失,部分效果你是会看不见的,具体多少个效果呢?这个就要视情况而定了,最极端的例子是你吧:link放最后,你就会惊喜的发现所有的例子都没用了。

这是为什么呢?这就涉及到CSS样式的优先级问题了,当某个元素有多个样式,且样式中存在某个或某几个属性相同但属性值不同的情况时,就会产生冲突,而冲突产生了我们就需要去处理,即只能选择某一个值去实现,在CSS中默认的处理方式是选择靠后的那个样式中的属性,就像往桌子上放书的后面面放上来的会压住前面放上来的,当然也存在特例,比如!important,你可以在某条属性后加上一条这个,这个属性就会脱颖而出了,具体用法和一些兼容性大家自己去了解一下吧。

上面讲了一些原理,但其实这还不是全部原因的,接下来我简单和大家分析回到我们这个例子中为什么会这样吧。伪类所设置的样式其实我们可以理解为正常情况下是不存在的,只有在一定条件下触发才对出现,而如果我们把:link放最下面,那别的样式触发时也是会被它覆盖掉的,从某种角度上来说,伪类是只有开没有关的,可能这样说有点绝对,但在这个例子李基本是这样的,他通过打开,然后利用一定的顺序覆盖掉样式,从而实现变化,故当你顺序不对的时候,就会导致一些错误。

至于这个顺序,我不推荐大家去硬背,而是你搞懂我上面所提的内容,理解性的去对应情况分析,相信你能够很轻松的对这个内容形成有效的记忆,就算记不下来,到时候自己推问题应该也不大的。伪类这个内容随着技术的变革已经越来越复杂,想要完全搞懂我觉得是很困难的,这里就简单的和大家分享一些我的理解,希望大家能有所收获。

相关文章

  • 浅谈伪类-以标签为例子

    在CSS选择器中,有那么一些用于实现特殊效果的选择器,我们称之为伪类,具体来说我也说不太清除,这里就只能简单的和大...

  • 1-2-5【CSS核心样式】初识伪类选择器

    本节课为大家以a标签为例,初步认识伪类选择器~ 文章内容输出来源:拉勾教育大前端就业集训营 1.伪类 概述:伪类和...

  • 伪类的粗略解析,记忆

    伪类的特性:(样式或者标签):伪类名称(first-child,last-child) a:link{}只有当a标...

  • CSS进阶知识点--CSS3伪类选择器和伪元素

    伪类选择器 动态伪类(锚点伪类、用户行为伪类) UI元素状态伪类 CSS3结构伪类 否定选择器 伪元素 动态伪类 ...

  • 伪类

    伪类选择器:和类选择器一样,也是给对应的标签设置样式,伪类选择器的样式要显示出来,必须要满足一下几个条件(a代表标...

  • H5 入门标签

    按照上下顺序---(常用标签为黑体) 1:<!DOCTYPE> : 例子 :代表当...

  • 第十二章 高级选择器

    伪类和伪元素区别 伪类一个冒号,伪元素两个冒号 一,伪类选择器 伪类性质: 伪类性质:加冒号不会对页面产生布局结...

  • Spring5——Spring事务传播特性 @Transacti

    事物注解方式:@Transactional 当标于类前时,标示类中所有方法都进行事物处理,例子: 当类中某些方法不...

  • jQuery添加/移除伪类(hover)

    伪类演示: 移除伪类:removeClass(hover) 结果是同上,没有任何变化。 :hover是伪类,伪类是...

  • spring @Transactional注解参数详解

    事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理,例子: 1@Tran...

网友评论