0

説明させてください。テーブルに保存されているcssページがあり、次の形式で表示されます。

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

すべてのcssはそのように構築されており、それは標準です。私の例では、すべてのcss「ルール」のstyleFloatCenterのような2番目の要素を回復する必要があります。

アイデア?Ty!

編集:2番目の例:

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

ここで私はredColorが必要です...

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​

こちらで確認できます
ループを使用して、各ルールを1つずつ割り当てることができます。
cssドキュメント全体を一緒に解析する場合は、最初にパターンを使用してルールを検索し、次に2番目の要素を使用します

于 2012-07-18T16:11:44.603 に答える
1

スタイルシートのルールを読むには、を使用しますdocument.styleSheets。次のコードは、ページ上のすべてのスタイルシートのすべてのルールの2番目のセレクターのクラス名を一覧表示します。

// 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クラスを持つ要素を選択しませんstyleFloatCenter.styleFloatCenterスペースがないはずです。

から2番目のセレクターの名前が必要な場合は、リストをコンマで分割して2番目のセレクターを選択する.styleFloatCenter, form.styleFloatCenter,.focusだけです。explode

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