css基础教程属性篇之二(2)
作者:Jorux 来源:jorux.com 发布时间:2008-07-25 19:23:00
以下内容不再属于css属性, 但暂时归入属性篇中.
链接(link): 在html里用<a></a>标明链接, 在css里用a作为链接的选择器名.
css的缺点和它的优点一样明显, 其最大的缺陷就在于网页的动态表现不足, 在这一点上和Flash差距尤为突出.
好在css还是留了一手, 那就是链接的伪类选择器, 所谓伪类就是指依赖于浏览器或是用户的状态. 对于链接来讲, 存在link, hover, visited, active四种状态, 即四种伪类选择器: a:link(存在链接, 但无鼠标动作), a:visited(被点击或访问过), a:hover(鼠标悬停于链接上时的状态), a:active(鼠标点击与释放之间的状态).
css便是以这几个伪类选择器实现了其为数不多的动态效果. 目前最为常用的就是导航条和按钮的动态显示. 以下用一个动态按钮的实例来说明这四个伪类选择器.
1. 首先准备一副图片(button.png), 如下图(160px*240px), 其由四幅160px*60px的小图自上而下排列而成.
2. 接着需要往你的本地调试文件夹(调试环境的建立方法参考属性(1)中的说明)的index.htm中写入html代码, 如下:
<div id=”button”><a href=”#”></a></div>
3. 在style.css中写入以下代码:
body {background-color: #FFF;}
#button a{
width:160px;
height:60px;
display:block;
background:url(../image/button.png) no-repeat 0 0;
}
#button a:link { background-position:0 0;}
#button a:hover { background-position:0 -60px;}
#button a:active { background-position:0 -120px;}
#button a:visited { background-position:0 -180px;}
可以看到如 Example2 的效果.
4. 代码解释:
<div id=”button”><a href=”#”></a></div>
在index.htm写入如上代码, 目的在于插入一个id名为”button”的盒子(div),且其内含有一个链接<a href=”#”></a>.
#button a{
width:160px;
height:60px;
display:block;
background:url(../image/button.png) no-repeat 0 0;
}
在css文件中写入以上代码, 目的在于控制盒子中链接的表现, 通过名为”#button a”的选择器来实现. 链接的宽高为160px*60px, 背景为图片button.png.
在这强调一下display:block的作用. 由于在html文件中,链接<a href=”#”> </a>中没有任何的内容(content)填充, 如果没有声明”display:block”, 那么即使声明了选择器”#button a”的宽高, 浏览器也会因为html文件中没有内容而无法显示链接. 所以”display:block”在这里的作用就在于强制浏览器显示没有内容填充的链接.
#button a:link { background-position:0 0;}
用伪类选择器a:link声明链接的背景图片在左上角显示, 即距离左边和顶边分别0, 0. 但由于已经在选择器 “#button a”中声明了图片位置, 此代码可有可无.
#button a:hover { background-position:0 -60px;}
#button a:active { background-position:0 -120px;}
#button a:visited { background-position:0 -180px;}
用伪类选择器a:hover声明鼠标悬停时, 背景图片上移60px, 而使排在第二位的绿色小图片显示出来;
用伪类选择器a:active声明在鼠标点击与释放之间的状态时, 背景图片上移120px, 而使排在第三位的红色小图片显示;
用伪类选择器a:visited声明在链接被点击或访问过时, 背景图片上移180px, 而使排在第四位的灰色小图片显示;
现在你基本了解了css动态按钮的制作过程, 但以上css代码还存在一个严重的缺陷, 相信你会很快发现问题所在——这个按钮居然是一个”一次性按钮“, 也就是说这个按钮在点击第一次后, 就一直显示那个灰色小图片, 你能想出解决方法吗? 请在留言中指出.
答案会在下一篇文章中说明! 下篇将会涉及css的核心内容——盒子模型, margin和padding属性.(正文完)


猜你喜欢
- ASP日期和时间函数我们经常会用到,本文列出了12个常用的asp日期和时间函数的语法及用法以作备忘!1.Now Now() 取
- 本文实例为大家分享了python实现最大优先队列的具体代码,供大家参考,具体内容如下说明:为了增强可复用性,设计了两个类,Heap类和Pri
- 本文实例讲述了Python实现读取文件最后n行的方法。分享给大家供大家参考,具体如下:# -*- coding:utf8-*-import
- 前言from collections import namedtuple()命名元祖的工厂函数:在python中,collections 包
- 1. select模块针对select,要先理解其他几个概念:文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引
- (需要安装psutil 用来获取服务器资源,以及pymongo驱动)#pip install psutil#pip install pymo
- 本博客可能没有那么规范,环境之类的配置。只是让你直接开始编程写python。至于各种配置网络上有多种方法。本文仅代表我的观点的一种方法。电脑
- 1、Pinia是什么Pinia是一个vue的状态管理方案,是vuex团队成员开发,实现了很多vuex5的提案,更加地轻量化且有devtool
- 一、前端工具vscode1.1、概述前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以
- 只需要在fckeditor\editor\filemanager\connectors\asp文件夹下的commands.asp修改一下即可
- 前言:前面的一章我们展示了选择结构的三种基本形式,并给出了实例演示,但是大家在编写代码过程中仍然要注意一些细节,尤其是代码块的缩进,这对if
- 特征选择时困难耗时的,也需要对需求的理解和专业知识的掌握。在机器学习的应用开发中,最基础的是特征工程。——吴恩达1.数据预处理数据预处理需要
- 大家都知道对于一个页面来说,最基本的结构呢就是<html> <head> <!-- 头部信息内容区域
- MaxPooling1D和GlobalMaxPooling1D区别import tensorflow as tffrom tensorflo
- 在 EeePC 上装了个 Mac OS X,相应的开发工具也选择了 Coda。在
- 索引是加速表内容访问的主要手段,特别对涉及多个表的连接的查询更是如此。这是数据库优化中的一个重要内容,我们要了解为什么需要索引,索引如何工作
- 通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为https://github.com/Geospatial
- 一、功能简述正是微博如火如荼的时节,其中各个微博的分享功能是网站推广产品的好东东啊,此时如何方便快捷的使用微博的分享功能就显得比较重要了。我
- 前言本文给大家深入的解答了关于Python的11道基本面试题,通过这些面试题大家能对python进一步的了解和学习,下面话不多说,来看看详细
- 前言本文主要介绍的是关于python中open函数用法的相关资料,用法如下:name = open('errname.txt'