使用json设置css属性

Set css properties with a json

本文关键字:属性 css 设置 json 使用      更新时间:2023-09-26

我已经按照w3c的描述设置一个javascript元素的CSS属性,但我不知道如何用json对象。

我的代码是:

var style = {
    position:'fixed',
    top:0,
    right:0,
    bottom:0,
    left:0,
    background:'red'
}

var el = document.getElementById( 'some_id' );
for( var key in style ){
    el.style.key = style[key]
}

但是当我运行我的脚本,我得到"Uncaught TypeError: Cannot read property 'style' of null"

代码示例:

Object.assign(document.querySelector('.my-element').style, {
    position: 'fixed',
    top: 0,
    right: 0,
    bottom: 0,
    left: 0,
    background: 'red'
})

关于JSFiddle的例子:

https://jsfiddle.net/b6hexafL/4/

如果你想在加载时生成一个或多个iframe,这似乎工作得很好:

    var dir,name,ele,style,k,v;
    dir = ...
    name = ...
    ele = $(document.createElement("iframe"));
    $("#layout",parent.document).append(ele);
    ele.attr({
        src: dir +"/" +name +".html",
        id: dir +name
    });
    style = nset[dir].monitor[name].css;
    $.each(style,function(k,v){
        ele.css(k,v)
    });
    ele.load(function(){
        //next iframe or start function ... can use loaded frames
    });

与nset的相关部分像这样:

 "lert": {
        "css":{
            "left": 100 ,
            "top": 0 ,
            "width": 320 ,
            "height": 480 ,
            "display": "none",
            "overflow": "hidden",
            "backgroundColor":"white"
        }
   }

你应该写:

for (var key in style) { 
    el.style[key] = style[key]
}

示例:

for(var key in s) {
    el.style[key] = s[key]
}