CSS伪类——动态伪类(link/visited/hover/active/focus)

伪类的种类能够分为一下几个类别:css

  • 动态伪类(link/visited等)
  • 目标伪类(:target)
  • 语言伪类(:lang)
  • UI状态伪类(disabled/checked/enabled)
  • 结构化伪类(nth等)
  • 对立面伪类(not。。) 本文主要讲一下动态伪类

动态伪类

定义在连接上面的伪类

  • link:用来定义连接未被访问的样式
  • visited:用来定义连接已经被访问过的样式(默认状态下是跟踪了用户的行为)

定义用户行为的伪类(显示顺序hover-focus-active)

  • hover:用来定义用户用鼠标划过对应的元素,可是未激活显示的样式
  • focus:用来定义一个元素自己具有焦点(接受键盘、鼠标、form的输入等)以后,显示的样式
  • active:用来定义用户按下鼠标后,可是并未离开时候的样式,一般是左侧的鼠标

注意⚠️

  • 一、定义顺序:按照link-visited-hover-active的顺序设置对应的样式,才会有效
  • 二、对于div是没有focus的行为的,由于一个div无法用鼠标得到焦点,可是能够经过设置div的tabIndex
    • tabIndex为负值,表示元素能够被聚焦,可是不能经过tab键导航到
    • tabIndex为0,能够经过tab键导航到,相对顺序根据DOM的元素
    • tabIndex为正值,能够经过tab键导航到,它的相对顺序按照tabindex 的数值递增而滞后获焦
  • 三、一个元素可能处于不一样的伪类状态,好比同时处于visited和active;处于同一种状态的伪类并无优先级

移动端和PC端的区别

  • 对于hover,移动端没有hover,hover和active会合并在一块儿,对于键盘设备,hover这个状态不会存在

浏览器的兼容性

移动端safari浏览器不支持focus和active浏览器

参考资料

一、动态伪类
二、伪类的兼容性app

相关文章
相关标签/搜索