《图解CSS3:核心技术与案例实战》——2.4节动态伪类选择器

简介:

本节书摘来自华章社区《图解CSS3:核心技术与案例实战》一书中的第2章,第2.4节动态伪类选择器,作者 大漠,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.4 动态伪类选择器
伪类选择器对于大家来说最熟悉的莫过于“:link”、“:visited”、“:hover”、“:active”,因为这些是大家平时常用到的伪类选择器。而CSS3的伪类选择器可以分成六种:动态伪类选择器、目标伪类选择器、语言伪类选择器、UI状态伪类选择器、结构伪类选择器和否定伪类选择器。
伪类选择器语法书写时和其他的CSS选择器写法有所区别,都以冒号(:)开头。例如:

E:pseudo-class {property:value}

其中E为HTML中的元素;pseudo-class是CSS的伪类选择器名称;property是CSS的属性;value为CSS属性值。
CSS3伪类选择器有什么功能?选定元素能带来什么便利?带着这些问题,依次学习CSS3伪类选择器的使用方法,首先是动态伪类选择器。

2.4.1 动态伪类选择器语法
动态伪类早在CSS中就有,其并不是CSS3才有的,动态伪类并不存在于HTML中,只有当用户和网站交互的时候才能体现出来。动态伪类包含两种,第一种是在链接中常看到的锚点伪类,另一种为用户行为伪类。其详细说明如表2-5所示。


6ba4007301785caf9453364d5d7fa5b539f07c75


c50d01d496da129e5e8df5c05329056e83a22153

2.4.3 实战体验:美化按钮
在众多网站上按钮在不同状态下效果不一,用以增强用户体验,这也是一种非常好的设计体验与细节。实现并不复杂,下面一起来看Twitter的Bootstrap如何美化按钮。
实现页面中按钮在不同行为状态下的样式风格,常见的行为状态如默认状态、悬浮状态、用户点击时状态和按钮获得焦点状态。
通过Twitter的Bootstrap制作的按钮效果如图2-14所示。
根据用户的行为不同,按钮效果可以分为:默认状态、悬浮状态、点击时状态、焦点状态和点击后状态,可以按照CSS3的动态伪选择器,在不同状态下给按钮赋予不同的样式风格。
根据这一设计思路,可以轻松美化按钮,看下面的示例代码,演示的效果如图2-14所示。


a9a1736c8d4d37a27632480a273048b908420668
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>使用动态伪类选择器美化按钮</title>
  <style type="text/css">
    .download-info {
      text-align: center;
    }
    /*默认状态下的按钮效果*/
    .btn {
      background-color: #0074cc;
      *background-color: #0055cc;
      /*CSS3渐变制作背景图片*/
      background-image: -ms-linear-gradient(top, #0088cc, #0055cc);
      background-image: -webkit-gradient(linear, 0 0, 0 100%,
                                               from(#0088cc), to(#0055cc));
      background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);
      background-image: -o-linear-gradient(top, #0088cc, #0055cc);
      background-image: -moz-linear-gradient(top, #0088cc, #0055cc);
      background-image: linear-gradient(top, #0088cc, #0055cc);
      background-repeat: repeat-x;
      display: inline-block;
      *display: inline;
      border: 1px solid #cccccc;
      *border: 0;
      border-color: #ccc;
      /*CSS3的色彩模块*/
      border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
      border-radius: 6px;
      color: #ffffff;
      cursor: pointer;
      font-size: 20px;
      font-weight: normal;
      filter: progid:dximagetransform.microsoft.gradient
                   (startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);
      filter: progid:dximagetransform.microsoft.gradient(enabled=false);
      line-height: normal;
      padding: 14px 24px;
      text-align: center;
      /*CSS3文字阴影特性*/
      text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
      text-decoration: none;
      vertical-align: middle;
      *zoom: 1;
    }
    /*悬浮状态下按钮效果*/  
    .btn:hover {
      background-position: 0 -15px;
      background-color: #0055cc;
      *background-color: #004ab3;
      color: #ffffff;
      text-decoration: none;
      text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
      /*CSS3动画效果*/
      -webkit-transition: background-position 0.1s linear;
      -moz-transition: background-position 0.1s linear;
      -ms-transition: background-position 0.1s linear;
      -o-transition: background-position 0.1s linear;
      transition: background-position 0.1s linear;
    }
    /*点击时按钮效果*/
    .btn:active {
      background-color: #0055cc;
      *background-color: #004ab3;
      background-color: #004099 \9;
      background-image: none;
      outline: 0;
      /*CSS3盒子阴影特性*/
      box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 
                             0 1px 2px rgba(0, 0, 0, 0.05);
      color: rgba(255, 255, 255, 0.75);
    }
    /*获得焦点按钮效果*/
    .btn:focus {
      outline: thin dotted #333;
      outline: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px;
    }
  </style>
</head>
<body>
  <div class="download-info">
    <a href="#" class="btn">View project on GitHub</a>
  </div>
</body>
</html>

这个美化按钮实例涉及一些CSS3的特性,此时不懂不要害怕,本书后续章节中会为大家逐一介绍。在此例中只需要知道哪些属性是CSS3的特性就足够了。同时实例中采用了“渐进增强,优雅降级”,在不支持CSS3的浏览器中,同样可以看到按钮在不同状态下的效果,只是失去了渐变、阴影等效果,但并不影响网站的功能与用户的体验,IE 8下的效果如图2-15所示。


b6cb76763d1d185d1e73aadb943621a9c514ed47
相关文章
|
19天前
|
XML 前端开发 数据格式
css核心组成部分包括选择器、属性和值。
【4月更文挑战第5天】css核心组成部分包括选择器、属性和值。
18 7
|
1月前
|
前端开发 JavaScript
css之伪类hover改变自身、子元素、其他元素的样式
css之伪类hover改变自身、子元素、其他元素的样式
28 0
|
1月前
|
前端开发 算法
CSS 选择器的优先级算法
在CSS中,选择器的优先级由四个级别和各级别的出现次数决定**。这四个级别分别为:行内选择符、ID选择符、类别选择符、元素选择符,优先级依次降低。
|
1月前
|
前端开发
CSS语言的选择器
CSS语言的选择器
|
1月前
|
前端开发
web前端开发---CSS基础选择器
web前端开发---CSS基础选择器
20 1
|
9天前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
17 1
|
21天前
|
前端开发
css伪类伪元素都有哪些区别是什么
css伪类伪元素都有哪些区别是什么
8 0
N..
|
30天前
|
前端开发 UED
CSS选择器
CSS选择器
N..
9 0
N..
|
30天前
|
前端开发 UED
CSS伪类和伪元素
CSS伪类和伪元素
N..
7 0
|
1月前
|
前端开发
CSS3的几个变形案例……
CSS3的几个变形案例……
17 0