如何更改 CSS 背景图片的不透明度

这篇具有很好参考价值的文章主要介绍了如何更改 CSS 背景图片的不透明度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

opacity 是一个 CSS 属性,允许你改变元素的不透明度。默认情况下,所有元素的值为 1。通过将这个值更接近 0,元素将会变得越来越透明。

一个常见的用例是将图像作为背景的一部分。调整不透明度可以提高文本的可读性或实现所需的外观。然而,目前没有办法只针对元素的 background-image 使用 opacity 而不影响子元素。

在本文中,我们将介绍两种方法来解决具有不透明度的背景图像的限制。

先决条件

如果你想要跟随本文,你需要:

  • 熟悉 opacity
  • 熟悉 position: relativeposition: absolute
  • 熟悉堆叠上下文和 z-index
  • 熟悉 :before:after 伪元素。

方法一 —— 使用单独的图像元素和定位

第一种方法依赖于两个元素。一个是提供了 position: relative 参考点的 “wrap”。第二个是一个出现在内容后面的 img 元素,使用 position: absolute 和堆叠上下文。

以下是这种方法的标记示例:

<div class="demo-wrap">
  <img
    class="demo-bg"
    src="https://assets.digitalocean.com/labs/images/community_bg.png"
    alt=""
  >
  <div class="demo-content">
    <h1>Hello World!</h1>
  </div>
</div>

以下是相应的样式:

.demo-wrap {
  overflow: hidden;
  position: relative;
}

.demo-bg {
  opacity: 0.6;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: auto;
}

.demo-content {
  position: relative;
}

这个标记和样式将产生一个文本位于图像上方的结果。

父级 demo-wrap <div> 建立了一个绝对定位的包含块。demo-bg <img> 被设置为 position: absolute,并分配了轻微的 opacitydemo-content <div> 被设置为 position: relative,由于标记的排列方式,它具有比 demo-bg 更高的堆叠上下文。也可以使用 z-index 更精细地控制堆叠上下文。

这种方法有一些局限性。它假设你的图像足够大,以适应任何元素的大小。你可能需要强制施加大小限制,以防止图像出现被截断或不覆盖元素的整个高度。如果你想要控制 “背景位置” 并且没有干净的 “背景重复” 替代方案,它还需要额外的调整。

方法二 —— 使用 CSS 伪元素

第二种方法依赖于伪元素。:before:after 伪元素适用于大多数元素。通常,你会提供一个 content 值,并使用它在开头或结尾附加额外的文本。然而,也可以提供一个空字符串,然后你可以利用伪元素进行设计。

以下是这种方法的标记示例:

<div class="demo-wrap">
  <div class="demo-content">
    <h1>Hello World!</h1>
  </div>
</div>

以下是相应的样式:

.demo-wrap {
  position: relative;
}

.demo-wrap:before {
  content: ' ';
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  background-image: url('https://assets.digitalocean.com/labs/images/community_bg.png');
  background-repeat: no-repeat;
  background-position: 50% 0;
  background-size: cover;
}

.demo-content {
  position: relative;
}

这个标记和样式将产生一个文本位于图像上方的结果。

父级 demo-wrap <div> 建立了一个绝对定位的包含块。伪元素 :before 被设置为 position: absolute,分配了轻微的 opacity,并使用 background-size: cover 来占据所有可用空间。

这种方法的优点是支持其他 background 属性,如 background-positionbackground-repeatbackground-size。这种方法的缺点是使用了一个伪元素,可能会与另一个设计效果发生冲突,比如清除浮动解决方案。

结论

在本文中,您了解了两种解决具有不透明度的背景图片的限制的方法。

如果您想了解更多关于 CSS 的知识,请查看我们的 CSS 专题页面,了解相关练习和编程项目。文章来源地址https://www.toymoban.com/news/detail-854672.html

到了这里,关于如何更改 CSS 背景图片的不透明度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • css图片背景

    在CSS中设置图片背景是通过 background-image 属性来实现的。以下是一种简单的方法来设置CSS图片背景: 1.准备图片文件:首先,准备你想要作为背景的图片,并确保它已经上传到你的网站或服务器上。 2.在HTML中添加一个元素:在HTML文件中,你可以添加一个元素(例如 div 或者其

    2024年02月14日
    浏览(32)
  • CSS-设置背景图片的大小

    要设置背景图片的大小,您可以使用CSS的 background-size 属性。这个属性允许您指定背景图片的尺寸。 background-size 属性可以接受不同的值,包括: auto :保持原始图片的尺寸。 cover :将图片缩放到完全覆盖背景区域,可能会裁剪部分图片。 contain :将图片缩放到完全适应背景

    2024年01月25日
    浏览(37)
  • HTML--CSS--图片和背景样式

    最基本的应该就是对大小的管理 width:像素值; 宽度 height:像素值; 高度 一样使用 border 进行定义 效果: 图片对齐和文本的对齐是一样的,也是用 text-align 进行,但需要注意不能直接在 img 定义,需要在父元素处定义 属性依然是: left 左对齐 center 居中 right 右对齐 效果: 用法

    2024年01月18日
    浏览(45)
  • CSS样式背景图片的自适应

    今天在写一个页面的时候,需要用到一个背景图片。 于是我把背景图片放到static(静态文件夹)里面,于是在css样式中引入,但是背景图片又太大,最后的样式就是比例失调。但是由于太久没有用到这个属性了,无可奈何又去找了一番度娘 废话不多说,上代码 1.css图片自适

    2024年02月11日
    浏览(31)
  • CSS 圆形分割按钮动画 带背景、图片

     

    2024年02月01日
    浏览(35)
  • css mask使用,背景透明,图片裁切

    2.1 背景透明 图片与mask生成的渐变的 transparent 的重叠部分,会变得透明,这里#000可以为任意颜色,效果相同 2.2 图片裁切

    2024年01月17日
    浏览(31)
  • 3种CSS实现背景图片全屏铺满自适应的方式

    01 url(images/beijing.png)——图片路径的位置; no-repeat—— 图片不重复; center 0px——center是距离页面左边的定位,0px是距离页面上面的定位; background-position: center 0——就是图片的定位,同上; background-size: cover;——把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。

    2024年02月11日
    浏览(33)
  • (css)自定义el-dialog对话框添加背景图片

    效果:

    2024年02月16日
    浏览(38)
  • 前端,CSS,背景颜色跟随轮播图片改变而改变(附源码)

    首先看效果! 比如轮播图时红色,那么背景的底色也是红色,轮播图时黄色,背景的底色也是黄色,这就是根据轮播图的图片切换,而改变背景颜色随轮播图颜色一致 话不多说,直接上代码!非常简单 轮播图代码就不放上去了,直接使用插件 swiper ,选择你喜欢的版本 就可

    2024年02月22日
    浏览(36)
  • css新闻列表案例(li标签和a标签各自控制一个背景图片)

    !DOCTYPE html html lang=\\\"en\\\" head   meta charset=\\\"UTF-8\\\"   meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\"   meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"   title新闻列表/title   style     * {       margin: 0;       padding: 0;       box-sizing: border-box;     }     li {       list-style: none;     }  

    2024年01月19日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包