CSS3属性box-shadow使用教程

CSS3的box-shadow属性可以让我们轻松实现图层阴影效果。我们来实战详解一下这个属性。

1. box-shadow属性的浏览器兼容性

先来看一个这个属性的浏览器兼容性:

  • Opera: 不知道是从哪个版本开始支持的,我在发这篇文章测试的时候,正好更新了Opera到最新的10.53版本,已经支持box-shadow属性。
  • Firefox通过私有属性-moz-box-shadow支持。
  • Safari和Chrome通过私有属性-webkit-box-shadow支持。
  • 所有IE不支持(不知道IE9是否有所改善)。别急,我们将在文章最后会介绍一些针对IE的Hack。

2. box-shadow属性的语法

box-shadow有六个可设值:

img{box-shadow:阴影类型 X轴位移 Y轴位移 阴影大小 阴影扩展 阴影颜色 }

  • 当不设阴影类型时,默认为投影效果。当设为inset时,为内阴影效果。
  • X轴和Y轴位移不等同但类似于Photoshop里面的”角度”和”位置。
  • 阴影大小、扩展、颜色和Photoshop里面的都同理。

3. 实例解析

让我们通过几个实例来看一个box-shadow的效果,先弄个简单的HTML供测试:

<html>
<head>
<style type="text/css">CSS部份写在这里</style>
</head>
<body>
<img  src="test.jpg" />
</body>
</html>

请注意:为了省事儿,下面的CSS代码中只写了box-shadow,在实际使用中,你应该把-moz-box-shadow和-webkit-shadow也写上。你需要做的很简,复制两个box-shadow,在它们前面分别加上-moz-和-webkit-。


img {
-moz-box-shadow:2px 2px 10px #06C;
-webkit-box-shadow:2px 2px 10px #06C;
box-shadow:2px 2px 10px #06C;
}

(1). 投影,没有位移,10px的阴影大小,没有扩展,颜色#06C

 img{box-shadow:0 0 10px #06C;}

css3 box shadow 1 CSS3属性box shadow使用教程

这里的颜色值是HEX值,我们还可以使用RGBA值,RGBA值的好处是,它多了一个Alpha透明值,你可以控制阴影的透明度。

img{box-shadow: 0 0 10px rgba(0, 255, 0, .5)}

(2). 在上面的基础上加上20px的扩展

 img{box-shadow:0 0 10px 20px #06C;}

css3 box shadow 2 CSS3属性box shadow使用教程

(3).  内阴影,无位移,10px大小,没有扩展,颜色#06C

 img{box-shadow:inset 0 0 10px #06C;}

css3 box shadow 3 CSS3属性box shadow使用教程

(4).  多重阴影效果

box-shadow可以同时使用多次,我们来个四色的阴影。


img{box-shadow:-10px 0 10px red, box-shadow:10px 0 10px blue,box-shadow:0 -10px 10px yellow,box-shadow:0 10px 10px green}

css3 box shadow 4 CSS3属性box shadow使用教程

(5). 使用多个阴影属性的顺序问题

当给同一个元素使用多个阴影属性时,需要注意它的顺序,最先写的阴影将显示在最顶层。比如下面这段代码,我们先写一个10px的绿色阴影,再写一个10px大小但扩展20px的阴影。结果是:绿色阴影层在黄色阴影层之上。

img{box-shadow:0 0 10px green;box-shadow:0 0 10px 20px yellow}

css3 box shadow 5 CSS3属性box shadow使用教程

但如果我们把顺序调一下,像这样:

img{box-shadow:0 0 10px 20px yellow,box-shadow:0 0 10px green;}

css3 box shadow 6 CSS3属性box shadow使用教程

我们将看不到后写的绿色阴影层,因为它先写且半径比较大的黄色层覆盖掉了。

4. 让IE也支持box-shadow

IE本身是shadow滤镜可以实现类似效果的,还有一些js和.htc的hack文件可以帮助你在IE中实现这一效果。我也无法一一都去尝试,这里只介绍我用过的一个。

ie-css3.htc是一个可以让IE浏览器支持部份CSS3属性的htc文件,不只是box-shadow,它还可以让你的IE浏览器支持圆角属性border-radius和文字阴影属性text-shadow。

它的使用方法是:下载它并放到你的服务器目录

在你的<head></head>里面写入下面的代码:

<!--[if IE]>
<style type="text/css">
img, #testdiv, .testbox{behavior: url(http://yourdomain.com/js/ie-css3.htc);}
</style>
<![endif]-->

蓝色部份输入要使用box-shadow属性的选择器,绿色部份输入ie-css3.htc的绝对路径,或相对路径,反正要保证能访问得到。

然后这样就OK了。但还是有几点需要注意的是:

  • 当你使用了这个htc文件后,你的CSS里面,只要写有box-shadow, -moz-box-shadow或-webkit-box-shadow的任何一种,IE就会渲染。
  • 当使用了这个htc文件后,你不能这样写box-shadow: 0 0 10px red; 而应该是box-shadow: 0px 0px 10px red; 否则IE中会失效。
  • 不支持RGBA值中的alpha透明度。
  • 不支持inset内阴影。
  • 不支持阴影扩展。
  • 阴影在IE中只会显示为黑色,不管你设置成其它什么颜色。

所以说,这个脚本了仅仅是让IE支持了部份的box-shadow值。如果你有其它更好的IE hacks脚本,欢迎留言分享。

转载于:https://www.cnblogs.com/xyzhuzhou/archive/2013/04/07/3003897.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战Zabbix-Server数据库MySQL的libdata1文件过大

原文出自http://www.linuxidc.com/Linux/2014-12/110353.htm zabbix自动清理30天前的数据 zabbix属于一个细度化的监控工具&#xff0c;其入库数据随着细度的增加相应的入库数据量也会较大&#xff0c;当数据量到一定时候的时候其反映速度会比较慢&#xff0c;尽管其监控服务在…

RadioButtonList Enabled=false 文字背景

RadioButtonList有个属性RepeatLayout"Flow"&#xff0c;可以防止控件与前面的文本换行&#xff0c;但是&#xff0c;使用这个属性之后&#xff0c;有个奇怪的问题&#xff0c;RadioButtonList 在Enabledfalse时&#xff0c;文字成灰色&#xff0c;在打印时&#xff…

我的LAMP源码编译安装linux+Apache+mysql+php

httpd-2.2.17.tar.gz mysql-5.1.51.tar.gz php-5.2.17.tar.gz mysql的安装 #安装需要的库 yum -y install ncurses ncurses-devel #创建MySQL用户及用户组 groupadd mysql useradd -g mysql -s /sbin/nologin mysql cp /home/root/mysql-5.1.41.tar.gz /usr/local/src c…

编译php,ldap问题

今天在ubunte上安装php&#xff0c;ldap模块一直报错&#xff1a; configure: error: Cannot find ldap libraries in /usr/lib. 网上都说解决方法&#xff1a; cp -frp /usr/lib64/libldap* /usr/lib/ 结果我的/usr目录下 根本就没有lib64 还是找找libldap.so在哪吧 执行&…

mysql 5.7.13 安装配置方法图文教程(linux)

原文出自&#xff1a;http://www.jb51.net/article/87160.htm 1系统约定 安装文件下载目录&#xff1a;/data/software Mysql目录安装位置&#xff1a;/usr/local/mysql 数据库保存位置&#xff1a;/data/mysql 日志保存位置&#xff1a;/data/log/mysql 2下载mysql 在官网&am…

hasOwnProperty和isPrototypeOf

hasOwnProperty和isPrototypeOf hasOwnProperty&#xff1a;是用来判断一个对象是否有你给出名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性&#xff0c;该属性必须是对象本身的一个成员。 isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实…

linux下防火墙加白名单

在linux系统中安装yum install iptables-services 然后 vi /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-N whitelist-A whitelist -s 8.8.8.8 -j ACCEPT-…

Linux LVM硬盘管理及LVM扩容

原文出自http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html 一、LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写&#xff0c;它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合&#xff0c;相当于一个大硬盘来使用&…

android系统框架()

Android系统框架介绍: 1.大体框架: -src目录: 主要是完成java代码的编写 -assets目录: 资源目录 -res目录: 存储图片,布局文件和字符串,菜单等文件 -bin目录: 输出文件夹,如生成的APK文件 -project.properties: 工程属性文件配置 -gen目录: 系统自动生成的源代码目录 R.java默认…

zabbix服务端远程执行命令

执行一些命令或者脚本就行了。 但zabbix远程执行命令需要客户端的zabbix用户要有sudo权限&#xff0c;zabbix的客户端要改的地方是配置文件里 EnableRomoteCommands1 然后要更改的是visudo里的给zabbix用户赋予权限 zabbix ALLNOPASSWD:ALL 然后把defaults requiretty注释掉。…

Keil 文本对不上格

初次使用keil3&#xff0c;光标总是定位不准&#xff0c;修改十分麻烦&#xff0c;google后解决问题&#xff0c;修改tools.ini如下(蓝色为加入项)&#xff1a;NAME"YGLenovo User", "a"EMAIL"a"ANSI1BOOK0"UV3\RELEASE_NOTES.HTM" (&…

Linux(CentOS6.5)下编译安装Nginx1.10.1

原文出自&#xff1a;http://www.cnblogs.com/comexchan/p/5815753.html Linux(CentOS6.5)下编译安装Nginx1.10.1 首先在特权账号&#xff08;root&#xff09;下安装编译时依赖项&#xff1a; yum install gcc gcc-c perl -y 首先以非特权账号&#xff08;本文以账号comex为例…

Java volatile关键字

Java 语言中的volatile变量可以被看作是一种“程度较轻的synchronized”&#xff0c;与synchronized相比&#xff0c;volatile变量所需的编码较少&#xff0c;并且运行时开销也较少&#xff0c;但是它所能实现的功能也仅是synchronized的一部分。本文介绍了几种有效使用volatil…

Zabbix 3.0 基础介绍 [一]

原文出自 http://www.abcdocker.com/abcdocker/1402 Zabbix 3.0 基础介绍 [上] zabbix 一、Zabbix介绍 zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案&#xff0c;可以提供企业级的开源分布式监控解决方案&#xff0c;由一个国外的团队持续维护更新&#xff0c;软件可以…

DOM 节点的创建、删除、替换

只要在屏幕上托三个button按钮就可以了&#xff0c;下面就是程序运行时的界面&#xff1a; <head> <title></title> <script type"text/javascript"> function CreateNode() { var pnode document.createElement(p…

Zabbix 3.0 部署监控 [二]

原文出自 http://www.abcdocker.com/abcdocker/1453 Zabbix 3.0 部署监控 [二] zabbix 一、添加监控主机及设置 1.创建主机 Agent可以干一些SNMP无法干的事情&#xff0c;例如自定义监控项 snmp相关文章&#xff1a;http://www.abcdocker.com/abcdocker/1376 这里我们先不着…

oracle 一些基本概念

数据库就是一个相片底片 实例就是相纸 一个底片可以冲多个相纸&#xff0c;但一张相纸最多冲一个底片。 数据库可以由多个实例装载和打开&#xff0c;而实例可以在任何时间点装载和打开一个数据库。实际上&#xff0c;准确地讲&#xff0c;实例在其整个生存期中最多能装载和打开…

【leetcode】Integer to Roman

最近使用开发的过程中出现了一个小问题&#xff0c;顺便记录一下原因和方法-- Question &#xff1a; Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. Anwser 1 &#xff1a; class Solution { public:st…

MySQL必会企业面试题

本文转载 老男孩教育原文&#xff1a;http://user.qzone.qq.com/49000448/blog/1427333863 1.登陆数据库 (1)单实例 mysql -uroot -poldboy (2)多实例 mysql -uroot -poldboy -S /data/3306/mysql.sock 2.查看数据库版本及当前登录用户是什么 mysql> select version(); 查看…

关于ORACLE的GUID主键生成

转自http://blog.sina.com.cn/s/blog_53d3c24a0100mplc.html项目中若采用oracle数据库&#xff0c;则主键生成可以有两种方式&#xff0c;一是用sys_guid(),二是定义一个sequence&#xff0c;然后用nextval得到ID。Oracle的定义sequence例子&#xff1a;create sequence seq_te…