使用CSS在方形元素上绘制圆形阴影

时间:2017-10-10 16:41:25

标签: css shadow

是否有可能在方形元素下创建阴影(展开值设置为零的整洁圆圈)? 例如。一个没有圆形边框的DIV。

我有以下元素,我无法进一步添加标记:

<div class="square"></div>

此外,我不能使用:before:after伪元素,因为它们已经设置过样式。这就是我试图调整盒子阴影的原因。

我链接了一个我想要实现的例子,只是为了更好地用视觉解释:

https://jsfiddle.net/landzup/L275p85L/

我只使用:before伪元素来显示结果。

2 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。我只需将方形div放在一个更大的容器div中,然后按照您的意愿设置它。我已经为您提供了几个例子。

我希望这有帮助! - 詹姆斯。

&#13;
&#13;
.square {
  width: 20px;
  height: 20px;
  display: block;
  position: relative;
  background: #fff;
  opacity: 1;
  margin: 5px 0 0 5px;
}

.circle,.circle-with-spread {
  display: block;
  background-color: #000;
  opacity: 0.3;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  position: absolute;
}

.circle-with-spread {
  box-shadow: 0 0 5px 5px rgba(0,0,0,1);
}
&#13;
<!-- Example Circle Shadow -->
<div class="circle">
  <div class="square"></div>
</div>
<!-- Spacing makes it look nice -->
<br />
<br />
<br />
<!-- Second Example -->
<div class="circle-with-spread">
  <div class="square"></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我认为我找到了一个很好的解决方案:

assoc
.wrapper {
  margin-left: 5rem;
  margin-top: 5rem;
}

.element {
  width: 14px;
  height: 14px;
  border: 2px solid #5f5f5f;
  border-radius: 2px;
  background-color: #fff;
}

.element:before {
  content: '';
  position: absolute;
    width: 14px;
  height: 14px;
  z-index: -1;
  border-radius: 50%;
  background-color: transparent;
  opacity: 0.2;
  box-shadow: 0px 0px 0px 13px rgba(0, 0, 0, .6);
}

我希望这对您有帮助,玛塔。