3

問題は、一部のcssプロパティの名前がjavascriptであるということです。たとえばtextOverflow、jstext-overflowではcssにあります。

jsエンジンのどこかにアクセスできる変換テーブルがありますか、または次のような変換配列またはオブジェクトを自分で実行する必要があります。

transObj = { textOverflow : 'text-overflow' };

たとえば、私はこのオブジェクトをループしていて、取得するのはjs名だけです。

for (var n in csd) {
  if (!csd.hasOwnProperty(n)) continue;
  csd[n].getTrueCSSName() // is there something like this ?
}

または、単純な正規表現の置換で問題ないかもしれませんが、js名のすべての大きな文字が-[a-z]css名に変換されるという規則があるかどうかはわかりませんか?

4

1 に答える 1

2

を含むすべてのcssスタイルは、すべての場合に使用できるわけではないため、ECMAscriptではcamelCase表現に-置き換えられます。次のような正規表現を呼び出すことで、名前を翻訳できます。-

var name = "font-width";

// convert names like "font-width" into css camelCase form like "fontWidth"
name = name.replace( /-(\w)/g, function _replace( $1, $2 ) {
    return $2.toUpperCase();
});

これは、like-webkit-box-shadowまたはwhatnotでも機能します。

于 2012-08-03T16:12:34.223 に答える