css - 如何在半透明图像周围绘制边框? (CSS)

标签 css image png border

<分区>

我想知道如何在半透明的图像周围绘制边框,也就是说,我不想要一个框形边框,也不想要一个边框半径,而是一个实际适用于图像本身形状的边框。

根据 this post这是不可能的,而且this one简单地建议在一些照片编辑程序(如 Photoshop)中编辑图像。

但是如果图像输入不是我的怎么办?如果我需要处理一系列用户输入的图像到我的网站并添加该边框,则软件选项将不起作用。

解决这个问题的一种方法是使用 Canvas ,但是没有一种纯粹、简单的 css 方法可以做到这一点吗?谢谢。

最佳答案

截至目前(2015 年 1 月 31 日),有一种方法可以在不使用 Canvas 、使用纯 CSS 且仅用两行代码的情况下做到这一点。

诀窍是使用 css filter-webkit-filter 属性绘制两个没有模糊的阴影,一个用于正轴,一个用于负轴,这将环绕图像,这将提供(希望)所需的效果。

注意:IE 完全不支持 css 过滤器(希望 Spartan 做得更好),这里是 compatibility table . (感谢web-tiki)

第一个代码段 ( fiddle) 将应用尽可能简单的边框

img {
  -webkit-filter: drop-shadow(1px 1px 0 black)
                  drop-shadow(-1px -1px 0 black);
  filter: drop-shadow(1px 1px 0 black) 
          drop-shadow(-1px -1px 0 black);
}

body {
  background-color: lightcoral;
}
<img src="http://i.imgur.com/GZoXRjS.png" width="250">

如您所见,一些图像(如 this awesome baymax render )需要稍微调整一下,您可以看到右边框比左边框小一点。

考虑到这一点,这里是完美的边框代码段 ( fiddle ),仅对值进行了微小的调整。

img {
  -webkit-filter: drop-shadow(2px 1px 0 black)
                  drop-shadow(-1px -1px 0 black);
  filter: drop-shadow(2px 1px 0 black) 
          drop-shadow(-1px -1px 0 black);
}

body {
  background-color: khaki;
}
<img src="http://i.imgur.com/GZoXRjS.png" width="250">

这应该很好地覆盖了边界,但我们仍然可以从中获得更多乐趣,看看这个很棒的亮度效果片段 ( fiddle )。

img{
    -webkit-filter: drop-shadow(1px 1px 0 black) 
                    drop-shadow(-1px -1px 0 white);
    filter:drop-shadow(1px 1px 0 black) 
           drop-shadow(-1px -1px 0 white);
}

body{
    background-color:lightblue;
}
<img src="http://i.imgur.com/GZoXRjS.png" width="250">

希望这对任何想知道半透明图像环绕边框可能性的人有所帮助!

关于css - 如何在半透明图像周围绘制边框? (CSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248153/

上一篇:HTML 定位 : overlap between navigation bar and text

下一篇:html - 如何将 fontawesome 图标对齐到一条线的中间(已经尝试过现有的解决方案)

相关文章:

javascript - 模态框不显示

android - PhoneGap Android 某些图像显示在浏览器上,但不显示在模拟器中

html - 试图让图像适合盒子和盒子以响应

javascript - Nodejs创建一个里面有文字的PNG图像

image - 隔行扫描 .png 文件的大小如何小于原始文件?

asp.net-mvc - MVC 中的动态图像(Stack Exchange Beta 站点)

javascript - 在 CSS 中选择第二个 tr 的第一个 td

javascript - 在 Link 函数中使用 add Class 与在 AngularJS 的 Compile 函数中使用 addClass

java - 从 NetBeans 执行上下文获取资源有效,但从命令行执行 jar 时无效

javascript - 创建一个不切换页面但切换您在屏幕上看到的内容的导航栏