相关疑难解决方法(0)

从javascript访问CSS变量

有没有办法从javascript访问css变量?这是我的css变量声明.

:root {
  --color-font-general: #336699;
}
Run Code Online (Sandbox Code Playgroud)

javascript css css-variables

60
推荐指数
2
解决办法
2万
查看次数

使用jQuery更改CSS变量

是否可以使用jQuery更改CSS中使用的变量?简单的例子:

html {
  --defaultColor: teal;
}
.box {
  background: var(--defaultColor);
  width: 100px;
  height: 100px;
  margin: 5px;
  float: left;
}
.circle {
  background: #eee;
  border: 2px solid var(--defaultColor);
  width: 100px;
  height: 100px;
  margin: 5px;
  float: left;
  border-radius: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="clickToChange" type="button" style="width: 100%;">Click to Change</button>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<br/>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
Run Code Online (Sandbox Code Playgroud)

例如,如何将变量颜色从青色更改为红色?这个不起作用.

$("#clickToChange").click(function(){
  $(html).css("--defaultColor", "red");
});
Run Code Online (Sandbox Code Playgroud)

css variables jquery

17
推荐指数
1
解决办法
1万
查看次数

如何列出元素中的所有css变量名称/值对

我有JS库,我有这个问题:我正在使用等宽字体创建用于计算字符大小的临时元素.现在我正在复制风格,但我需要原始的所有样式,包括css变量.我不想克隆元素,因为里面有我不需要的元素.此外,元素可能具有用户设置的id,不确定当存在两个具有相同id的元素时这将如何表现,因此将每个样式复制到新的临时元素会更好(我认为).

我有基于这些的代码:

我的代码看起来像这样:

function is_valid_style_property(key, value) {
    //checking that the property is not int index ( happens on some browser
    return typeof value === 'string' && value.length && value !== parseInt(value);
}

function copy_computed_style(from, to) {
    var computed_style_object = false;
    computed_style_object = from.currentStyle || document.defaultView.getComputedStyle(from, null);

    if (!computed_style_object) {
        return;
    }
    Object.keys(computed_style_object).forEach(function(key) {
        var value = computed_style_object.getPropertyValue(key);
        if (key.match(/^--/)) {
            console.log({key, value}); // this is never executed
        }
        if (is_valid_style_property(key, value)) {
            to.style.setProperty(key, value);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

问题是 …

javascript css css-variables

7
推荐指数
1
解决办法
574
查看次数

Vue中JS和SCSS之间的共享变量

我最近开始使用Vue.js 2,并且喜欢单文件组件结构:

<template>
  <h1>Hello World</h1>
</template>


<script>
export default {
  name: 'hello-world',
};
</script>


<style scoped lang="scss">
h1 {
  font-size: 72px;
}
</style>
Run Code Online (Sandbox Code Playgroud)

不过,我很好奇是否存在一种在SCSS和JS之间传递变量的既定方法。我需要共享一个值,现在在两个部分中都重复了一个值。

我使用Vue CLI创建了这个项目,因此使用vue-loader将其与Webpack 2捆绑在一起。我希望有一种方法可以配置它以将变量从JS填充到SCSS,反之亦然。

javascript sass vue.js vuejs2

6
推荐指数
1
解决办法
2055
查看次数

是否可以检查 CSS 变量是否已定义?

我想知道是否可以仅在定义了 css 变量的情况下应用 CSS 规则。我已经看到可以定义默认值,例如:

background-color: var(--bgColor, red);
Run Code Online (Sandbox Code Playgroud)

但我认为这不会在我的项目中起作用,因为我想要的是,当未定义变量来获取该行在 CSS 中不存在时它将具有的样式时。

我添加了一个代码笔,以便更容易理解我在说什么:

https://codepen.io/xmorell/pen/bGWLoaL

background-color: var(--bgColor, red);
Run Code Online (Sandbox Code Playgroud)
.container {
  margin: 5px;
}
.content {
  padding: 5px;
  display: inline-block;
  height: 100px;
  width: 100px;
  border: 1px solid black;
  background-color: var(--bgColor) !important;
}
Run Code Online (Sandbox Code Playgroud)

css css-variables

5
推荐指数
1
解决办法
6668
查看次数

标签 统计

css ×4

css-variables ×3

javascript ×3

jquery ×1

sass ×1

variables ×1

vue.js ×1

vuejs2 ×1