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

HTML

 <section class="main">
<header class="title">图标变形过渡效果缩放式菜单</header>
<section>
<button>图标</button>
<header>
#300x100 淡色系
</header>
<div>
<article>
<img src="http://www.gbtags.com/gb/laitu/300x100" alt="" />
</article>
</div>
</section>
<section>
<button>图标</button>
<header>
#300x100 暗色系
</header>
<div>
<article>
<img src="http://www.gbtags.com/gb/laitu/300x100/666666/ffffff" alt="" />
</article>
</div>
</section>
</section>

CSS

 * { box-sizing:border-box;}
body { font-family: 'microsoft yahei',Arial,sans-serif; background: #aaa;}
section { position: relative; width:100%;}
section.main { position: absolute; top:10%; left:25%; width:50%; max-width:30em; min-width:15em; border-radius:5px; overflow: hidden;}
section.main > header { background: orange; color:#fff; line-height: 1.2em; text-align: center;}
section section:last-child { border:none;}
section > div { height:; overflow: hidden; transition:all .4s ease-in-out;}
article,header { padding:1em; line-height: 1em;}
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;}
header:not(.title):hover { background: #e8e8e8;}
article { line-height: 1.4em; background: rgba(255, 255, 255, .7);}
article img { width:100%; height:auto; border:2px solid white; border-radius: 3px;} /* 使用CSS3的伪选择器,生成关闭和向下两个图标按钮; */
/* 使用变形属性,组合位移和旋转,可将生成的小矩形组合成向下按钮,同样也可以组装成关闭按钮; */
section button { position: absolute; right:; margin:; padding:; height:3em; width:3em; outline:none; border:; background: none; text-indent: -9999px; pointer-events:none; cursor:pointer;}
section button:before,
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;} /*向左箭头*/
/*section button:before { transform:translate(0%, -50%) rotate(45deg);}
section button:after { transform:translate(0%, 0%) rotate(-45deg);}*/ /*向右箭头*/
/*section button:before { transform:translate(0%, -50%) rotate(-45deg);}
section button:after { transform:translate(0%, 0%) rotate(45deg);}*/ /*向上箭头*/
/*section button:before { transform:translate(75%, -20%) rotate(-45deg);}
section button:after { transform:translate(-75%, -20%) rotate(45deg);}*/ /*向下箭头*/
section button:before { transform:translate(75%, 0%) rotate(45deg);}
section button:after { transform:translate(-75%, 0%) rotate(-45deg);} /* 点击之后需要变成"X"; */
section.open button:after,section.open button:before { background: red; height:14px; }
section.open button:before { transform:translate(-75%, -20%) rotate(45deg);}
section.open button:after { transform:translate(-75%, -20%) rotate(-45deg);}

JavaScript

 $(function(){
$('section section header').on('click', function () {
var $this = $(this),
parent_section = $this.parent(),
closeDiv = $this.siblings('div'),
contentheight = closeDiv.children('article').outerHeight();
(closeDiv.height() === 0 ) ? closeDiv.height(contentheight) : closeDiv.height(0);
// 更改容器高度;
$this.parents('section').first().toggleClass('open');
// 更改箭头样式;
});
});

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. magic cube

    搜索题, 每个状态能扩展出12种状态,最多进行5次旋转12^5 要用到iddfs,或者我看到网上其他人用的ida* 我也是参考了别人的代码,而且这个题vj上有点问题,我看数据看了半天,愣是没看明白第二 ...

  2. RxSwift学习笔记7:buffer/window/map/flatMap/flatMapLatest/flatMapFirst/concatMap/scan/groupBy

    1.buffer的基本使用 let publishSubject = PublishSubject<String>() //buffer 方法作用是缓冲组合,第一个参数是缓冲时间,第二个参 ...

  3. Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法

    知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...

  4. [翻译] FastReport TfrxReport组件使用

    一:加载和保存报表 报表默认保存在项目窗体文件中,大多数情况下,没有更多的操作要深圳市, 因此,你不需要采取特别措施来载入报告.如果你决定保存报表到文件或是数据库中 (这样更灵活, 比如修改报表不用重 ...

  5. 背水一战 Windows 10 (81) - 全球化

    [源码下载] 背水一战 Windows 10 (81) - 全球化 作者:webabcd 介绍背水一战 Windows 10 之 全球化 Demo 格式化数字 示例1.演示全球化的基本应用Locali ...

  6. html canvas 的宽高以及像素限制

    canvas 宽高设置不合适的话,是画不出东西出来的 https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-elem ...

  7. LabVIEW(十二):VI本地化-控件标题内容的修改

    一.对于一般LabVIEW的学习,很少遇到本地化的问题但是我们经常会遇到界面控件标题的显示问题.由于各个技术领域的专业性,往往用户对VI界面的显示有自己的要求,其中就包括控件的标题问题,这可以理解成本 ...

  8. Django Rest Swagger生成api文档

    关于swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. Sw ...

  9. Cookie的存储、获取、删除操作

    var Cookie={ set: function (name, value, days) { var d = new Date; d.setTime(d.getTime() + 24*60*60* ...

  10. C# 动态生成类 枚举等

    private void GenerateCode() { /*注意,先导入下面的命名空间 using System.CodeDom using System.CodeDom.Compiler; us ...