html - 使用伪类来减少背景图像而不是文本的不透明度

标签 html css

因此,以下代码会影响“my-container”的背景图像的不透明度,而不影响“h1”的不透明度,这是期望的结果。

HTML:

<div class="my-container">
    <h1>Scotch Scotch Scotch</h1>
</div>

CSS:

.my-container {
    position: relative;
    background: #5C97FF;
    overflow: hidden;
}
/* You could use :after - it doesn't really matter */
.my-container:before {
    content: ' ';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    opacity: 0.6;
    background-image: url('http://placekitten.com/1500/1000');
    background-repeat: no-repeat;
    background-position: 50% 0;
    -ms-background-size: cover;
    -o-background-size: cover;
    -moz-background-size: cover;
    -webkit-background-size: cover;
    background-size: cover;
}

关于这段代码的一些问题:

为什么在 .my-container 类中需要“溢出:隐藏”?

我发现如果我更改或删除“.my-container:before”中的任何属性值对,那么背景图像根本不会显示。具体为什么'content'需要设置为''? 为什么宽度和高度都必须有一个值?这是否需要以 % 为单位?

谢谢

最佳答案

回答您的问题:

  • 不,溢出:此效果不需要隐藏
  • 如果没有设置 content 属性,伪元素将无效且不会显示
  • 伪元素在首次设置时基本上是空的,因此必须设置宽度和高度。因为 .my-container 有 position: relative 设置 100% 使得放置在文本之前的伪元素与容器元素的大小相同。

关于html - 使用伪类来减少背景图像而不是文本的不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42181244/

相关文章:

css - 选择器引擎朝哪个方向准确读取?

javascript - JQuery 删除/添加 Infopath webpart 的 ID 类

jquery - 使某些方法适用于 $(window).on ("load", function () { before load

html - CSS Sprite 只显示最终图像

javascript - 防止页面在后退按钮上重新加载(使用缓存)。或者向下滚动用户。 (问题,至少,iPhone)

javascript - 清除垂直选项卡中的 div 的功能不起作用

javascript - 我们将如何继续使用 CSS 和 Javascript 创建六 Angular 形菜单系统

html - 2 列布局,在内容添加到侧边栏 div 时扩展页面的长度

html - 如何平滑 CSS 渐变过渡?

游戏中的 Javascript 触摸事件句柄