0

让我解释。我有一个存储在表格中的 css 页面,它以这种形式呈现:

. styleFloatCenter, form.styleFloatCenter,. focus {
   margin: auto;
   width: 70%;
}

所有的 CSS 都是这样构建的,这是一种规范。对于我的示例,我需要为我的所有 css“规则”恢复第二个元素,例如 styleFloatCenter。

一个主意?泰!

编辑:第二个例子:

. red, form.redColor,. focus {
   margin: auto;
   width: 70%;
}

这里我需要红色...

4

3 回答 3

1

尝试 javascript 正则表达式 -

var pattern = /,(.+),/;
var oneRule = ". styleFloatCenter, form.styleFloatCenter,. focus {\
 margin: auto;\
 width: 70%;\
 }"; //store one rule in it
var result = pattern.exec(oneRule);
alert(result[1]); //Your required value​

可以在这里查看
您可以使用循环一一分配每个规则。
如果要一起解析整个 css 文档,则首先使用模式搜索规则,然后使用第二个元素

于 2012-07-18T16:11:44.603 回答
1

要阅读您的样式表规则,请使用document.styleSheets. 以下代码列出了页面上所有样式表中所有规则的第二个选择器的类名:

// for all stylesheets on the page
for(var i = 0; i < document.styleSheets.length; ++i) {
    var rules = document.styleSheets[i].rules || document.styleSheets[i].cssRules;

    // for all rules in this sheet
    for(var j = 0; j < rules.length; ++j) {

        // get the full selector string for this rule
        var selector = rules[j].selectorText;

        // get the second selector in the list
        var secondSelector = selector ? selector.split(",")[1] : null;

        // get the class name of that selector
        var secondSelectorClass = secondSelector ? secondSelector.split(".")[1] : null;

        console.log(secondSelectorClass);
    }
}
于 2012-07-18T16:19:20.340 回答
0
window.getComputedStyle(document.getElementsByClassName("styleFloatCenter")[0])

如果页面上有该类的元素,则可以computedStyle使用上面的代码获取它。从那里您可以找到您可能正在寻找的任何特定样式。

顺便说一句,点和选择器名称之间不能有空格。. styleFloatCenter不会选择带有 class 的元素styleFloatCenter。它必须.styleFloatCenter没有空间。

如果您只是想要第二个选择器的名称.styleFloatCenter, form.styleFloatCenter,.focus,您可以简单地使用explode逗号分隔列表并选择第二个。

$parts = explode(',', '.styleFloatCenter, form.styleFloatCenter,.focus');
echo $parts[1];
于 2012-07-18T16:03:32.237 回答