纯CSS如何实现图片百叶窗展示效果

这篇文章主要为大家展示了纯CSS如何实现图片百叶窗展示效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯CSS如何实现图片百叶窗展示效果”这篇文章吧。

首先给大家看一下完成效果

纯CSS如何实现图片百叶窗展示效果

主要思路:其实这个百叶窗还是利用了一种障眼法,我们看上去是鼠标移动上去之后,图片展开了,其实这些图片在原地根本没有动,只不过是我们把这些图片放在了一个列表里,相互叠加,鼠标移动的同时改变列表的宽度。

第一步:构建一个百叶窗框架

html代码:

<divclass="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>

css代码:

*{
margin:0;
padding:0;
}
.container{
margin:100pxauto;
border:2pxsolid#568bc7;
width:800px;
height:300px;
}
.containerul{
display:flex;
}
.containerli{
width:160px;
height:300px;
list-style:none;
border-left:1pxsolid#194b8d;
}
.containerliimg{
display:block;
width:800px;
height:300px;
}

需要注意一下:这里的li可能需要手动计算等分的宽度,虽然可以用弹性盒子实现自动等分,但是我后面加了hover之后发现会有BUG,大家可以试试,这里就不使用弹性盒子了现在得到如下框架:

纯CSS如何实现图片百叶窗展示效果

第二步:插入图片,使用hover做出特效

我这里插入了五张油画

这里我们可以发现图片超过了我们容器的范围

纯CSS如何实现图片百叶窗展示效果

此时我们在外容器中添加,做一个溢出隐藏overflow: hidden;

纯CSS如何实现图片百叶窗展示效果

这样一个百叶窗就出具规模了如何让图片和演示GIF一样动起来呢?这里涉及到一段核心代码

.containerul:hoverli{
width:40px;
}
.containerulli:hover{
width:600px;
}

这个Demo 其实是对:hover属性灵活运用的一个练习,首先要注意,两行代码的顺序不可以更换首先鼠标移入 ul 的大容器内时,我们首先要让 li 的宽度变小,紧接着触发下一行的hover ,移入到每一个 li 的时候,让 li 的宽度变大

第三步:细节处理

完成以上之后,我们看到整个过程非常的生硬这里可以加入过渡属性,让变化变得更加平滑 ,同时给每一个 li 的左边框加上一点阴影效果,让他看起来更加的立体

box-shadow:0025px#000;
	transition:all0.5s;

最后就完成啦

纯CSS如何实现图片百叶窗展示效果

这里是完整代码:

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="viewport"content="width=device-width,initial-scale=1.0">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
.container{
margin:100pxauto;
border:2pxsolid#568bc7;
width:800px;
height:300px;
overflow:hidden;
}
.containerul{
display:flex;
}
.containerli{
width:160px;
height:300px;
list-style:none;
border-left:1pxsolid#194b8d;
box-shadow:0025px#000;
			transition:all0.5s;
}
.containerliimg{
display:block;
width:800px;
height:300px;
}
.containerul:hoverli{
width:40px;
}
.containerulli:hover{
width:600px;
}
</style>
</head>
<body>
<divclass="container">
<ul>
<li><imgsrc="./img/tq1.jpg"alt=""></li>
<li><imgsrc="./img/tq2.jpg"alt=""></li>
<li><imgsrc="./img/tq3.jpg"alt=""></li>
<li><imgsrc="./img/tq4.jpg"alt=""></li>
<li><imgsrc="./img/tq5.jpg"alt=""></li>
</ul>
</div>
</body>
</html>

以上就是关于“纯CSS如何实现图片百叶窗展示效果”的内容,如果改文章对你有所帮助并觉得写得不错,劳请分享给你的好友一起学习新知识,若想了解更多相关知识内容,请多多关注恰卡编程网行业资讯频道。

发布于 2021-03-17 20:52:43
收藏
分享
海报
0 条评论
166
上一篇:CSS中伪元素&amp;伪类有什么用 下一篇:JavaScript中从原型到原型链的示例分析
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码