html - 带有文本覆盖和背景颜色的背景图像甚至可以响应 4k 屏幕
问题描述
我正在尝试弄清楚如何使用背景图像和覆盖文本。那部分很容易。我遇到的问题是我还想要背景颜色,所以当屏幕宽度比图像宽时,我不想拉伸图像。我希望有一种背景颜色延伸到 100% 宽度。背景图像颜色与图像颜色的边缘相匹配,因此看起来图像只是在不断扩展。为此,我有下面列出的 jsfiddle 之类的东西。
我遇到的问题是理想情况下我希望文本与图像所在的位置对齐,而不是背景颜色,但随着屏幕尺寸的变化而变化。此外,当屏幕变小(例如平板电脑和手机)时,我希望图像相应缩小,但如果我将其设置为高度,背景颜色也会开始显示在图像下方。
https://jsfiddle.net/j1ktafd8/5/
<div class="container py-5">
<div class="row justify-content-center" style="">
<div class="overlay">
This is the text.
<p>
Some more text.
</div>
</p>
</div>
</div>
.row {
background: #34ca69 url('//via.placeholder.com/500') no-repeat center;
height: 500px;
color: grey;
width: 100%;
}
.overlay {
padding-left: 150px;
}
解决方案
有多种方法可以实现这一目标。我可能会寻求这样的解决方案:
- 由于您希望背景颜色与背景图像元素具有相同的高度,因此具有背景颜色的元素需要从背景图像元素中获取其高度。这意味着,背景图像元素应该在具有背景颜色的元素内部。
- 背景图像元素为 100% 宽,但具有
max-width
. 这种成像方式永远不会变大并在较小的屏幕上缩小。 - 您需要使用 padding-bottom 技巧来设置背景图像元素的高度。您可以通过使用图像元素来避免这种情况,但这是语义问题。
推荐阅读
- git - 合并推送功能分支后,从主分支中删除功能分支的提交消息
- android - 如何在firestore中的数组索引下存储数据集合
- java - 如何在 Android 中意图动态生成 EditText 数据?
- swift - 如何等到firestore上的删除功能完成
- python - Gensim 包中的 Coherence 分数错误
- javascript - 函数内的 $scope 变量没有在 Angular js 中更新
- ionic-framework - 我的 API 在 Ionic 中被调用了 2 次
- c++ - C++ boost::asio 连接weak_ptr err
- mysql - 输入数据时出现 SQL 语法错误
- angular - 如何从字符串渲染角度分量