如何使用css中:after伪元素实现背景图片的叠加层?

在网页设计中我们发现越来越多的文本会放在图像之上,通常情况下,这不太好操作,因为图像具有动态颜色和光照,文本大部分是一种颜色。这通常对于可读性和可访问性的不太有利的,可能会让文本看起来不太清楚。

这意味着如果我们想要在图像和文本之间引入叠加层,那么有时这会使背景图像变暗以便于阅读。我们都需要一种简单的CSS技术来引入这种叠加。(推荐课程:css3视频教程)

由于我不想为修饰引入新标记,我们将使用CSS ::after伪元素。

我们可以通过以下过程来实现。

1、为你所需要的区域创建最简单的HTML

立即学习“前端免费学习笔记(深入)”;

2、使用::before或::after元素创建背景图

3、使用z-index修改绝对定位导致的问题

4、可以尝试使用mix-blend-mode实现一些有趣的效果

第1步:你需要的是没有任何多余标记的背景图

在背景图中,我们真正想要的只是背景图作为容器以及背景图需要包含的任何内容。

360截图20181102145006305.jpg

在这个例子中,我们只使用一个section容器和一个

。如果您添加了更多内容,它可能是同级元素,

或者您可以将所有内容放在某种内容容器中进行随意定位。

这里有一个小“魔法”,可以增加背景图的高度以及文本的中心位置。这对于本篇内容境界并不重要,但是如果你很好奇,可以自己试一试。

第2步:使用:: after动态添加叠加元素

CSS为我们提供的::before和::after元素有强大的功能,用于向不该影响标记的页面添加样式内容。

通过应用::before或::after元素,您可以在选定元素子元素之前或之后将动态元素插入DOM。

一个重要的注意事项是,所有伪元素都需要content显示CSS属性。虽然在我们的例子中,content只是一个空白字符串。

.banner::after {    content: ""; // ::before and ::after both require content    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    background-image: linear-gradient(120deg, #eaee44, #33d0ff);    opacity: .7;}

360截图20181102145738190.jpg

现在我们有一个全宽和高的元素。为此,我们使用绝对定位,因为我们不希望影响文档的内容流。

我们利用opacity属性使叠加层略微透明。

在这个例子中,我选择了渐变的效果,但你可以使用简单的背景颜色甚至是另一个图像来叠加。

3、使用z-index修改绝对定位导致的问题

仔细观察就会注意到这个例子中的某些东西并不完全正确。我们的叠加不仅涵盖背景图像,还涵盖背景图中的文字。

通过使用绝对定位,我们实际上是将叠加层放在背景图的堆叠上下文之上。要解决此问题,叠加层和内容需要用z-index来修改。我通常给背景图叠加1和内容叠加100。

.banner::after {    ...    z-index: 1;}.banner > * {    z-index: 100;}

有了它,我们有一个完成的叠加。

360截图20181102150429332.jpg

4、可以尝试使用mix-blend-mode实现一些其他的效果

比如向下面这样将多个元素混合在一起!

.banner::after {    /* opacity: .7; */    mix-blend-mode: color;    mix-blend-mode: hue;    mix-blend-mode: hard-light;}

5、源码

HTML:

CSS:

.banner:after {    content: "";  // :before and :after both require content    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    background-image: linear-gradient(120deg,#eaee44,#33d0ff);    background-color: #333;    opacity: .7;    // mix-blend-mode: color;    // mix-blend-mode: hard-light;    // mix-blend-mode: hue;}.banner > * {    z-index: 100;}.banner {    position: relative;    min-height: 60vh;    background-image: url(https://images.unsplash.com/photo-1509473332032-f1ce823d92c4?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ&s=3e2410208e8f8a78e4aa3550fddfbb44);    background-size: cover;    display: flex;  }h1 {    margin: auto;  }body {    margin: 10px;}

以上就是如何使用css中:after伪元素实现背景图片的叠加层?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1613021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 03:21:25
下一篇 2025年12月24日 03:21:39

相关推荐

  • css清理浮动有什么作用?清理浮动的方法(介绍)

    在前端开发过程中,我们经常会使用到浮动(float),这个我们即爱又恨的属性。爱,是因为通过浮动,我们能很方便地进行布局; 恨,是因为浮动之后遗留下来太多的问题需要解决。本章给大家介绍css为何要清除浮动,以及如何清除浮动;让大家了解元素进行浮动之后会出现的问题,以及css消除浮动的几种方法。有一定…

    2025年12月24日
    000
  • css中:after和:before的作用及使用方法

    本章给大家介绍css中:after和:before的作用及使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1.  :before 和 :after 的主要作用是在元素内容前后加上指定内容,示例: HTML代码: 你好 CSS代码: 立即学习“前端免费学习笔记(深入)”; p…

    2025年12月24日 好文分享
    000
  • 关于CSS伪元素的应用

    利用css伪元素 :before 和 :after 可以在文档前后插入内容而不改变文档原有结构,下面有个不错的示例,大家可以参考下 利用CSS伪元素 :before 和 :after 可以在文档前后插入内容而不改变文档原有结构,再配合 box-shadow 可以实现很炫的效果, 下面就展示三个例子:…

    好文分享 2025年12月24日
    000
  • 关于CSS中的before和:after伪元素的使用分析

    这篇文章主要介绍了css中的before和:after伪元素使用详解,包括对一些非文本内容的插入操作使用,需要的朋友可以参考下 如果你一直密切关注着各种网页设计的博客,你可能已经注意到了:before和:after伪元素已经在前端开发中获得了相当多的关注。特别是在Nicolas Gallagher的…

    2025年12月24日
    000
  • css中伪类和伪元素之:after

    这篇文章主要介绍了关于css中伪类和伪元素之:after ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 CSS中存在一些比较特殊的属性,称之为伪类,它们之中最常用的就是定义链接的伪:link,:visited,:hover,:active等本文详细介绍一下after的用法的用法,感…

    好文分享 2025年12月24日
    000
  • 如何清除浮动?html中:after伪元素清除浮动的方法实现 (代码)

    本篇文章给大家带来的内容是关于如何清除浮动?html中:after伪元素清除浮动的方法实现 (代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。  :after伪元素和:before伪元素分别用于在元素之后和之前添加内容,实际网页开发过程中:after伪元素比较常用,借助:aft…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信