3

问题是某些 css 属性具有不同的名称是 javascript,例如textOverflow在 js 中是text-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

所有包含 a 的 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();
});

这也适用于喜欢-webkit-box-shadow或诸如此类的东西。

于 2012-08-03T16:12:34.223 回答