html - 伪前后元素上的 CSS3 Box-shadow

标签 html css css-selectors pseudo-element box-shadow

我需要创建这样的东西来分隔移动设计中的部分:

enter image description here

我可以使用 CSS 轻松创建 Angular 部分,但我很难正确设置框阴影。问题是,我只需要前后伪元素底部的框阴影。但是它被添加到所有的边上,所以当两个元素在中间相遇形成盒子阴影重叠的点时。

例子见这里:

enter image description here

这是我目前所拥有的(jsfiddle:https://jsfiddle.net/47zqjzmf/1/)

HTML:

<div class="wrapper">
  <div class="inner"></div>
</div>

CSS:

.wrapper {
  display: inline-block;
  background: #fff;
  width: 300px;
  height: 300px;
  overflow: hidden;
}

.inner {
  position: relative;
  background: lightblue;
  width: 100%;
  height: 120px;
}

.inner:before, .inner:after {
    content: '';
    position: absolute;
    bottom: -10px;
    width: calc(50% + 5px);
    height: 20px;
    background-color: #fff;
    box-shadow: 1px 1px 10px 1px #000;
}

.inner:before {
  left: -2px;
  transform: rotate(7deg);
}

.inner:after {
  right: -2px;
  transform: rotate(-7deg);
}

关于如何实现这种效果有什么建议吗?

最佳答案

box-shadow 不会帮助你,因为正如属性名称所说,它是用于盒子的。对您有帮助的是 filter: drop-shadow()。此外,您可以使用 clip-path 属性来代替创建这两个伪元素矩形。

.element {
  width: 300px;
  color: white;
  filter: drop-shadow(0 0 15px black);
}

.element__clip {
  -webkit-clip-path: polygon(100% 0, 100% 80%, 50% 100%, 0 80%, 0 0);
  clip-path: polygon(100% 0, 100% 80%, 50% 100%, 0 80%, 0 0);
  background: blue;
}
<div class="element">
  <div class="element__clip">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ultrices, lorem id pellentesque sollicitudin, mauris massa aliquam velit, ut sagittis tellus justo non turpis. In tempor at dui et placerat. Aliquam dolor lorem, maximus non nunc sit amet, condimentum aliquam neque. Suspendisse potenti. Aliquam laoreet purus sed arcu elementum varius. Nullam ante tortor, elementum sit amet justo vel, mollis dapibus massa. Sed ultricies dapibus eros ac laoreet. Maecenas posuere arcu enim, non interdum ipsum vulputate nec. Nulla iaculis orci ac mattis accumsan. Praesent id auctor ipsum. Aenean cursus arcu placerat nunc consectetur, feugiat tincidunt felis placerat. Quisque id sagittis mi. Curabitur tincidunt consequat orci, eu congue metus ultrices at. Aenean luctus justo et pharetra tristique.</div>
</div>

关于html - 伪前后元素上的 CSS3 Box-shadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993024/

相关文章:

html - 尝试将我的标签放在输入类型文本上方

javascript - 在插入到 div 时应用样式

javascript - 如何在 bundle 之间共享 CSS 和 JS

jquery - 单击它时将光标放在输入字段中

jQuery 选择器 nth-child(n) 处于未知级别?

css - data 属性所针对的子级的目标父级标签

jquery - 单击 Bootstrap 弹出窗口中的链接

javascript - highchart 是否能够根据数据点的数量改变颜色选择?

css - 正文溢出

html - 第 n 个 child 没有按预期工作