我是那种喜欢做很多项目的人,特别是如果它只涉及 JavaScript,因为这是我的强项。
我想到了一个有趣的想法。用 JavaScript 编写小段 CSS。然后这些 CSS 片段可以在 Blob 中使用或以其他方式实现到网页中。
Most of the time, I do projects just for FUN and for build up in experience.
让我们更多地了解我们正在使用的东西。这些 JavaScript 样式表之一可能如下所示:
var sheet = {
"h1": {
"font-size": "24px",
"color": "blue",
children: {
"a": {
"font-size": "15px"
}
}
},
"a": {
color: "red"
}
};
这将返回:
h1{font-size:24px;color:blue}h1 a{font-size:15px}a{color:red}
注意元素children
中的属性。h1
这是我的嵌套方式,制作h1 a
.
然而,我的问题是,我怎样才能进行连续嵌套,以便最终得到类似的结果:
“h1 div 跨度 a”
这意味着每个嵌套的孩子都需要能够使用该children
属性。
我到目前为止的脚本如下(属于变量sheet
)。
var to = "";
for (var el in sheet) {
var props = [];
for (var prop in sheet[el]) {
if(prop != "children") {
props.push(prop + ":" + sheet[el][prop]);
}
}
to += el + "{" + props.join(";") + "}";
//----
if (sheet[el].children) {
for (var el2 in sheet[el].children) {
var props = [];
for (var prop in sheet[el].children[el2]) {
props.push(prop + ":" + sheet[el].children[el2][prop]);
}
to += el + " " + el2 + "{" + props.join(";") + "}"
}
}
//----
}
注释之间的部分是我用于 1 次嵌套的代码。
我不确定这将是多么困难。但我知道这可能并不容易。
我的完整示例在这里:http: //jsfiddle.net/shawn31313/2tfnz/1