html - 根据背景颜色更改文本颜色

标签 html css

考虑这个例子: codepen

.infobox {
  width: 110mm;
  height: 65mm;
  background-image: url(https://i.pinimg.com/564x/86/70/f2/8670f2ab34bf4082bf3cef004aae0826.jpg);
  background-size: cover;
  position: relative;
}

.text {
  position: absolute;
  bottom: 0;
  text-align: center;
  color: white;
}
<div class="infobox">
  <span class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel quam in enim pulvinar fringilla. Etiam molestie convallis pharetra. Sed et tortor tortor. Vestibulum ligula ex, rhoncus semper metus ut, hendrerit porttitor risus. Quisque at porta magna. Phasellus vel vulputate diam. Maecenas sem est, aliquet nec odio euismod, posuere luctus nisl. Vestibulum posuere iaculis massa, sed cursus dui pellentesque sed.</span>
</div>

我生成了很多图像,有时浅色文本还可以,但在这种情况下就不行了。

我尝试的是:

  1. mix-blend-mode - 没有帮助

  2. 类似:filter: invert(1) grayscale(1) contrast(16) drop-shadow(.05em .05em orange);

请记住,它应该在许多情况下都有效,而不仅仅是这个,例如深色/浅色背景。 我可以动态地操纵文本的颜色吗?

最佳答案

你可以简单地添加一个深色的text-shadow,无论你使用什么图像,你都会有更好的渲染效果:

.infobox {
    width: 110mm;
    height: 65mm;
    background:
    linear-gradient(to bottom,transparent,#fff),
    url(https://i.pinimg.com/564x/86/70/f2/8670f2ab34bf4082bf3cef004aae0826.jpg);
  background-size: cover;
  position: relative;
}

.text {
  position: absolute; bottom: 0; 
  text-align: center; color: white;
  text-shadow: -1px 0 1px #000,
               1px 0 1px #000,
               1px 1px 1px #000,
               -1px -1px 1px #000,
               0 1px 1px #000,
               0 -1px 1px #000;
}
<div class="infobox">
  <span class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel quam in enim pulvinar fringilla. Etiam molestie convallis pharetra. Sed et tortor tortor. Vestibulum ligula ex, rhoncus semper metus ut, hendrerit porttitor risus. Quisque at porta magna. Phasellus vel vulputate diam. Maecenas sem est, aliquet nec odio euismod, posuere luctus nisl. Vestibulum posuere iaculis massa, sed cursus dui pellentesque sed.</span>
</div>

关于html - 根据背景颜色更改文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52797638/

相关文章:

javascript - 如何确定 CSS 过渡是否即将发生?

javascript - Css Hover div 没有按预期工作

html - 如何使用 HTML/CSS 将图像显示为缩略图?

css - Bootstrap 分页并且在 768px 下没有响应

javascript - jQuery 在悬停状态下不触发事件

javascript - 如何自定义Nihilo.css?

html - 使用 css 在 Firefox 浏览器中缩小到 90% 不起作用

html - 基于 HTML 的 CSS 正确,使其适用于悬停图像命令

javascript - 使用 JS 将任何标签内的文本复制到剪贴板

javascript - 如何在 asp.net 用户控件中调整子列表框的高度