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. 写sql语句注意事项

    做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...

  2. Android之日期及时间选择对话框

    转:http://www.cnblogs.com/linjiqin/archive/2011/03/10/1980215.html main.xml布局文件 <?xml version=&quo ...

  3. java菜鸟篇<四> ZTree入门篇

    今天准备入手ZTree,于是在百度上搜了搜,找到了开源网址和一些大神们的教程,于是乎下午开始了组织树(ZTree)的练习 初步完整的作品是这个样子的: 1.咱们要去这个工具的开源网里找下载的东西: ( ...

  4. Python之路第六天,进阶-算法

    排序算法 冒泡排序 冒泡排序原理: 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第 ...

  5. Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

    1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...

  6. python 调用shell或windows命令

    目前使用到的有两种方式:os.system()和os.popen() import os os.system('cd e:cjx') #调用后返回执行结果状态 如果想获得返回结果,则使用以下方式: i ...

  7. MEMS加速度计工作原理

    一般加速度计有两块芯片组成,一块是MEMS传感器,另一块是客户化的信号处理芯片. 加速度计也称惯性传感器,因为它的工作原理就是靠MEMS中可移动部分的惯性.由于中间电容板的质量很大,而且它是一种悬臂构 ...

  8. LoggingApplicationListener

    org.springframework.boot:spring-boot:1.3.0.M1 spring-boot-1.3.0.M1.jar package org.springframework.b ...

  9. haproxy redirect prefix

    acl short_domain hdr(Host) -i etiantian.org redirect prefix http://www.etiantian.org code 301 if sho ...

  10. Web.config中rewite 节点引起的500.19错误

    刚刚接手一个外包的小项目,客户给了发布后的网站文件和数据库,想在本地搭建一套环境先运行下看看网站原有的效果.数据库还原什么都弄好了,数据库字符串也配置好,部署在本地IIS里面,访问了下,结果看到的是5 ...