Css相册

  对于相册,大家都很熟悉,常见的一种如下图所示:

  

  当你点击下面的数字的时候,就会换一张图片,直接用链接就可以实现,很简单。下面我们将介绍其他两种css相册。

第一种css相册:

  我们先来看看示意图:

  当鼠标移到某张图片时,这张图片会放大一倍,并且小图刚好是在大图的正中间的下面。看到效果图后,我们先来思考下怎样可以达到这样的效果:

    1、图片先是放在一个大容器里面的,且是无缝排列在一起的,这个可以使用float来实现,外面可以加一个div之类的套住。

    2、hover时,图片放大,也就是说我们得调整图片的大小,即img的大小。

  就表面看,似乎这样就够了。我们可以编写代码试试。结果你会发现,由于图片的变大,会导致周围图片的位置发生变化。这个怎么解决呢?

  解决办法其实很简单,就是img和div之间再加一层元素可用span或者其他之类的,当hover的时候,改变img的样式,但是不去改动span。

  不过这中间还有一个问题,就是得设置span的大小,不然就相当于span不起作用了。

  最后附上源码,供大家参考,代码部分有注释。

<!doctype html>
<title>纯CSS相册 by huansky</title>
<meta charset="utf-8"/>
<meta name="keywords" content="纯CSS相册 by huansky" />
<meta name="description" content="纯CSS相册 by huansky" />
<style type="text/css">
  ul#album, #album li{
    margin:0;
    padding:0;
    list-style:none;
  }
  ul#album{/*第1层*/
    width:600px;
    height:400px;
  }
  #album li{/*第2层*/
    float:left;
    width:150px;/*一定要设置,要不当hover激活img成为大图时,img就上升到更上一层,↓*/
    height:100px;/*LI元素为空,就会被挤成一条线,后面的元素就会挤压过来填满此空间,出现最右下角少一块的现象*/
  }
  #album img{
    width:150px;/*默认平时都以小图形式显示*/
    height:100px;
  }
  #album li img:hover{/*只有由hover激活的img才位于第3层*/
    position: relative;
    left:-75px;/*上移小图的宽的一半*/
    top:-50px;/*上移小图的高的一半*/
    width:300px;
    height:200px;
  }
</style>
<h1>纯CSS相册 by huansky</h1>
<ul id="album">
  <li>
    <img  src="img/1.png" />
  </li>
  <li>
    <img  src="img/2.png" />
  </li>
  <li>
    <img  src="img/3.png" />
  </li>
  <li>
    <img  src="img/4.png" />
  </li>
  <li>
    <img  src="img/5.png" />
  </li>
  <li>
    <img  src="img/6.png" />
  </li><li>
    <img  src="img/7.png" />
  </li>
  <li>
    <img  src="img/8.png" />
  </li>
  <li>
    <img  src="img/9.png" />
  </li>
  <li>
    <img  src="img/10.png" />
  </li>
  <li>
    <img  src="img/11.png" />
  </li>
  <li>
    <img  src="img/12.png" />
  </li>
</ul>

第二种css相册:

  同样,我们还是来看看我们最后要达到的效果:如下图

  当鼠标在外围的图片上移动的时候,会在中间显示其大图,同样我们来思考下应该怎样达到这种效果。

    1、图片先是放在一个大容器里面的,且是无缝排列在一起的,这个可以使用float来实现,外面可以加一个div之类的套住。

    2、不同于第一种,第二种中间是空的,图片不能放在中间,这个似乎有点难实现,后面再说。

    3、当鼠标hover的时候,它不仅得显示在中间,还得在原来的地方也显示,这就告诉着我们需要两份图片,其中一份hover的时候显示在中间。

    4、所有的图片都是显示在中间,因此用绝对定位就可以了。

  好了,可以开始写了。然后你会发现图片的位置似乎有点难实现,因为,图片会自己跑到中间空的地方去。怎么办呢?别急,clear还有两个属性,right和left,有不明白的可以参看我的一篇博文:CSS浮动(float,clear)通俗讲解:http://www.cnblogs.com/huansky/p/5460803.html

  位置问题解决后,有些人可能还有问题,那就是我hover的时候,怎么保证一张图片变大,另一张不变呢?这个其实很简单,给把另一个img放在span里面,hover的时候,只改变span里面的图片就好了。

  最后附上源码供大家参考:

 <!doctype html>
<title>纯CSS相册 by huansky</title>
<meta charset="utf-8"/>
<meta name="keywords" content="纯CSS相册 by huansky" />
<meta name="description" content="纯CSS相册 by huansky" />
<style type="text/css">
  ul#album, #album li{
    margin:0;
    padding:0;
    list-style:none;
  }
  ul#album{
    width:600px;
    height:400px;
    position:relative;
  }
  #album li{
    float:left;
    width:150px;
    height:100px;
   overflow: hidden;
  }
  #album li img{
    width:150px;
    height:100px;
  }
  #album li:hover span img{
    display: block;
    position: absolute;
    top:100px;
    left: 150px;
    width: 300px;
    height: 200px;
  }
  #album li.left {
    float:left;
    clear:left;
  }
  #album li.right {
    float:right;
    clear:right;
  }
  #album li.fixbug {
    width:200px;
    height:150px;
  }
  #album .first img{
    display: block;
    position: absolute;
    top:100px;
    left: 150px;
    width: 300px;
    height: 200px;
  }
</style>
<h1>纯CSS相册 by huansky</h1>
<ul id="album">
    <li>
        <img  src="img/1.png" />
        <span class="first"><img src="img/1.png" /></span>
    </li>
    <li>
        <img src="img/2.png" />
        <span><img src="img/2.png" /></span>
    </li>
    <li>
        <img src="img/3.png" />
        <span><img src="img/3.png" /></span>
    </li>
    <li>
        <img src="img/4.png" />
        <span><img src="img/4.png" /></span>
    </li>
    <li class="left">
        <img src="img/5.png" />
        <span><img src="img/5.png" /></span>
    </li>
    <li class="right">
        <img  src="img/6.png" />
        <span><img src="img/6.png" /></span>
    </li>
    <li class="left">
        <img   src="img/7.png" />
        <span><img src="img/7.png" /></span>
    </li>
    <li class="right">
        <img  src="img/8.png" />
        <span><img src="img/8.png" /></span>
    </li>
    <li class="left">
        <img   src="img/9.png" />
        <span><img src="img/9.png" /></span>
    </li>
    <li>
        <img src="img/10.png" />
        <span><img src="img/10.png" /></span>
    </li>
    <li>
        <img src="img/11.png" />
        <span><img src="img/11.png" /></span>
    </li>
    <li>
        <img src="img/12.png" />
        <span><img src="img/12.png" /></span>
    </li>
</ul>

时间: 2024-10-07 06:30:27

Css相册的相关文章

我是如何对网站CSS进行架构的

一.写在前面的 都是自己积累形成的一些东西,可能带有明显的个人印记.不是专业内容,不是权威指南,只是展示一点自己的观点,借此希望能与各位优秀的同行交流看法,见解.以得到进步与提高. 二.我所知的一些过往的做法 关于如何处理网站的CSS,各个网站做法都不一样,这随着网站的性质及大小不同,公司前人留下的规范不同,以及CSS工程师的眼界不同而有所不同.由于我从业经历有限,所知甚浅,只能说些肤浅业余的内容,不准确之处欢迎指出. 就CSS文件而言,有的网站分为header.css, body.css, f

Html 制作相册

本文主要讲述采用Html5+jQuery+CSS 制作相册的小小记录. 主要功能点: Html5进行布局 调用jQuery(借用官网的一句话:The Write Less, Do More)极大的简化了JavaScript编程 CSS 样式将表现与内容分离 话不多说,先上效果图: 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>The second html page</title> 5 &l

DIV+CSS实战系列课程附实例源码

教程目录: 1._固定大小圆角边框. 2._.不固定大小圆角边框. 3.灵活的图片边框. 4.div.css视频教程--.ul横向菜单. 5.div.css视频教程_文字排版. 6.div.css视频教程_制作简单页面之ps布局. 7.div.css视频教程_.制作简单页面之css布局. 8.div.css视频教程_.制作简单页面之填充内容. 9.div.css视频教程_.如何改变布局成三列布局. 10.div.css.视频教程._页面组合式_菜单的调用. 11.DIV.CSS实战视频教程_.圆

css内容规划

文章出处:张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=944 关于如何处理网站的CSS,各个网站做法都不一样,这随着网站的性质及大小不同,公司前人留下的规范不同,以及CSS工程师的眼界不同而有所不同.由于我从业经历有限,所知甚浅,只能说些肤浅业余的内容,不准确之处欢迎指出. 就CSS文件而言,有的网站分为header.css, body.css, footer.css,不做评价

CSS多级菜单

这是一个相当炫的功能,让网页看起来像桌面程序,如window的开始菜单.实现原理基本和纯CSS相册差不多,但要注意的事项比较多,让我们一步步来吧. 先来一个非常简单的一级菜单与悬停效果. <ul id="menu"> <li> <a href="http://www.cnblogs.com/rubylouvre/"> 菜单一<!--小图--><span><!--大图--></span>

javascript无缝滚动

无缝滚动好像是互联网广告最大的一个载体,可以用“无处不在”来形容它.不过它比起早期的闪光字体,浮动广告算进步了.由于需求巨大,做前台迟早会遇到它.我先给出结构层部分,再慢慢讲解其实现原理. <dl id="marquee">   <dt>     <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s017.jpg" alt="无缝滚动&quo

司徒正美文章列表

由于本人对司徒正美文章的喜欢,特此整理文章列表如下. 一个带完整的RBAC授权系统的rails应用(第一部分)(司徒正美, 3年前, 12/6549) 一个带完整的RBAC授权系统的rails应用(第二部分)(司徒正美, 3年前, 1/1135) 随机生成十六进制颜色(司徒正美, 3年前, 0/340) ruby中的类变量与实例变量(司徒正美, 3年前, 0/231) ruby模拟多个构造器(司徒正美, 3年前, 0/153) ruby的实例方法(写方法,读方法与读写方法)(司徒正美, 3年前,

HTML5 CSS3专题 纯CSS打造相册效果

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/30993277 今天偶然发现电脑里面还有这样的一个例子,感觉效果还不错,不记得啥时候下载的了,也好久没上w3cfuns了,怀念学习前台的日子,给大家分享下. 效果图: 效果是不是还是很不错的,最主要的是没有使用一行js,这才是亮点. 先看html文件: <body> <div id="gallery"> <h1>纯CSS3相册效果&l

css实现相册方式展现的字母表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-