// 使用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. WPF实现特殊统计图

    效果图: ActiveFunItem.xaml代码: <UserControl x:Class="SunCreate.Vipf.Client.UI.ActiveFunItem" ...

  2. 漏洞应急响应之批量poc验证

    1.文章难易度 [★★★] 2.文章知识点: python,poc验证; 3.文章作者: 野驴 4.本文参与 i春秋学院原创文章奖励计划,未经许可禁止转载! 0x01前言 当互联网爆出高危漏洞,或者团 ...

  3. 如何用impress.js写有逼格的ppt

    概述 这是我学习课程impress让你的内容"舞"起来而做的总结和练手. 你可以点这里在线预览我做的ppt 注意:等加载完了之后,点击空格键翻页! 简化模板 下面是一个简化的模板 ...

  4. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  5. SUDO:/ETC/SUDOERS 可被任何人写 解决方案

    问题一: sudo: /etc/sudoers is world writablesudo: no valid sudoers sources found, quittingsudo: unable ...

  6. Centos6.5安装Python2.7.9

    1. 问题背景 Centos6.5默认自带的python环境是2.6.6,python的一些特性没法使用,所以要对python进行升级,借鉴了网上其他同学的安装教程,但是还是遇到一些坑,不是那木顺利, ...

  7. JavaEmail-邮箱

    package service; import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.Message;import java ...

  8. Xamarin.Android 无法检索到 Resource 问题

    错误提示:当前上下文中不存在名称"Resource" 解决方法: 1.看是否有其他错误,如果有其他错误优先解决.(其他错误导致无法感知到Resource) 2.重新生成解决方案.( ...

  9. js按钮 防重复提交

    给html 按钮加id属性   例: <button id="addBtn"  onclinck="check()">  </button&g ...

  10. Python之unittest测试代码

    前言 编写函数或者类时,还可以为其编写测试.通过测试,可确定代码面对各种输入都能够按要求的那样工作. 本次我将介绍如何使用Python模块unittest中的工具来测试代码. 测试函数 首先我们先编写 ...