用CSS达到图片流水效果

这方法我是在wp.Vicuna作者wu那里学来的,是利用CSS的padding属性,图片周围腾出很小一点空隙来显示背景图片,来达到图片周围流水效果。

其实他这种效果是两张图片叠加的效果,前面我们看到的主图片是在(X)HTML里调过来的,而图片周围流水效果是其background-image(是动画GIF),而背景图片显示的范围只有我们留出的padding空隙那么大,他只能显示那部分。效果看起来像流动的线条。

这里还是借用一下俄罗斯美女Janaina,请先看效果。图片1.始终让其显示流水效果,图片2.只有在OnMouse的时候显示,也就是hover。

janaina
janaina

(点击可以看大图,是Highslide图片特效)

想要达到这种效果必须要用这图片bg_current.gif —-> :


(X)HTML下调用
   <img src="xxx.jpg" alt="" />
CSS下调用
img {
    background-image: url(bg_current.gif);
    padding: 1px;
}
OnMouse
.pict a img {
    padding: 1px;
}
.pict a:hover img {
    background-image: url(bg_current.gif);
    padding: 1px;
}

这里最重要的就是padding:1px; 我们留出这空隙就是为了在此范围内显示背景图片,其他是不可见的。当然你也可以加 border:2px solid #ccc; 等,上图我是加了的。

值得注意的是:这效果在WIN IE6下是显示不出效果的,因为IE6不支持padding属性。
但是我们可以利用图片亲元素<p>或<div>来细化CSS的方法来达到图片1.的显示效果。
像下面这样写代码,它就会兼容IE6。


.pict {
    background-image: url(bg_current.gif);
    padding: 1px;
    display: inline;
    _width: 100px; /*For WIN IE6*/
}
.pict{
    display:table;
}
.pict img {
    vertical-align: bottom;
}
遗憾的是图片2.的显示效果(也就是OnMouse时)在IE6下是无论如何达不到的。
在IE7,Opera,Safari,Firefox,Chrome下好用,因为都支持padding属性。
愿WIN IE7早点普及,之前只能辛勤细化CSS啦。

至于Highslide图片特效和图片流水效果结合(即同时调用)很简单,调用Highslide的JS库(class=”highslide”),又调用上面给出的CSS(class=”pict”)而CSS在后台调用背景图片(动画GIF),当然(X)HTML是少不了的,他调用前面的主图片,包括highslide点击以后的大图片。(应要求具体写之)


<div class="pict"><a class="highslide" onclick="return hs.expand(this)"
href="photo.jpg">
<img src="photothumb.jpg" alt="" /></a></div>

Comments : 42Add Your Own

Reply  1. Yacca 
08-12-23 (Tue) 9:08

IE6是万恶的!!!

    Reply  2. YoungCheon 
    08-12-23 (Tue) 10:55

    真的很烦 尤其每次定义CSS的时候

    Reply  3. 林晨 
    08-12-23 (Tue) 11:25

    对,做网站太不能容忍IE6了,可是又没办法,希望离开XP后能够把它淘汰掉

Reply  4. xiaorsz 
08-12-23 (Tue) 10:15

这东西不错哈!!做个示例都要用美女的,呵呵!!
收藏了!

    Reply  5. YoungCheon 
    08-12-23 (Tue) 10:56

    要不这种枯燥的代码怎么看下去啊 要养养眼的 呵呵

        6. 纪小年 
      08-12-23 (Tue) 21:25

      “Janaina”原来美女叫这个名字啊,网上经常见到她~~

Reply  7. Shawn 
08-12-23 (Tue) 11:17

ie6 是不支持 hover padding 属性吧,padding 是支持的。

    Reply  8. YoungCheon 
    08-12-23 (Tue) 11:32

    这个要看DOCTYPE是什么啦

        9. Shawn 
      08-12-23 (Tue) 11:43

      你说的是,ie6不支持padding,这和DOCTYPE无关。ie6只是不支持hover padding

        10. YoungCheon 
      08-12-23 (Tue) 12:00

      在此篇事例里图片上padding是不被支持的,你用CSS在IE6下是无法调用的。除非细化CSS。
      你的意思是我在这一篇事例里把什么是DOCTYPE?是标准模式还是诡异模式?还有FF下和IE6下width+padding等属性全部讲出来吗?
      hover padding 图片2.已经说清楚了

Reply  11. 林晨 
08-12-23 (Tue) 11:23

技术很严谨,一开始还以为很难,看了YoungCheon的介绍,豁然开朗啊

    Reply  12. YoungCheon 
    08-12-23 (Tue) 11:18

    一点不难,就是两张图片叠加而已,呵呵

Reply  13. Shawn 
08-12-23 (Tue) 12:44

不知道我们讲的还是不是一个事情。我仅仅指你用蓝色强调的文字:IE6不支持padding属性。你还真想多了。

Reply  15. Shawn 
08-12-23 (Tue) 12:55

另,第二个效果,如果你稍稍有 hack ie6 的经验,你就应该知道如何在 ie6 下实现,而不是”IE6下是无论如何达不到的”。

    Reply  16. YoungCheon 
    08-12-23 (Tue) 12:56

    难道你真不觉得你想的多吗?

    Reply  17. YoungCheon 
    08-12-23 (Tue) 13:11

    呵呵 不多说了 严谨是好事,但不是断章取义,我还不如直接开发一个浏览器呢 -.-

Reply  18. 毛毛虫 
08-12-23 (Tue) 13:09

看美女的。路过。

Reply  19. Shawn 
08-12-23 (Tue) 13:16

我并不是想断章取义。全因你那句不够严谨的话还被着色强调了。不太了解的人只看那句话会以为 ie6 烂到这个地步了,padding 都不支持。

    Reply  20. YoungCheon 
    08-12-23 (Tue) 13:21

    没完了? IE6还不烂?难道我在这里还要把hack的讨论也加上?

Reply  21. Shawn 
08-12-23 (Tue) 13:34

说实话,如果你觉得不能接受我这种评论,你可以全部删掉。我只是就事论事,并没有对人。

难道你第一项不叫 hack 吗?第二种情况的 hack 比你第一种还简单,不过看来你不感兴趣。

至于到底谁想多了。我觉得我没想多,因为这不是我的博客。

    Reply  22. YoungCheon 
    08-12-23 (Tue) 13:38

    不用删除 让别人看吗 自有公论

Reply  23. iColor 
08-12-23 (Tue) 14:38

叫 蚂蚁线 效果多科学… – -

一看到就想起 PS 的选区 – -

    Reply  24. YoungCheon 
    08-12-23 (Tue) 16:42

    看来你PS不错嘛 呵呵 直接想到PS的选区

Reply  25. longlan 
08-12-23 (Tue) 19:44

非常喜欢!感谢博主分享!

    Reply  26. YoungCheon 
    08-12-23 (Tue) 21:38

    好东西 尽量共享啦 谢什么呢 呵呵

Reply  27. daniel 
08-12-23 (Tue) 20:20

效果真是很不错呀!

Reply  29. 纪小年 
08-12-23 (Tue) 21:27

这个是2张图片叠加的效果?感觉要是那个框框在大一些更好看,细细的一条,不怎么美观…

    Reply  30. YoungCheon 
    08-12-23 (Tue) 21:31

    框框你自己可以调,看自己喜欢了

        31. 纪小年 
      08-12-23 (Tue) 21:34

      你说人怎么这么聪明呢,费解啊。

        32. YoungCheon 
      08-12-23 (Tue) 21:40

      我说人聪明什么意思?(呵呵 是我看错了)

        33. 纪小年 
      08-12-23 (Tue) 22:22

      我的意思是:人很聪明。

Reply  34. JoBru 
08-12-23 (Tue) 22:12

这个效果很好~~简单的CSS看来有无穷创造~

Reply  35. JoBru 
08-12-23 (Tue) 22:14

晕,你和Shawn在干啥呢~
搞技术的争起来就这样~

    Reply  36. YoungCheon 
    08-12-23 (Tue) 22:20

    呵呵 我实在不懂啊,我应该写IE6,而不是CSS实现图片的效果。

Reply  37. 火星基地 
08-12-24 (Wed) 11:19

哈哈 我喜欢右边那个~圣诞快乐哈~

Reply  39. 醉倚西风 
08-12-24 (Wed) 11:50

今晚我预定了两个

Reply  41. 雅丹地貌 
08-12-24 (Wed) 12:05

不错 不错 等会QQ找你

Comment Form
E_mail (*)(Will not be published)
Remember Personal Info

TrackPings : 0

Trackback URL for this entry
http://www.teikinka.com/css-padding.html/trackback
Listed below are links to weblogs that reference
用CSS达到图片流水效果 From 腾信家

HOME > 电脑应用 > 用CSS达到图片流水效果

Most Viewed
Recent Entries
Feeds
Meta
    Creative Commons License

    本站全部作品采用
    知识共享署名 - 非商业性使用 - 相同方式共享
    3.0 Unported许可协议进行许可。



Return to page top