分享

纯css RollOver 效果

 李立丰 2008-12-12

本文档改编自http://www./eric/css/edge/popups/demo.html .原文较长。我简化了一下,并且把rollover img的效果合并在一个文档中。只用来说明用纯css实现rollover的效果(见左侧的导航条)。原文是用了popups的字眼。我所理解的popup一般表示弹出框,跟此处的效果不符,故改成rollover来表述。

延伸思考:这种pure css popup效果的通用性如何?是否同时实现了机器(搜索引擎)友好和对人友好呢?要如何实现图文混排的rollover效果,请各位自己琢磨了。

Hands-on: 实现

看看左侧的mouse rollover效果就可以了。

申明: no 不需要任何javascript就可以实现。

如何实现!

这里, 说明文字,都被放在了span标签中。比如这样:

<a href="http://tristones./">石头札记<span>Promote relationship between human and computer 陈磊的blog</span></a>

为了防止说明文字在载入页面的时候就被显示:

div#links a span {display: none;}

就这样, span部分就从页面解析流中被完全提出了. 举一反三,我们可以把 display 换成block 位置标签等, 把他们跟一个超链接的mouse rollover联系起来. 下面两行是rollover效果定义的代码:

div#links a:hover span {
display: block;
position: absolute;
top: 200px;
left: 0;
width: 125px;
padding: 5px;
margin: 10px;
z-index: 100;
color: #AAA;
background: black;
font: 10px Verdana, sans-serif;
text-align: center;
}

另外下面的三行是其他基本样式, 而第一行变换了display定义的样式才是关键所在 (display: block;) ,这样即可把说明文字显示出来并放在正确的位置。

扩展这个引用,可以有更有趣的表现。我可以可以把说明文字改成图片。我已经把VIASP的link mouse rollover实现变成了图片形式。

初始定义

div#links a img {height: 0; width: 0; border-width: 0;}

rollover 定义

div#links a:hover img {position: absolute; top: 190px; left: 40px; height: 127px; width: 100px;}

A Minor Side Note

另外定义了主导航按钮本身的rollover效果,提高可用性:

div#links a:hover {color: #411; background: #AAA; border-right: 5px double white;}

为什么这里不用 display: none? 因为在Netscape 6.x, 如果定义了display:none样式后,图片将不会被载入。也许Netscape想为用户多节约一点带宽,:)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多