[快速入门前端 13] CSS 选择器 (3) Pseudo-Classes 伪类 - 动态伪类

Pseudo-Classes 伪类 (虚拟类别)

有别于我们之前提到的 Class 有点像我们自定义将元素分组,伪类是依照该元素的特殊状态进行分类,并以 : 为前缀符号在 CSS 中进行选择,例如 a:visited{} 是指使用者已点选过的 a 标籤。在伪类选择器中有很多不同的特殊状态,而这些状态又依性质分为动态伪类、目标伪类、语言伪类等等,接下来就让我们一一介绍吧!

伪类的写法为 选择器:伪类:符号与伪类间不可空格,且伪类不可单独存在,必须与其他选择器一起使用

Dynamic Pseudo-Classes 动态伪类

动态伪类是指透过使用者与网页互动的状态而产生的伪类类别,例如滑鼠移动到某元素时,该元素会拥有 hover 这个伪类。

选择器作用常用于搭配元素:link未访问过的连结超连结未被访问时的颜色只能用于 a 连结相关元素:visited已访问过的连结已访问的连结呈灰色只能用于 a 连结相关元素:hover滑鼠悬在至元素上时滑鼠滑过按钮或超连结的效果可用于所有元素:active点该击元素时点击时的效果可用于所有元素:focus该元素被 focus 时表单元素拥有焦点时的效果只能用于表单输入类元素

语法:

a:link { /* 未点过的 a 标籤连结 */    属性名: 属性值;}a:visited { /* 已点过的 a 标籤连结 */    属性名: 属性值;}a:hover { /* 滑鼠停在 a 元素上方时 */    属性名: 属性值;}a:active { /* 滑鼠点击 a 元素时 */    属性名: 属性值;}a:focus { { /* 网页焦点在 a 元素时 */    属性名: 属性值;}

範例:

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <style>        a:link {            color: blue;        }        a:visited {            color: gray;        }        a:hover {            color: green;        }        a:active {            color: red;        }    </style>  </head>  <body>    <a href="https://tw.news.yahoo.com/">看新闻</a>  </body></html>

在这个範例中,使用者的行为造成元素伪类发生改变:

页面刚载入时连结没有被点过,此时只有 :link 状态
http://img2.58codes.com/2024/20158509bpbObfYcpy.png滑鼠移动到 <a> 上,元素同时拥有 :link:hover 状态
http://img2.58codes.com/2024/20158509NKQS2QmIBy.png点选 <a> 但未放开,触发 :active,同时拥有 :link:hover:active 状态
http://img2.58codes.com/2024/201585090KsdUsCJRb.png放开滑鼠,等待页面跳转,此时拥有 :link:hover 状态
http://img2.58codes.com/2024/20158509RZ2MlGyJ3P.png页面跳转成功返回页面,连结已被点过,变为 :visited 状态
http://img2.58codes.com/2024/20158509diccBPBsbp.png

在使用动态伪类时因为经常出现某同时拥有多种状态的情况(如上範例),所以我们需要特别注意 CSS 中样式的先后顺序,避免出现冲突。

在动态伪类中,若需要同时设定多个样式,建议以 :link:visited:hover:active 为顺序

範例 ( :focus ):

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <style>      input:focus {        background-color: yellowgreen;      }    </style>  </head>  <body>    <h3>很多 input 框</h3>    <input type="text"><br/><br/>    <input type="text"><br/><br/>    <input type="text">  </body></html>

上一篇:[快速入门前端 12] CSS 选择器 (2) 複合选择器 — 后代选择器及兄弟选择器
下一篇:[快速入门前端 14] CSS 选择器 (4) Pseudo-Classes 伪类 - 结构伪类
系列文章列表:[快速入门前端] 系列文章索引列表


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章