代码之家  ›  专栏  ›  技术社区  ›  Mayeenul Islam

CSS:有可能在没有背景的PNG图像的轮廓上添加阴影吗?

  •  2
  • Mayeenul Islam  · 技术社区  · 11 年前

    现在这些天我想相信 一切皆有可能 ,当我看到CSS的力量时——用块元素制作不规则的形状,即。 triangles , chamfered CSS Border Corners -多么简单,多么热情!所以我试着梦想一些事情,我相信只要有一些CSS的渊博知识,这些事情是可能的。

    div.image{
        width: 18px;
        height: 18px;
        background: url(images/image-sprite.png) -70px 0;
        display: inline-block;
       }
    

    假设我放了一个“图像精灵”( image-sprite.png )宽度和高度为18px。但我称之为的图像不是18px x 18px的箱形图像,假设图像是圆形或一些不规则形状。当我把 box-shadow 在div中,当我将 text-shadow ,它不起作用,因为div/anchor元素中不包含任何文本。

    image-sprite.png

    如果我想把阴影放在元素上,而不是放在容器上(就像一个箱形的HTML元素),如图所示,阴影只放在没有背景的图像的轮廓上-那么:

    • 如何使用CSS完成?或
    • 真的有可能吗?

    注意: 我知道,当我有一个无背景的图像和Photoshop时,我可以在几乎任何元素中添加必要的阴影。但我问了这个问题, 如果 这样的事情可以通过原始CSS实现,那么这对我们来说将是一个巨大的成就。

    2 回复  |  直到 8 年前
        1
  •  3
  •   Paulie_D    11 年前

    新的CSS过滤器将允许您这样做,但浏览器支持并不是很深入。

    Codepen Example

    <div class="image">
      <img src="http://www.equissage.co.uk/wp/wp-content/uploads/2010/08/equissage-red-horse.png" alt="" />
    </div>
    
    .image img {
      width:400px;
      -webkit-filter: drop-shadow(4px 4px grey);
    
    }
    
        2
  •  0
  •   Matt Stephens    11 年前

    唯一能做到这一点的方法是用css或使用图标字体重新创建形状。

    由于要边界阴影的元素是图像,因此这些元素总是变成正方形或矩形。