伪元素实现迷人阴影效果

2017-08-21  本文已影响0人  andreaxiang

CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是“伪元素”。
具体参考mdn关于伪元素的解释
自己去看去试,具体这里就不多描述了,做前端的基本都会用。

今天总结一下在我做官网实际项目中遇到的一个需求,用伪元素:before 和 :after实现的迷人阴影效果。要感谢公司设计师草原同学,总是不断鞭策我刷新提升我们开发工作者的审美观😄😄😄。。。

使用伪元素

使用伪元素是相对容易的,:before将会在内容之前“添加”一个元素而:after将会在内容后“添加”一个元素。在它们之中添加内容我们可以使用content属性。

伪元素样式

尽管作为“虚假”的元素,事实上伪元素表现上就像是“真正”的元素,我们能够给它们添加任何样式,比如改变它们的颜色、添加背景色、调整字体大小、调整它们中的文本等等。

因此,我们可以给接下来的伪元素使用CSS Box Shadow属性!
box-shadow: inset horizontal vertical blur spread colour;

举例:

box-shadow: 10px 10px;
box-shadow: 10px 10px 5px #888;
box-shadow: inset 2px 2px 2px 2px black;
box-shadow: 10px 10px #888, -10px -10px #f4f4f4, 0px 0px 5px 5px #cc6600;

好了,大致需具备的基础至少有了,开始实现设计师同学的需求吧。

实现阴影效果

box-shadow2.png

没错,就是要这个阴影效果,真的很漂亮。

开始写代码👇
html结构:

<div class="box effect2">
  <h3>伪元素实现的阴影效果</h3>
</div>

css代码:

.box h3{
    text-align:center;
    position:relative;
    top:80px;
}
.box {
    width:400px;
    height:200px;
    background:#FFF;
    margin:40px auto;
    border: 1px solid #f7f7f7;
}
.effect2{
  position: relative;
}
.effect2::before, .effect2::after{
  z-index: -1;
  position: absolute;
  content: "";
  bottom: 15px;
  left: 10px;
  width: 50%;
  top: 80%;
  max-width:300px;
  background: #777;
  box-shadow: 0 15px 10px #aaa;
  transform: rotate(-3deg);
}
.effect2::after{
  transform: rotate(3deg);
  right: 10px;
  left: auto;
}
阴影效果.png
demo效果
上一篇下一篇

猜你喜欢

热点阅读