CSS3 实现响应式手风琴

CSS3 实现响应式手风琴

最近看了国外大佬用CSS3实现手风琴效果的视频,所以自己学习后写了一下,以博客的形式记录下来,方便自己日后复习,代码结构如下(字体用的是Genericons ):

CSS3 实现响应式手风琴

视屏教程推荐:《CSS视频教程-玉女心经版》

最终效果如下:

全屏时:

CSS3 实现响应式手风琴

屏幕宽度小于960px时:

立即学习“前端免费学习笔记(深入)”;

CSS3 实现响应式手风琴

下面来看一下页面的基本结构(index.html):

nbsp;html>      Document    

          

      

Follow me on social media

    
                

登录后复制              

          YouTube        

        

          

YouTube

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                            

          Facebook        

        

          

Facebook

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                            

          Twitter        

        

          

Twitter

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                            

          Instagram        

        

          

Instagram

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                            

          Linkedin        

        

          

Linkedin

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                             

          Github        

        

          

Github

          

Lorem ipsum dolor sit amet consectetur             adipisicing elit.Culpa, consectetur.

                    

样式(style.css):

*{  margin: 0;  padding: 0;  border: none;}body{  font-family: Arial, Helvetica, sans-serif;  background-color: #222;  color: #fff;}/*设置字体,因为后面的图标需要用到*/@font-face {  font-family: 'Genericons';  src: url('font/genericons-regular-webfont.woff') format('woff'),  url('font/genericons-regular-webfont.eot') format('truetype');}/*设置外面容器的宽度*/.container{  width: 80%;  margin: 20px auto;}header h1{  font-size: 2rem;  padding: 1rem;  text-align: center;}/*注意这里font-size设置为0,不然会出现非常糟糕的画面,我们后面再去单独对需要现实的文本设置字体大小,因为a链接不想让它显示内容*/.accordion{  width: 100%;  min-width: 800px;  height: 200px;  background-color: #333;  list-style: none;  display: block;  overflow: hidden;  font-size: 0;}/*对每一个li设置为inline-block,让其排列在一行,溢出隐藏,因为.tab下面的.content宽度为360,而且.tab只有在hover的时候宽度才会变成450px,那时候.content刚好显示.另外设置过渡,使其宽度增长的过程平缓*/.tab{  width: 80px;  height: 100%;  display: inline-block;  position: relative;  margin: 0;  background-color: #444;  border: 1px solid #333;  overflow: hidden;  transition: all .5s ease .1s;}.tab:hover{  width: 450px;}.tab:hover .social a:after{  transform: translateX(-80px);}.tab:hover .social a:before{  transform: translateX(-100px);}/*设置定位为相对定位,不然.content会有部分内容被遮住*/.tab .content{  position: relative;  width: 360px;  height: 100%;  background-color: #fff;  color: #333;  margin-left: 80px;  padding: 50px 0 0 15px;}.tab .content h1{  font-size: 2.5rem;  margin-top: 20px;}.tab .content p{  font-size: .85rem;  line-height: 1.6;}/设置为元素的宽高及字体为Genericons,不然图标无法显现,只会显示白色的空框框/.social a:before,.social a:after{  position: absolute;  width: 80px;  height: 200px;  display: block;  text-indent: 0;  padding-top: 90px;  padding-left: 25px;  font:normal 30px Genericons;  color: #fff;  transition: all .5s ease;}/*因为当我们hover上去的时候图标会更大,所以after伪类的字体及padding要重新设置,同时要将margin-left设置为80px,这要默认情况下显示的就是before伪类的小图标*/.social a:after{  font-size: 48px;  padding-top: 80px;  padding-left: 20px;  margin-left: 80px;}/*Add icons*/.youtube a:before,.youtube a:after{  content: '213';}.youtube a:after{  background-color: #fc0000;}.twitter a:before,.twitter a:after{  content: '202';}.twitter a:after{  background-color: #6dc5dd;}.facebook a:before,.facebook a:after{  content: '204';}.facebook a:after{  background-color: #3b5998;}.linkedin a:before,.linkedin a:after{  content: '208';}.linkedin a:after{  background-color: #00a9cd;}.instagram a:before,.instagram a:after{  content: '215';}.instagram a:after{  background-color: #6dc993;}.github a:before,.github a:after{  content: '200';}.github a:after{  background-color: #6e5494;}/*当屏幕最大宽度为960px时*/@media(max-width:960px){  .container{    width: 70%;  }    /*让高度为auto*/  .accordion{    min-width: 450px;    height: auto;  }    /*让li显示为block,这样就会依次往下排*/  .tab{    width: 100%;    display: block;    border-bottom: 1px solid #333;  }    /*这个一定要设置,因为原本的.tab:hover时宽度为450px,假如.tab的宽度有600px,在hover时就回剩余150px的空白,不是我们想要的效果*/  .tab:hover{    width: 100%;  }  .tab .content{    width: 85%;  }    /*设置对应伪类的padding值,使其大概显示在中间*/  .social a:before{    padding-top: 60px;    padding-left: 25px;  }  .social a:after{    padding-top: 50px;    padding-left: 20px;  }}

登录后复制

推荐教程:《CSS教程》

以上就是CSS3 实现响应式手风琴的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2885584.html

(0)
上一篇 2025年3月10日 20:41:23
下一篇 2025年3月7日 08:10:22

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css3 如何实现进度条效果

    项目过程中,开始使用了js的requestAnimationFrame方法实现进度条,但是在数据超级多的时候非常影响性能,如此改用css去实现,优化。 先贴代码: nbsp;html>                Document …

    2025年3月10日
    200
  • css3新增伪类有哪些

    css3新增伪类有:1、【p:first-of-type】;2、【p:last-of-type】;3、【p:only-of-type】;4、【p:only-child】;5、【p:nth-child(2)】。 (推荐教程:css快速入门) …

    2025年3月10日
    200
  • css3如何画出小黄人并实现动画效果?(代码示例)

    css3如何画出小黄人?下面本篇文章给大家介绍一下使用css画出小黄人并实现动画效果的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 首先来看看效果图(小黄人动画) 怎么样?虽然手脚动画还是不怎么神似,但人类聪明地大…

    2025年3月10日 编程技术
    200
  • CSS3变形-旋转实现4色花-案例解析(代码实例)

    本文目标: 1、掌握css3中如何让元素旋转 问题: 1、实现以下效果,且使用纯DIV+CSS 附加说明: 1、带蝴蝶的粉色圆圈是一张图片 立即学习“前端免费学习笔记(深入)”; 2、中间的“4色花”是由4个半圆通过旋转生成的,每个半圆的直…

    2025年3月10日
    200
  • 详解CSS3实现弹性布局的方式

    一、CSS3弹性盒子 弹性盒子是CSS3的一种新布局模式。 CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。 引入弹性盒布局模型的目的是提…

    2025年3月10日 编程技术
    200
  • CSS3如何实现图片木桶布局?(附代码)

    本篇文章给大家通过代码示例介绍一下使用css3实现图片木桶布局的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 高度相同,而宽度不一样的布局,称之为木桶布局。它有几个鲜明的特点: 每行的图片高度一致;每行的图片都是占…

    2025年3月10日
    200
  • 九款纯CSS3绘制的复古相机特效代码

    本篇文章给大家分享九款纯css3绘制的复古相机特效代码。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 先看看制作出来的效果图: PS:  有人会说,这些东西实用性不强,没啥用。一开始我也是这么觉得,但后来我就改变自己的看…

    2025年3月10日 编程技术
    200
  • 响应式css前端框架有哪些

    响应式css前端框架有:1、Semantic UI Framework;2、Less Framework;3、Foundation Framework;4、UIkit Framework;5、YUI Framework。 常用的响应式css…

    2025年3月10日
    200
  • css3中过渡和动画的区别是什么

    css3中过渡和动画的区别是:过渡需要触发一个事件才会随着时间改变其CSS属性;动画在不需要触发任何事件的情况下,也可以随时间变化来改变元素CSS属性。 animation属性类似于transition,他们都是随着时间改变元素的属性值,其…

    2025年3月10日
    200
  • css3中让图像居中可以使用哪个元素

    css3中让图像居中可以使用【align-items:center】元素和【justify-content:center】元素。align-items属性定义flex子项在flex容器的当前行的纵轴方向上的对齐方式。 方法: 采用 alig…

    2025年3月10日
    200

发表回复

登录后才能评论