// 使用Transform的属性,组合translate(位移)和rotate(旋转),将生成的小矩形组合成各种箭头样式;

HTML

  1. <section class="main">
  2. <header class="title">图标变形过渡效果缩放式菜单</header>
  3. <section>
  4. <button>图标</button>
  5. <header>
  6. #300x100 淡色系
  7. </header>
  8. <div>
  9. <article>
  10. <img src="http://www.gbtags.com/gb/laitu/300x100" alt="" />
  11. </article>
  12. </div>
  13. </section>
  14. <section>
  15. <button>图标</button>
  16. <header>
  17. #300x100 暗色系
  18. </header>
  19. <div>
  20. <article>
  21. <img src="http://www.gbtags.com/gb/laitu/300x100/666666/ffffff" alt="" />
  22. </article>
  23. </div>
  24. </section>
  25. </section>

CSS

  1. * { box-sizing:border-box;}
  2. body { font-family: 'microsoft yahei',Arial,sans-serif; background: #aaa;}
  3. section { position: relative; width:100%;}
  4. section.main { position: absolute; top:10%; left:25%; width:50%; max-width:30em; min-width:15em; border-radius:5px; overflow: hidden;}
  5. section.main > header { background: orange; color:#fff; line-height: 1.2em; text-align: center;}
  6. section section:last-child { border:none;}
  7. section > div { height:; overflow: hidden; transition:all .4s ease-in-out;}
  8. article,header { padding:1em; line-height: 1em;}
  9. header:not(.title) { width:100%; overflow: hidden; height:3em; background: #efefef; cursor:pointer; color:#888; white-space:nowrap; text-overflow: ellipsis; padding-right: 2.1em;}
  10. header:not(.title):hover { background: #e8e8e8;}
  11. article { line-height: 1.4em; background: rgba(255, 255, 255, .7);}
  12. article img { width:100%; height:auto; border:2px solid white; border-radius: 3px;}
  13.  
  14. /* 使用CSS3的伪选择器,生成关闭和向下两个图标按钮; */
  15. /* 使用变形属性,组合位移和旋转,可将生成的小矩形组合成向下按钮,同样也可以组装成关闭按钮; */
  16. section button { position: absolute; right:; margin:; padding:; height:3em; width:3em; outline:none; border:; background: none; text-indent: -9999px; pointer-events:none; cursor:pointer;}
  17. section button:before,
  18. section button:after { content:''; display: block; position: absolute; width:4px; height:12px; background: orange; border-radius: .3em; top:50%; left:50%; transition:all .3s ease-in-out;}
  19.  
  20. /*向左箭头*/
  21. /*section button:before { transform:translate(0%, -50%) rotate(45deg);}
  22. section button:after { transform:translate(0%, 0%) rotate(-45deg);}*/
  23.  
  24. /*向右箭头*/
  25. /*section button:before { transform:translate(0%, -50%) rotate(-45deg);}
  26. section button:after { transform:translate(0%, 0%) rotate(45deg);}*/
  27.  
  28. /*向上箭头*/
  29. /*section button:before { transform:translate(75%, -20%) rotate(-45deg);}
  30. section button:after { transform:translate(-75%, -20%) rotate(45deg);}*/
  31.  
  32. /*向下箭头*/
  33. section button:before { transform:translate(75%, 0%) rotate(45deg);}
  34. section button:after { transform:translate(-75%, 0%) rotate(-45deg);}
  35.  
  36. /* 点击之后需要变成"X"; */
  37. section.open button:after,section.open button:before { background: red; height:14px; }
  38. section.open button:before { transform:translate(-75%, -20%) rotate(45deg);}
  39. section.open button:after { transform:translate(-75%, -20%) rotate(-45deg);}

JavaScript

  1. $(function(){
  2. $('section section header').on('click', function () {
  3. var $this = $(this),
  4. parent_section = $this.parent(),
  5. closeDiv = $this.siblings('div'),
  6. contentheight = closeDiv.children('article').outerHeight();
  7. (closeDiv.height() === 0 ) ? closeDiv.height(contentheight) : closeDiv.height(0);
  8. // 更改容器高度;
  9. $this.parents('section').first().toggleClass('open');
  10. // 更改箭头样式;
  11. });
  12. });

CSS--使用伪选择器制作箭头图标的更多相关文章

  1. 用CSS伪元素制作箭头

    现在让我们开始制作箭头吧! 在开始前,你要知道如何用CSS去画一个三角形,如果还不清楚可以看看这里纯CSS画各种图形 我们用到两个CSS伪元素,before和after,它们属于行内元素,但可以用di ...

  2. css 利用border属性制作箭头 Using Borders to Make Pure CSS Arrows

    不再需要多余的图片 用border属性自然能创造箭头效果 学习地址:http://tech.patientslikeme.com/2010/11/09/using-borders-to-make-pu ...

  3. css 伪类选择器制作登录框表单

    使用伪类选择器 制作鼠标悬停时文本框出现橙色虚线边框 制作鼠标激活时出现背景颜色淡橙色 使用css制作文本框圆角矩形效果,制作文本框背景图片,及背景不重复效果 <!DOCTYPE html> ...

  4. CSS-用伪类制作小箭头(轮播图的左右切换btn)

    先上学习地址:http://www.htmleaf.com/Demo/201610234136.html 作者对轮播图左右按钮的处理方法一改往常,不是简单地用btn.prev+btn.next的图片代 ...

  5. CSS-用伪元素制作小箭头(轮播图的左右切换btn)

    先上学习地址:http://www.htmleaf.com/Demo/201610234136.html 作者对轮播图左右按钮的处理方法一改往常,不是简单地用btn.prev+btn.next的图片代 ...

  6. CSS制作简单图标

    CSS制作图标包括知识点如border-width.border-style.border-color.border-radius.对元素的定位拼接.旋转等结合起来. 图标效果如下(拖动滑块可缩放图标 ...

  7. css的伪元素 ::after ::before 和 图标字体的使用

    浅谈css的伪元素::after和::before   css中的::after和::before已经被大量地使用在我们日常开发中了,使用他们可以使我们的文档结构更加简洁.但是很多人对::after和 ...

  8. CSS之旅——第三站 强大的伪选择器

    说到伪选择器,真的让我体会到了CSS的无比强大,强大到自己貌似都不认识CSS了,有点C# 6.0中一些语法糖带给我们的震撼...首先 我们可以在VS里面提前预览一下. 可以看到,上面的伪类有很多很多, ...

  9. CSS的总结(选择器,伪类等...)

    关于组合选择器可参考:http://www.cnblogs.com/starof/p/4453458.html 主要内容 CSS概述 CSS和HTML结合的四种方式 CSS样式优先级和代码规范 CSS ...

随机推荐

  1. Android-Java-构造函数间调用&this内存图

    构造函数间调用: 描述Person对象: package android.java.oop08; // 描述Person对象 public class Person { public String n ...

  2. redis之一初识redis

    本文主要围绕以下几点进行阐述: 1.什么是redis? 2.为什么要使用redis呢? 3.redis的一些基本配置 4.redis的缺点? 正文: 1.什么是redis? Redis是一款内存高速缓 ...

  3. 用installshield2013 将winform程序打包成exe执行程序

    前期准备工作 1,一个已经测试通过的winform程序 2,安装好的installshield2013插件   ps:一般VS都没有安装此插件,需要自己去下载 打包步骤 1,新建一个打包程序 ps:如 ...

  4. 单源最短路径算法——Bellman-ford算法和Dijkstra算法

     BellMan-ford算法描述 1.初始化:将除源点外的所有顶点的最短距离估计值 dist[v] ← +∞, dist[s] ←0; 2.迭代求解:反复对边集E中的每条边进行松弛操作,使得顶点集V ...

  5. Java设计模式----解释器模式

    计算器中,我们输入“20 + 10 - 5”,计算器会得出结果25并返回给我们.可你有没有想过计算器是怎样完成四则运算的?或者说,计算器是怎样识别你输入的这串字符串信息,并加以解析,然后执行之,得出结 ...

  6. maya2017卸载/安装失败/如何彻底卸载清除干净maya2017注册表和文件的方法

    maya2017提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装maya2017失败提示maya2017安装未完成,某些产品无法安装,也有时候想重新安装maya ...

  7. 用react + redux + router写一个todo

    概述 最近学习redux,打算用redux + router写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 我只实现了Footer组件的router,其它组件的实现方法是类 ...

  8. java相关技术问答(一)

    网上一些没有标准答案的面试题,我自己做的解答总结,有任何异议可以提出来~^_^,不断更新中... Springboot除了自动配置与传统的spring还有哪些不同 传统的springweb项目需要部署 ...

  9. 《机器学习实战(基于scikit-learn和TensorFlow)》第五章内容学习心得

    本章在讲支持向量机(Support Vector Machine). 支持向量机,一个功能强大的机器学习模型,能够执行线性或非线性数据的分类.回归甚至异常值检测的任务.它适用于中小型数据集的分类. 线 ...

  10. Java 实现 HDFS 文件基本操作

    1. pom <hadoop.version>2.7.3</hadoop.version> <dependency> <groupId>org.apac ...