12.给图片加一个黑色半透明的遮盖层——软设问题总结

  • 12.1 知识点
    • 12.1.1 img标签::after和::before失效
    • 12.1.2 默认地,::after和::before是行内元素
  • 12.2 代码案例
  • 12.3 不使用img标签的另一种方法
    • 12.3.1 思路如下:
    • 12.3.2 代码如下

12.1 知识点

在做这个效果的时候,想必第一想法都是先在img标签放图片然后再在img::before/::after元素设置遮盖层,但是会发现这个方法无法出现遮盖层。
主要原因是:

12.1.1 img标签::after和::before失效

  1. 正如它们的名称所示,::before::after伪元素指定元素的文档树内容前后的内容位置。
  2. 对于img 这种自闭和标签,似乎不存在 content (内容或后代元素)在标签中,所以选择器没有生效
  3. 在对::after::before的定义中,对于可替换元素(如 imginputselect 等),标准并没有清晰定义,这也导致了浏览器实现的差异性。

但这样还是无法出现遮盖层的话,你应该考虑是否将伪元素设置为块级元素,因为:

12.1.2 默认地,::after和::before是行内元素

所以还应该:

  1. ::after/::before元素设置为块级
  2. 设置该元素宽高与图片一致
  3. 利用定位将该元素与图片重叠

12.2 代码案例

  1. html 代码
    <div class="cover1"><img src="pic.jpg" alt=""></div>
  1. 未处理过的css代码
     .cover1 {width: 300px;height: 400px;}img {width: 300px;height: 400px;}

3.此时的代码即未加遮盖层时的效果图(左)+ 加了遮盖层的效果图(右)对比

  1. 加了遮盖的css代码
 .cover1 {position: relative;width: 300px;height: 400px;}img {width: 300px;height: 400px;}.cover1::before {content: " ";position: absolute;top: 0;left: 0;width: 300px;height: 400px;/*最后一个参数是半透明度,可以透过调整0-1的数值,调整到满意的透明度*/background-color: rgba(0, 0, 0, 0.5);}

12.3 不使用img标签的另一种方法

直接使用一个非单标签(例如<div></div>),不使用<img /> 标签来完成此效果,

12.3.1 思路如下:

  1. 将要展示的图片放在非单标签(例如<div></div>)的background-image属性中
  2. 将遮盖层设置在该标签的::before/::after

12.3.2 代码如下

  1. html代码
     <div class="cover"></div>
  1. css代码
       .cover {position: relative;width: 300px;height: 400px;background: url('pic.jpg') no-repeat;background-size: contain;}.cover::before {content: " ";position: absolute;top: 0;left: 0;width: 300px;height: 400px;background-color: rgba(0, 0, 0, 0.5);}
  1. 效果如上图所示

给图片加一个黑色半透明的遮盖层相关推荐

  1. css 给图片加一个关闭按钮

    今天又写页面了,给图片加一个关闭按钮,顺手记录下.外div绝对定位,内部图片用相对定位. .MainDiv {             width:100%;         }           ...

  2. css-实现鼠标移至图片上显示黑色半透明遮罩层,且不至于遮住图片上的超链接的方法

    作为一个刚接触html和css的小白,总会遇到一些细节问题,在这里写下一个我遇到的小问题的解决方法,方便今后加深理解,更高效地学习. 一般情况下,让一个图片有超链接,可以用a标签把 img包住,但是要 ...

  3. ps给图片加钢印方法

    给图片加一个钢印其实很简单 这样的效果只能类似钢印 简单可以按照下面的方法 准备资料 :一个要加钢印的图片   一个透明印章即可实现 方法:斜面和浮雕 一.打开图片 二.打开透明印章 三.将透明印章移 ...

  4. 前端页面如何为图片添加黑色半透明遮罩

    在实际开发中经常会遇到对图片加一层半透明遮罩,然后上面显示文字说明的需求. 如下图: 如何实现呢?看代码! 需要把图片放到一个父容器中,为父容器设置背景色为黑色background: #000;,再为 ...

  5. 给图片加一层半透明_PPT小技巧——图片的处理

    我们平时在制作PPT的过程中,使用最多的就是图片,有一句话说得好:"字不如表,表不如图".下面就来跟大家说一说PPT中图片使用处理的小技巧. (1)裁剪 裁剪是我们日常处理图片最常 ...

  6. html 图片上放置按钮,用CSS在图片上再加一个小按钮

    很简单的,嗯,就是要做成这样的: 用CSS,当然得用层了,就是在图片上再加一个层,用来放那个按钮,按钮又有两种方式可以放,一种是直接用图片img标签,一种是通过背景图片放上去.这里我们就用背景图片这个 ...

  7. 怎么给图片添加水印?教你一个图片加水印小妙招

    怎么给我们自己的图片添加上水印呢?在我们的日常生活中,我们会拍摄一些图片或者是自己通过制作软件来绘制出一些好看的图片上传到网上,很多小伙伴会通过这种方式来获取流量或关注度,甚至是产生一些利益,但是,由 ...

  8. 一个方便的图片加载框架——ImageViewEx

    我的博客:http://mrfufufu.github.io/ 一.前言 最近在整理项目中的一些代码,以备即将开展的新项目中使用,刚刚整理到一个图片加载的 lib,用起来非常的简单,和 picasso ...

  9. html插入视频开始前图片,视频前面加图片|录制的视频前加一个图片介绍怎么弄...

    想要在录制的视频前加一个图片介绍怎么弄?嘿嘿(。・∀・)ノ゙这个就需要用到视频编辑软件啦,现在网络上视频编辑工具蛮多的,这不是又有点小纠结咧,尚在徘徊的童鞋那就随小编来看看下面这款制作视频前面加图片需 ...

最新文章

  1. html页面调用ico图标,如何在HTML中使用图标字体 - icon font?
  2. OpenSSL 转换证书格式
  3. WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法
  4. 以管理员权限来进行解压操作
  5. CodeForces - 487B Strip(线段树+dp+二分)
  6. 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.2 Bundle
  7. mysql延时优化教程_Mysql优化之延迟索引和分页优化_MySQL
  8. 【Linux】在Deepin v20或UOS20下运行MC我的世界
  9. 教你用纯Java实现一个即时通讯系统(附源码)
  10. php输出一条直线,Photoshop脚本 绘制一条线
  11. Rust 能取代 Python,更好的实现神经网络?
  12. bzoj3531: [Sdoi2014]旅行 (树链剖分 动态开点线段树)
  13. 经典配分函数公式以及量子统计形式
  14. Deep Retinex Decomposition for Low-LightEnhancement (2018 BMCV,含代码)
  15. 怎样搭建serveru ftp个人服务器
  16. 空间大数据相关的技术
  17. 想知道视频水印怎么去?推荐几个去视频水印的方法
  18. 划区清扫功能 小米扫地机器人_小米扫地机器人怎么用?
  19. 基于企业微信机器人实现预警功能
  20. 用“牛顿迭代法”求根号2的近似值

热门文章

  1. 蓝牙智能灯带(天猫精灵生态)方案
  2. 利用bat获取windows桌面壁纸
  3. 计算机应用基础主要按键,计算机应用基础教案—键盘录入与输入法.doc
  4. css实现鼠标悬停,光标出现小手
  5. 开机不能正常进入系统
  6. MethodInfo类的一般使用!
  7. ppt如何添加备注 PPT备注怎么用
  8. android隐藏第三方应用图,第三方应用上架 帮你隐藏安卓手机的刘海
  9. html中页面倒计时跳转
  10. 一文读懂mysql主从复制机制