CSS给倾斜的div添加阴影

3
我可以帮您翻译成中文。这段代码如下:

我有以下代码:

.angled{
background-color: red;
height: 120px;
width: 100%;
  -webkit-clip-path: polygon(0 0, 1600px 0, 1600px 53%, 0 100%);
  clip-path: polygon(0 0, 1600px 0, 1600px 53%, 0 100%);
}
<div class="angled"></div>

我想在 div 的下边缘添加内阴影。我该怎么做?

3个回答

3

您可以将倾斜的元素视为背景,可以轻松应用内部阴影:

.angeled {
  position:relative;
  height: 120px;
  overflow:hidden;
  z-index:0;
}
.angeled::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:-20px;
  left:-20px;
  right:-20px;
  bottom:0;
  transform-origin:left;
  transform:skewY(-3deg);
  background:red;
  box-shadow:0 -2px 20px green inset
}
<div class="angeled"></div>

您也可以使用渐变来创建此效果:

.angeled {
  position:relative;
  height: 120px;
  background:
    linear-gradient(red,red) top/100% 50%,
    linear-gradient(to bottom right,
      red calc(50% - 15px),green calc(50% - 1px),
      transparent 50%) bottom left/150% 50%;
  background-repeat:no-repeat;
}
<div class="angeled"></div>


2
你可以使用filter: drop-shadow。请参阅文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter-function/drop-shadow。最初的回答。

.angeled{
background-color: red;
height: 120px;
width: 100%;
  -webkit-clip-path: polygon(0 0, 1600px 0, 1600px 53%, 0 100%);
  clip-path: polygon(0 0, 1600px 0, 1600px 53%, 0 100%);
 
}

.outer{
   filter: drop-shadow(10px 10px 10px rgba(0,0,0,0.5));
}
<div class="outer">
<div class="angeled">
</div>
</div>


你提到的解决方案对我的情况无效,因为我需要阴影应用于下边缘。 - DreiDe
更新了。我想这就是你想要的。你需要两个元素来为多边形创建一个好的阴影 :) - mindmaster
绕过drop-shadow属性,玩得开心,如果你想的话可以应用内阴影!但我认为你正在寻找外阴影,我错了吗? - mindmaster
将其用 div overflow hidden 包装起来,添加一些 padding bottom,你就可以开始了! - SirPilan

0

如果您不必使用多边形 :)

div.wrapper {
  overflow: hidden;
  height: 150px;
}

div.poly {
  width: 100%;
  height: 100px;
  background-color: #F00;
  box-shadow: 0px 5px 15px rgba(0,0,0,.6);
  transform: rotate(-2deg) scale(1.2);
  transform-origin: 30px 0px;
}
<div class='wrapper'>
  <div class='poly'>
  </div>
</div>


1
通过一些修改,您可以使用一个元素来实现您的方法,https://jsfiddle.net/2stbL0dx/. - hungerstar
:D 不错!我喜欢它! - SirPilan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接