带有背景图像 url 的 CSS 变量

Posted

技术标签:

【中文标题】带有背景图像 url 的 CSS 变量【英文标题】:CSS Variables with background-image url 【发布时间】:2017-06-04 13:51:38 【问题描述】:

我是否误解了 CSS 变量的功能?我正在尝试将背景图像 url 传递给这样的变量:当我传递一些简单的东西(如颜色等)时,它似乎工作正常......

:root 
  --slide-1: url(/static/images/slideshow/slide1.jpg) ;
  --slide-2: url(/static/images/slideshow/slide2.jpg) ;
  --slide-3: url(/static/images/slideshow/slide3.jpg) ;
  --slide-4: url(/static/images/slideshow/slide4.jpg) ;
  --slide-5: url(/static/images/slideshow/slide5.jpg) ;


//and then

.jumbotron > .jumbotron-slideshow:nth-child(1)  
  background-image: var(--slide-1); 


.jumbotron > .jumbotron-slideshow:nth-child(2) 
  animation-delay: 6s;
  background-image: var(--slide-2);


.jumbotron > .jumbotron-slideshow:nth-child(3) 
  animation-delay: 12s;
  background-image: var(--slide-3);


.jumbotron > .jumbotron-slideshow:nth-child(4) 
  animation-delay: 18s;
  background-image: var(--slide-4);


.jumbotron > .jumbotron-slideshow:nth-child(5) 
  animation-delay: 24s;
  background-image: var(--slide-5);

【问题讨论】:

尝试将路径放在变量中并将其用作.jumbotron > .blah background-image: url(--slide-1); 我没有使用它们,但看起来像一个go'er 对我来说看起来不错,但是您没有包含所有代码或工作图像,因此很难判断出了什么问题。这是一个演示codepen.io/anon/pen/KaWwvz,这是How to create a Minimal, Complete, and Verifiable example 您是否尝试过使用绝对路径? @Roljhon 做到了,一定没有看到正确的路径谢谢! @SandraWillford 一个很好的调试方法是从最简单的开始!祝你好运朋友! :) 【参考方案1】:

这是 Chrome 中的 bug,代码在 Firefox 中运行良好。

您现在必须坚持使用 var() 中的绝对 URL。

【讨论】:

【参考方案2】:

这是一个错误,但现在可以使用。 ?

【讨论】:

当我尝试使用 base64 数据 url (--example: url('data:image/png;base64,<encoded image here>')) 时不起作用。有什么解决方法吗? @AlexNaidovich 确实有效(在 Chrome 版本 80.0.3987.132 中测试):--detail-push-chevron: url("data:image/svg+xml;charset=utf-8,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%2020'><path%20d='M2,20l-2-2l8-8L0,2l2-2l10,10L2,20z'%20fill='%23ff0000'/></svg>"); 然后:.hasBackground background-image: var(--detail-push-chevron);

以上是关于带有背景图像 url 的 CSS 变量的主要内容,如果未能解决你的问题,请参考以下文章

css 样式中的背景图像在带有尾风的 laravel 中不起作用

带有资产管道的背景图像

使用背景图像 css 样式预览多个图像 Vue JS

急!!如何用css实现背景图片纵向平铺???

只模糊背景中的重复图像?

如何使用 CSS 媒体查询将背景图像缩放到查看窗口