Javascript 如何从CSSStyleDeclaration对象获得真正的css属性名?
问题是一些css属性有不同的名称是javascript,例如js中的Javascript 如何从CSSStyleDeclaration对象获得真正的css属性名?,javascript,css,Javascript,Css,问题是一些css属性有不同的名称是javascript,例如js中的textOverflow是css中的text overflow js引擎中是否有我可以访问的翻译表,或者我必须自己做一个翻译数组或对象,如: transObj = { textOverflow : 'text-overflow' }; 例如,我在这个对象中循环,得到的只是js名称: for (var n in csd) { if (!csd.hasOwnProperty(n)) continue; csd[n].get
textOverflow
是css中的text overflow
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名称中的大号字母都转换为css名称中的
-[a-z]
?所有包含-
的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
或诸如此类的东西。并且没有例外?这个正则表达式安全吗?从js到css也是如此?@rsk82:至少我没有发现任何异常。float
转换为cssFloat
:(