代码之家  ›  专栏  ›  技术社区  ›  Lonnie Best

getPropertyValue()在检索自定义CSS属性值时包含CSS格式化的空白

  •  0
  • Lonnie Best  · 技术社区  · 6 年前

    getPropertyValue 方法返回一个DOMString,其中包含我在 CSS formatting 。是否有其他方法可以用来获取自定义CSS属性的值(之后不需要修剪)?

    function getCustomPropertyValue(element,customPropertyName)
    {
        let style = window.getComputedStyle(element);
        return style.getPropertyValue(customPropertyName);
    }
    let value = getCustomPropertyValue(document.body,"--color1");
    console.log(`'${value}'`);
    body { --color1: #333333; }

    请注意,当您运行代码段时 getPropertyValue 函数返回一个带有前导空格的值(这是我的CSS格式的工件)。

    0 回复  |  直到 6 年前
        1
  •  1
  •   John Din    5 年前

    只需删除CSS中的空白即可。

    body { 
    --color1:#333333; 
    }
    
        2
  •  0
  •   Gerard    6 年前

    当您以正确的方式使用CSS变量时,它就会起作用。你可以找到更多的细节 here .

    function getCustomPropertyValue(element, customPropertyName) {
      let style = window.getComputedStyle(element);
      return style.getPropertyValue(customPropertyName);
    }
    let value = getCustomPropertyValue(document.body, "--color1");
    console.log(`'${value}'`);
    :root {
      --color1:#333333;
    }
    
    body {
      color: var(--color1);
    }