我尝试使用以下样式:
background: linear-gradient(to right,orange,orange) 0 0/0 100% no-repeat, rgba(255, 165, 0,0.1);
这是一个自定义语义主题,当我构建时,打破时编译为:
background: -webkit-gradient(linear, left top, right top, from(orange), to(orange)) 0 NaN 100% no-repeat, rgba(255, 165, 0, 0.1);
请注意 NaN
0/0在做什么? 是否有另一种方法来编码,以防止编译问题的语义自定义主题?
答案 0 :(得分:4)
根据Docs on the background property,即位置/背景大小:
该值可能只会在之后立即包含,并以' /'分隔。角色,像这样:"中心/ 80%"。
您可以删除0/0
并添加以下行:
background-size: 0;
background-position: 0;
如果有必要的话。
答案 1 :(得分:0)
0/0在CSS中无效,因为它计算为NaN,不能将零除零。在CSS“calc”和像SaSS这样的扩展中都是如此。
您需要为背景位置和背景大小声明实际值,您可以使用绝对或相对单位或使用关键字(即“右”,“左”,“中心”)来执行此操作。
另请注意:“0 0”无效,它基本上没有任何意义,因此您的图像将呈现为好像您没有声明值(左上角是默认值)。您必须使用单位指示器。
答案 2 :(得分:0)
很抱歉,目前的答案都没有回答你的问题。这是一个更简洁的细分:
问:CSS背景属性中0/0的作用是什么?
答:在使用background-position
简写时,它定义了background-size
和background
的属性。
问:...注意NaN,0/0在做什么?
答:看起来您的编译器正在尝试计算0/0。在数学上你不能将零除零,所以你的编译器抛出NaN(不是数字)让你知道有错误。
问:是否有另一种方法可以对此进行编码以防止编译器问题......
答:由于您将背景位置设置为默认值,因此您可以使用关键字top right
或initial
。这应该有助于避免执行任何潜在的计算,例如:
background: linear-gradient(to right,orange,orange) top right/0% 100% no-repeat rgba(255, 165, 0,0.1);