box-shadow 是css3中定义的设置元素阴影的属性,其语法结构如下:

 <shadow> = inset? && <length>{2,4} && <color>?

1st <length>为水平位置的偏移 必选

2nd <length>为竖直方向偏移 必选

3rd <length>为模糊化的指数 可选

4th<length> 为模糊的扩散距离 可选

inset 表示十分位内部偏移 可选

color 为阴影的颜色

但是如果我们想要给图片设置内部偏移的阴影时,就会导致我们设置的阴影被图片给挡住。

为了解决这个问题,我们可以通过设置和图片一样大小的遮罩的方式进行解决:

.img-box-shadow{
        position: absolute;
        width: 100%;
        height: 100%;
        box-shadow:  0px 0px 30px 10px gray inset;
        -moz-box-shadow:  0px 0px 30px 10px gray inset;
        -webkit-box-shadow:  0px 0px 30px 10px gray inset;
}

该元素是定位到父级元素内的,所以要给父级元素设定 position:relative;

当然既然我们使用了css3的样式,我也可以通过给父级元素直接添加伪类元素的方式进行修改,而且减少了dom元素的使用,使得样式和内容进行了分离,也正是伪类元素真正被引入的目的:

.img-wrapper{
   position:relative;
}

.img-wrapper:before{
   position:abosolute;
   width:100%;
   height:100%;
   box-shadow:  0px 0px 30px 10px gray inset;
   -moz-box-shadow:  0px 0px 30px 10px gray inset;
   -webkit-box-shadow:  0px 0px 30px 10px gray inset;
}

网上还有通过js的方式,将img替换为div,图片修改为背景的方式,实现图片的内部阴影效果的实现。这里我们不进行推荐,因为你要使用box-shadow的话,浏览器必须支持css3属性,使用能够使用css3的话,我们没有必要再将我们的样式效果交给js进行处理,这样大大违背了css3将页面元素、样式和逻辑相互分离的目的。

box-shadow 给图片添加内部阴影的更多相关文章

  1. 使用CSS为图片添加边框的几种方法

    css的应用十分广泛,即便用在图片的效果中也是方法多样,本文下面就介绍五种为图片添加特殊效果边框的CSS写法阴影效果 通过使用带有一些padding之的背景图来添加阴影效果. HTML <img ...

  2. css2.1实现图片添加阴影效果

    盒子里面放了img标签,盒子浮动后,盒子的背景图片(就是阴影图片)会应用图片的宽高. <!DOCTYPE html> <html lang="en"> &l ...

  3. UWP Button添加圆角阴影(三)

    原文:UWP Button添加圆角阴影(三) Composition DropShadow是CompositionAPI中的东西,使用Storyboard设置某个属性,就是频繁的触发put_xxx() ...

  4. UWP Button添加圆角阴影(二)

    原文:UWP Button添加圆角阴影(二) 阴影 对于阴影呢,WindowsCommunityToolkit中已经有封装好的DropShadowPanel啦,只要引用Microsoft.Toolki ...

  5. php给图片添加文字水印方法汇总

    在php中要给图片加水印我们需要给php安装GD库了,这里我们不介绍GD库安装,只介绍怎么利用php给图片添加文字水印的4种方法的汇总.有需要的小伙伴可以参考下. 1: 面向过程的编写方法 1 2 3 ...

  6. 使用CSS为图片添加更多趣味的5种方法

    使用Photoshop为每个图片添加某种样式虽然可行,但会是相当乏味且困难的长久工作.下面要介绍的CSS技巧将帮助你从痛苦中解脱出来! 阴影效果 通过使用带有一些padding之的背景图来添加阴影效果 ...

  7. HTML中图片添加

    图片添加后保存的是添加路径 例: <div class="form-group"> <label class="col-sm-3 control-lab ...

  8. ios图片添加文字或者水印

    在项目中,我们会对图片做一些处理,但是我们要记住,一般在客户端做图片处理的数量不宜太多,因为受设备性能的限制,如果批量的处理图片,将会带来交互体验性上的一些问题.首先让我们来看看在图片上添加文字的方法 ...

  9. iOS给图片添加滤镜&使用openGLES动态渲染图片

    给图片增加滤镜有这两种方式: CoreImage / openGLES 下面先说明如何使用CoreImage给图片添加滤镜, 主要为以下步骤: #1.导入CIImage格式的原始图片 #2.创建CIF ...

随机推荐

  1. iOS框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  2. stuts1:(Struts)Action类及其相关类

    org.apache.struts.action.Action类是Struts的心脏,也是客户请求和业务操作间的桥梁.每个Action类通常设计为代替客户完成某种操作.一旦正确的Action实例确定, ...

  3. C# Chart 折线图 多条数据展示

    private void btn_Click(object sender, EventArgs e) { DBHelper db = new DBHelper(); DataSet ds = db.G ...

  4. js 获取浏览器内核

    <script language="JavaScript" type="text/javascript">    var browser = {   ...

  5. 浅谈标签构建——TagBuilder

    在很多项目中,可能我们需要写一些通用的控件标签,今天来简单的学习一下吧. 在前文中已经学习了 如何自定义MVC控件标签 ,感兴趣的朋友可以去看看. 今天主要还是讲解一下TagBuilder 我们打开源 ...

  6. 忽然有一种感觉:云存储必须从系统级定制,所以必须对Linux相当熟悉。Windows下开发软件的模式已经过时了

    看了诸多招聘帖子以后的感觉- 工作内容: .存储相关产品的设计.开发和维护. .Linux系统应用程序研发. .主流Linux内核文件系统研发. .自动化测试框架和工具的研发. 职位要求: .计算机相 ...

  7. thinkphp中的where()方法

    where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询.表达式查询.快捷查询.区间查询.组合查询在内的查询操作.where方法 ...

  8. Unix/Linux环境C编程入门教程(34) 编程管理系统中的用户

    1.用户管理相关函数介绍 geteuid(取得有效的用户识别码) 相关函数 getuid,setreuid,setuid 表头文件 #include<unistd.h> #include& ...

  9. Eclipse Velocity插件安装

    打开eclipse安装velocity插件,这里有两种eclipse velocity的安装 方式一:不推荐的安装(安装会失败) Help>install new software>add ...

  10. 在PHP中处理表单之—Checkbox

    原文翻译自:http://www.html-form-guide.com/php-form/php-form-checkbox.html 单个checkbox  形如: <form action ...