当我在接触到伪类的时候,静态伪类a:link引起了我的注意。
你a:link描述的是超链接在点击之前的样式,那和我直接在样式里给a标签添加样式有什么区别?怎么有一种a:link没什么卵用的感觉呢?
实际上两者还是有去别的。
首先还是先简单说一下常用的5个伪类。
伪类分为静态伪类和动态伪类。
静态伪类有两个,只能用于超链接。分别描述超链接在点击之前和点击之后。
:link 超链接点击之前
:visited 超链接点击之后
动态伪类有三个,理论上他们可以用于任何标签。
:hover '悬停'当鼠标放在当前标签上时
:active '激活'点鼠标点击却没有抬起时
:focus '焦点'当标签获得焦点时,一般是输入框被点击
最为规范的写法是要写link、visited和hover三个伪类,但是在前端攻城狮们的大量实践中发现,不写link和visited其实也非常的兼容(实际上这两个也没什么卵用),但是毕竟这么写是不规范的,如果追求代码的极致建议进行书写。另外link和visited是绑定的,不能只写其中一个。
好了言归正传,其实答案已经在上面说出来了。那就是静态伪类只能用于超链接。但是a标签所定义的不仅仅有超链接,其实还有锚点。锚点和超链接的区别是,锚点没有定义href属性。所以其实没有href属性的a标签根本就不是超链接。而a标签定义的样式控制的是所有的a标签,而通过静态伪类link来设置的样式只能作用于拥有href属性的超链接上,没有href属性的锚点a标签就不能生效啦。复制代码
转载于:https://juejin.im/post/5bb21da25188255c3f6bec0d