利用【伪元素】制作逼真的阴影效果

:before和 :after

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

.one:before {
  position:relative;
  content:open-quote;
}
.one:after {
  position:relative;
  content:close-quote;
}

上面的代码片段将在文字的之前和之后分别添加添加一个引号:

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

.one:before {
  position:relative;
  content:open-quote;
  color:#fce;
  font-size:24px;
}
.one:after {
  position:relative;
  content:close-quote;
  color:#fce;
  font-size:24px;
}

现在我们用它来制作一个逼真的阴影:

<div class="shadow shadow-1">
        <p>text-1</p>
</div>

先来设置好容器的样式:

.shadow {
    width: 350px;
    height: 150px;
    background: #fff;  
    margin: 50px auto;
    position: relative;
}
.shadow p {
    text-align: center;
    line-height: 150px; 
}

之后,用:before 生成左边的阴影:

.shadow-1:before, .shadow-1:after {
    position: absolute;
    top: 130px;
    content: "";
    width: 200px;
    height: 10px;
    box-shadow: 0 10px 15px rgba(0, 0, 0, .2);
    z-index: -1;
}
.shadow-1:before {
    left: 5px;
    -webkit-transform: rotate(-5deg);
    -moz-transform: rotate(-5deg);
    transform: rotate(-5deg);
}

它们都是绝对定位,使用负z-index来放置到图片后方实现阴影效果。利用rotate旋转投影。
这时,制作右边的阴影就很简单了:

.shadow-1:after {
    right: 5px;
    -webkit-transform: rotate(5deg);
    -moz-transform: rotate(5deg);
    transform: rotate(5deg);
}

使用单冒号或者双冒号有差吗?
:无论你使用单冒号还是双冒号,浏览器都将能识别它们。由于IE8只支持单冒号的格式,安全起见如果你想要更广泛的浏览器兼容性那么还是使用单冒号的格式吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文转载自:众成翻译译者:为之漫笔链接:http://www.zcfy.cc/article/239原文:http...
    极乐君阅读 12,109评论 1 62
  • 转自理解伪元素 :before 和 :after层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一...
    种谔阅读 4,348评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,838评论 19 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,690评论 1 92
  • 最近在研读 《CSS SECRET》(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目:C...
    王钰峰阅读 3,294评论 0 1

友情链接更多精彩内容