利用CSS3特性巧妙实现漂亮的DIV箭头
DIV箭头用于表现DIV内容的指向,是使用非常普遍的一种表现形式,例如新浪微博的消息转发:

还有傲游网站的导航条:

像傲游账户上方这种箭头更需要多幅图片以表现箭头和hover的效果。

传统的实现方式都需要一副表示箭头的图片放在DIV上方来实现,例如新浪微博的相关CSS如下:

而使用CSS3的特性,我们不需要图片就可以实现更加华丽的效果,这样做的好处还包括减少本地文件系统的读取、节省服务器带宽和连接数、避免文件下载失败带来的错误等等。
实现的原理是:我们可以将箭头看作是一个矩形或者菱形的一个角,使用CSS3的属性transform来实现矩形的旋转。
朝上的箭头需要将矩形旋转45度,我们使用transform: rotate(45deg)来实现,另外针对不同的浏览器还需要添加不同的hack,例如Opera的-o-transform、Firefox的-moz-transform,下面以Chrome浏览器为例实现一个样例。
定义一个arrow-shadow样式,内容如下:
.arrow-shadow {
-webkit-transform:rotate(45deg);
border:1px solid #AAAAAA;
height:40px;
position:absolute;
width:40px;
}
实现的效果如下所示:

为了更加饱满,我们加上CSS3的盒阴影,
.arrow-shadow {
-webkit-transform:rotate(45deg);
-webkit-box-shadow:0 0 10px 0 #aaa;
height:40px;
position:absolute;
width:40px;
}
现在效果如下:

在外面加一层DIV控制它的高度和宽度。
.arrow-outer {
height:24px;
overflow:hidden;
position:absolute;
width:60px;
}
效果如下:

现在我们已经有了一个漂亮的箭头,但是这还不够,为了表现得更加出色,我们再加一层内部的箭头。

关键代码和结构如下:
<style type="text/css">
.arrow-outer {
position:absolute;
height:24px;
width:60px;
overflow:hidden;
}
.arrow-shadow {
-webkit-box-shadow:0 0 10px 0 #AAAAAA;
-webkit-transform:rotate(45deg);
background:none repeat scroll 0 0 #FFFFFF;
height:40px;
left:15px;
position:absolute;
top:16px;
width:40px;
}
.arrow-inner {
position:relative;
left:10px;
top:20px;
height:40px;
width:40px;
background:#fff;
border:5px solid #ededed;
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
}
</style>
<div class="arrow-outer">
<div class="arrow-shadow">
</div>
</div>
<div class="arrow-inner">
</div>
在外面加上一层容器,就可以看到箭头了。

最后完整的效果图如下所示:

CSS3、HTML5的发展和完善让我们编写代码更加简便和快捷,实现的效果也更加漂亮,例如背景的渐变不再需要背景图片的平铺就可以通过CSS代码直接实现,但是有时候需要经过一些转换,才能将这些新技术应用到我们常见的功能中去,这需要我们多加思考和保持思维的灵感。
利用CSS3特性巧妙实现漂亮的DIV箭头的更多相关文章
- 利用css3特性写出三角形(兼容IE浏览器)
利用CSS写出三角形的效果 效果如图: 代码如下: .triangle-up { width:0px; height:0px; border-left:10px solid transparent; ...
- 利用css3给座右铭设置漂亮的渐变色
.footer-container .footer-content p .motto { font-weight: bolder; -webkit-background-clip: text; -we ...
- 利用CSS3实现div页面淡入动画特效
利用CSS3实现页面淡入动画特效 摘要 利用CSS3动画属性"@keyframes "可实现一些动态特效,具体语法和参数可以网上自行学习.这篇文章主要是实践应用一下这个动画属性 ...
- 利用CSS3实现图片无间断轮播图的实现思路
前言:图片轮播效果现在在各大网站都是非常普遍的,以前我们都是通过postion的left or right来控制dom的移动,这里我要说的是利用css3来制作轮播!相比以前通过postion来移动do ...
- [转]JavaScript快速检测浏览器对CSS3特性的支持
转自:https://yuguo.us/weblog/detect-css-support-in-browsers-with-javascript/ ------------------------- ...
- 纯代码利用CSS3 圆角边框和盒子阴影 制作 iphone 手机效果
原文:纯代码利用CSS3 圆角边框和盒子阴影 制作 iphone 手机效果 大家好,我是小强老师. 今天我们看下CSS3最为简单的两个属性. css3给我们带来了很多视觉的感受和变化,以前的图片做的事 ...
- 利用CSS3 filter:drop-shadow实现纯CSS改变图片颜色
体验更优排版请移步原文:http://blog.kwin.wang/programming/css3-filter-drop-shadow-change-color.html 之前做项目过程中有时候遇 ...
- 利用css3的text-shadow属性实现文字阴影乳白效果
现在CSS3+html5的网页应用的越来越广泛了.很多网页中的字体同样可以用CSS3来实现炫酷的效果. 下面就介绍一下利用css3的text-shadow属性实现文字阴影乳白效果.这是在设计达人上面看 ...
- 现在就能投入使用的12个高端大气上档次的CSS3特性
原文:http://tutorialzine.com/2013/10/12-awesome-css3-features-you-can-finally-use/ 原文中有demo展示及下载. 翻译开始 ...
随机推荐
- rpm安装软件(需管理员权限)
常用命名规范 linux-1.2.0-30.e16.i686.rpm rpm基本命令 安装rpm -i software.rpm 卸载rpm -e software 升级rpm -U software ...
- Jquery html页面处理基础
1.怎样获得浏览器的可视高度? var windHight = $(window).height(); //获得浏览器的可视高度 2.怎样获得滚动条相对于顶部的高度? var scrollHi ...
- CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
Description A thief is running away! We can consider the city to N–. The tricky thief starts his esc ...
- 使用CocoaPods找不到头文件解决方法
Project->Info->Configurations
- python 网页爬虫+保存图片+多线程+网络代理
今天,又算是浪费了一天了.python爬虫,之前写过简单的版本,那个时候还不懂原理,现在算是收尾吧. 以前对网页爬虫不了解,感觉非常神奇,但是解开这面面纱,似乎里面的原理并不是很难掌握.首先,明白一个 ...
- [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)
结点: 包括一个数据元素及若干个指向其它子树的分支:例如,A,B,C,D等. 在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点. 在C语言 ...
- C++Primer 中间Sales_items.h头文件
#ifndef SALESITEM_H #define SALESITEM_H #include <iostream> #include <string> class Sale ...
- data按钮
1.加载状态 通过按钮(Button)插件,您可以添加进一些交互,比如控制按钮状态,或者为其他组件(如工具栏)创建按钮组. 如需向按钮添加加载状态,只需要简单地向 button 元素添加 data-l ...
- android监听键盘
android中的带有输入功能的页面布局经常被弹出的键盘遮挡,一种处理方法是监听键盘的弹出,设置布局的padding或隐藏某些占位控件,使得输入框不被键盘遮挡.一种常用的方法是当Activity设置为 ...
- json(转)
转自:http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用J ...