html - 如何在CSS中为图像添加内阴影

标签 html css image display box-shadow

<分区>

我正在尝试为图像添加内部阴影,但无法获得想要的结果。

这是我目前拥有的:

https://codepen.io/nvision/pen/lBKEy

.shadow {
  display: inline-block;
  position: relative;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  -moz-box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
  -webkit-box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
  box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
}

.shadow img {
  max-width: 100%;
  position: relative;
  z-index: -1;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
}

问题是图像底部和实际内部阴影之间的浅灰色填充。我想要的是完全没有填充。只是一个内部阴影,仅此而已。

这是我正在尝试实现的示例:

inner shadow css

最佳答案

display: block 添加到 img 元素以删除下面的 padding。这是因为 img 元素默认以内联方式呈现。默认情况下,所有内联 block 元素都有一些 vertical-align 值 - 通过应用 vertical-align: top 或重置 display 属性来重置它通过应用 display: block。请参阅下面的演示:

/* apply a natural box layout model to all elements */
*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.shadow {
  display: inline-block;
  position: relative;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  -moz-box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
  -webkit-box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
  box-shadow: rgba(0, 0, 0, 0.8) 3px 3px 10px inset;
  -webkit-transition: box-shadow 0.2s ease-in;
  -moz-transition: box-shadow 0.2s ease-in;
  transition: box-shadow 0.2s ease-in;
}
.shadow:hover {
  -moz-box-shadow: rgba(0, 0, 0, 0.8) 5px 5px 55px inset;
  -webkit-box-shadow: rgba(0, 0, 0, 0.8) 5px 5px 55px inset;
  box-shadow: rgba(0, 0, 0, 0.8) 5px 5px 55px inset;
}
.shadow img {
  max-width: 100%;
  position: relative;
  z-index: -1;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  display: block; /* ADDED */
}

.column {
  float: left;
  width: 25%;
  padding: 0 15px;
}
<div class="column">
  <div class="shadow">
    <img src="http://fillmurray.com/250/250">
  </div>  
</div>

<div class="column">
  <div class="shadow">
    <img src="http://fillmurray.com/370/370">
  </div>
</div>

<div class="column">
  <div class="shadow">
    <img src="http://fillmurray.com/200/200">
  </div>
</div>

<div class="column">
  <div class="shadow">
    <img src="http://fillmurray.com/400/400">
  </div>
</div>

关于html - 如何在CSS中为图像添加内阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503214/

相关文章:

css 垂直对齐溢出标题

javascript - 如何在 foreach 循环中使用 "for"属性

python - 如何在 Django 中显示来自模型的图像

javascript - 麻烦造型扩展 polymer 元素(纸 slider )

javascript - 如何在服务器端查看用户认证状态

jquery - 获取一个 div 的高度并将其应用于单独的一个

css - 在 symfony 中为图像添加修订号以避免浏览器缓存

jQuery:在 WebKit(Chrome/Safari) 中使用带有 anchor 链接的 Append()

php - "visibility:hidden;"不适用于 TCPDF

jquery - 在 IE8 中对重复的 div 应用 CSS 规则