CSS 多边形阴影

标签 css svg shadow clipping

我正在使用 clip-path 属性来塑造我的 block 元素。

clip-path: polygon(0 0, 100% 0, 100% 100px, 50% 100%, 0 100px);

我想在该元素中放置一个“阴影”。所以,我尝试了一些技巧,例如:

box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.5);

或者...

filter: drop-shadow(0 15px 30px rgba(0, 0, 0, 0.5));

See my test environment on CodePen.

可以用 CSS 或 SVG 吗?

最佳答案

正如评论中所说,为此您需要 2 个嵌套元素,内部用于剪裁,外部用于阴影。

body {
  background-color: gray;
}

.navigation {
  filter: drop-shadow(0 15px 30px rgba(0, 0, 200, 0.5));
}

.innernav {
  /* PATH */
  clip-path: polygon(0 0, 100% 0, 100% 100px, 50% 100%, 0 100px);
  
  
  /* OTHERS */
  background-color: silver;
  color: white;
  height: 150px;
  position: fixed;
  text-align: center;
  top: 0;
  width: 100%;
  z-index: 100;
}

.main {
  padding: 200px 20px 0;
  text-align: center;
}
<nav class="navigation"><div class="innernav">Hi, I'm a nav.</div></nav>

<main class="main">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates quia velit modi veniam! Velit fuga facilis blanditiis iure aperiam cumque quasi officia quaerat dignissimos neque repellat quisquam voluptates sequi, hic?</p>
</main>

关于CSS 多边形阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614690/

相关文章:

javascript - 平滑滚动问题

html - 将 SVG 填充 ="none"更改为悬停时填充 ="#FFF"?

javascript - 标准化 SVG 以方便存储

javascript - 使用 d3 为传单创建密度和值(value)热图层

android - 移除高程阴影而不移除高程本身

javascript - 根据条件显示和隐藏子 div

css - ASP.Net MVC 共享布局中的一些 CSS 和 JS 不应在内容页面中使用

CSS 4 个边 Angular 都翘起?

jquery - 当前页面菜单 's background color doesn' t 改变

javascript - 是否有可能获得表情符号的主要颜色?