今天我们将开始建立另一个有趣的CSS演示。这次我们将创建一个大的、无缝的照片墙。当用户将鼠标悬停于一个图像,一个透明的黑色渐变效果覆盖在其上面。

Demo:点击这里

HTML代码

第一步我们需要创建一个大概的结构,只需要一个div和无序的列表li。

然后将图片元素放进去,先占着位置。

现在是不是开始有点感觉了?那我们可以添加具体的图片和文字信息了(你想添加什么都可以,不过要保证你的照片规格为320x213)。

  • big

  • small

  • fast

  • slow

  • awesome

  • convenient

  • necessary

  • fun

  • boring

  • crazy

  • boring

  • small

  • fast

  • slow

  • awesome

  • convenient

  • necessary

  • fun

  • boring

  • crazy

就如你看到的,我用了很多图片,但是为了突出照片墙的效果,这样是需要的。

容器css样式

现在,我们已经用HTML创建了一个巨大的混乱的内容,那么是时候开始CSS美化它了。这个过程的第一步是将container定位在网页中间。归根结底,我们的图像将实际上是280 px宽,每排四张图片,所以总共需要1120 px的宽度。用margin auto可以将任何元素定位在中央。

/*------CONTAINER------*/

.container {

width: 1120px;

margin: 0 auto 50px auto;

}

Media Queries

I’m not going to go full on responsive with this project, but it would be nice if it adjusted half way decently to different viewport sizes. This merely involves resetting our container width at different intervals, which effectively drops the layout from four columns down to three, two and finally one when the viewport is narrow enough./*------MEDIA QUERIES------*/

@media screen and (max-width: 1120px) {

.container {width: 840px;}

}

@media screen and (max-width: 840px) {

.container {width: 560px;}

}

@media screen and (max-width: 560px) {

.container {width: 280px;}

}

列表样式

创建完container容器以后,接着定义列表元素的css样式,这里包括无序列表ul,列表元素li,列表元素的鼠标移上去的效果li:hover。

下面的css样式是几乎所有的ul li代码都会用到的,总结起来时以下三点:

1.ul选择器的样式重置,因为我们需要ul是无序的并且不需要他本身的样式。

2.li元素应该左浮动。

3.li元素应该overflow: hidden

凡是采用ul li的布局,基本都需要上面的三个步骤,因为li默认的。对于我们这个项目而言,还需要额外的做到以下:

1.li元素应该用相对定位。

2.我们不需要将图片做成超链接,尽管这样我还是想让用户直观的知道自己的鼠标聚焦在哪张图片上,所以我给li加上了hover变手型指针的效果,同时这里还规定了li的宽和高,且将overflow设为hidden,这样做是为后面图片变大之后布局不会变乱做准备。

/*------LIST------*/

.container ul {

list-style-type: none;

}

.container li {

float: left;

position: relative;

width: 280px;

height: 187px;

overflow: hidden;

}

.container li:hover {

cursor: pointer;

}

文字样式

/*------PARAGRAPH------*/

.container li p {

color: transparent;

background: transparent;

font: 200 30px/187px 'Arvo', Helvetica, Arial, sans-serif;

text-align: center;

text-transform: uppercase;

position: absolute;

top: 0;

left: 0;

width: 280px;

height: 187px;

-webkit-transition: all 1s ease;

-moz-transition: all 1s ease;

-o-transition: all 1s ease;

-ms-transition: all 1s ease;

transition: all 1s ease;

}

.container li:hover p {

color: white;

background: #000; /*fallback for old browsers*/

background: rgba(0,0,0,0.7);

}

container li p的css代码定义了li中的文字样式.为了方便查看分成了三段。第一部分设置文字的大小和字体等。文字的颜色和背景都设置成了透明,这样我们就将文字段落隐藏了起来,留着鼠标滑进去将文字再显示出来的时候用。

文字的定位

第二部分将文字设置成了绝对定位,如果不这样做,那么文字会显示在图片的上方而不是和图片显示在同一位置。绝对定位将文字脱离了文档流。同时,我将文字段落设置了高度和宽度,看起来好像没什么用,其实我只是想为了达到当鼠标移动到图片区域时,为图片增加层的效果。

文字的 Transition效果

第三段用ease函数设置了所有p的属性在1秒之类变换。transform通过平移、旋转等方法来定义页面元素的外观。它是css3的属性。

文字的聚焦样式

当鼠标滑动到图片上去的时候,文字被设置成了白色,背景为深黑色。通过使用rgba的模式,我们能得到一种透明的效果,不过需要注意的是ie早期的版本并不支持rgba,所以我们添加了黑色背景,这样ie的低版本虽然没有得到透明效果,但至少没有太大出入。

图片样式

我们的目标是创造出当鼠标移上去的时候图片的放大效果。鼠标以上去,图片稍微变大 ,同时文字以层的方式显示出来。这里有一个技巧:我们希望图片能够放大,但是同时我们又不希望放大图片影响到我们的布局,因此上面我们将li列表元素元素设置了一个特定的宽度和高度,同时overflow为hidden,使得即使图片变大,它都在先前的边界范围之内,我们设置图片的大小为280x176,当鼠标移上去是,变成图片的实际大小320x213。

/*------IMAGES------*/

.container img {

width: 280px;

height: 187px;

-webkit-transition: all 1s ease;

-moz-transition: all 1s ease;

-o-transition: all 1s ease;

-ms-transition: all 1s ease;

transition: all 1s ease;

}

.container li:hover img {

width: 320px;

height: 213px;

}

看看效果

所有的工作完成了,你可以看看demo

另外一种款式

如果刚刚你去看了我给你们的demo,你会知道里面包含了两个效果的版本。第一个叫fade(淡入淡出),也是上面我教你完成的那个。第二个是flip,有着不同的效果,如果你希望更多的选择,请看下面。

这个版本的绝大多数css代码都是一样的,主要的区别在于将文字段落的transition效果移除,把图片的css效果变成翻转。下面是代码:

/*------PARAGRAPH------*/

.container li p {

color: transparent;

background: transparent;

font: 200 30px/187px 'Arvo', Helvetica, Arial, sans-serif;

text-align: center;

text-transform: uppercase;

position: absolute;

top: 0;

left: 0;

width: 280px;

height: 187px;

}

.container li:hover p {

color: white;

background: rgba(0,0,0,0.7);

z-index: 1;

}

/*------IMAGES------*/

.container img {

width: 280px;

height: 187px;

-webkit-transition: all 0.7s ease;

-moz-transition: all 0.7s ease;

-o-transition: all 0.7s ease;

-ms-transition: all 0.7s ease;

transition: all 0.7s ease;

}

.container li:hover img {

-webkit-transform: scale(-1, 1);

-moz-transform: scale(-1, 1);

-o-transform: scale(-1, 1);

z-index: -3;

}

html图片怎么加动画效果,css打造一个动画效果的图片墙相关推荐

  1. css玻璃雨滴效果,CSS实现雨滴动画效果的实例代码

    玻璃窗 今天我们要实现的是雨滴效果,不过实现雨滴前,我们先把毛玻璃的效果弄出来,没有玻璃窗,雨都进屋了,还有啥好敲打的. .window { position: absolute; width: 10 ...

  2. 图片上的文字用CSS写出毛玻璃效果

    图片上的文字用CSS写出毛玻璃效果  2016-10-04 08:11    网页设计   标签:css   1297    发表评论 半透明颜色最初的使用场景之一就是作为背景.将其叠放在照片类或其他 ...

  3. HTML+CSS制作一个动画

    HTML+CSS制作一个动画 效果图如下: HTML部分结构如下: <!DOCTYPE html> <html lang="zh-Hans"><hea ...

  4. Css打造一个简单的静态七巧板

    偶然在微博上看到用css写一个七巧板,正好也有一些源代码,于是就试着敲了敲. 主要是利用了css3的transform,实现平移,旋转,变形,直接用看到的代码敲出来之后有些问题,因为宽度上下面绿色的三 ...

  5. 在网页广告栏中经常看到左右来回移动的广告图片。请使用html+js实现一个左右移动的图片效果。图片自选。

    在网页广告栏中经常看到左右来回移动的广告图片.请使用html+js实现一个左右移动的图片效果.图片自选. <!DOCTYPE html> <html><head>& ...

  6. [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环

    [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环 .animation-block {width: 50px;height: 50px;backgroun ...

  7. css纯加载动画,纯CSS实现loading动画加载效果

    原标题:纯CSS实现loading动画加载效果 loading动画图标的做法有很多.一般不想麻烦的人直接嵌入一张gif的动态图标即可实现!虽然该方法方便快捷,但是对网站的加载速度优化方面还不是最好,制 ...

  8. 置顶图片代码加链接html,css图片怎么加链接?

    css可以通过在图片前加标签实现为图片加链接,语法:.使用此方法引入图片即可为图片添加链接. 设定图片超链接,用css样式来实现,其实就是给这个图片的块添加超链接,我们可以通过在这个块的前面添加一个a ...

  9. html 图片重叠效果,CSS实现照片堆叠效果的实例代码

    实现效果 步骤 1.初始index.html 为了建立第一张照片,也就是最上面的那张.我们只需要添加一个div,里面包含照片的img.就这么多,剩下的效果都是通过CSS来实现的.确保div的class ...

最新文章

  1. windows服务器连接linux nfs,windows设置通过NFS连接到Linux共享数据
  2. JavaScript实现单词首字母大写的方法集锦
  3. go定时器 每天重复_Go语言学习基础-定时器、计时器
  4. PL/SQL程序设计以及安全管理实验遇到的问题及解决
  5. 用实力给自己正名,YOLOv5:道路损伤检测我最强!GRDDC'2020大赛报告
  6. 萌龙大乱斗 合成表 持续更新
  7. ORA-03113: end-of-file on communication channel
  8. Android Error:Could not find lottie.jar
  9. 天堂2服务器自动停止,为什么我一进天堂2就与服务器连接中断??/
  10. 华为ensp_三层交换
  11. vue 添加子路由 默认选中子路由
  12. 4.5.2 地址变换机构 4.5.3  访问内存的有效时间
  13. linux screen 环境变量,Linux 下 screen 使用方法
  14. 五分之二用计算机怎么按,2015年计算机等级考试上机应试技巧
  15. LIN休眠唤醒及测试心得
  16. 失业在家做什么赚钱好?失业在家怎么赚钱?
  17. 【硬件在环HIL环境配置】
  18. B. Alyona and a Narrow Fridge( Codeforces Global Round 2)二分
  19. Memory Population Guidelines for Intel 3rd Gen Xeon Scalable Processors——内存控制器
  20. java学籍管理信息系统模板_java学籍管理系统051

热门文章

  1. 【啊哈!算法】算法5开启“树”之旅
  2. 【OMNeT+INET】浅谈OMNeT开源库INET(二)
  3. Mysql系列(十二)Mysql监控操作
  4. 使用表格排版进行年龄排序
  5. 贪吃的大嘴(多重背包问题)
  6. iHRM 人力资源管理系统_第2章、数据库设计与前端框架
  7. maker mv rpg 源码_RPGMakerMV Android打包
  8. ubuntu16.04搭建优美的开发环境
  9. 万国觉醒迁服务器显示该王国还未开放,万国觉醒无法迁城怎么办 王国迁城条件及详细步骤...
  10. JSP写提示框、警告框、确认框