本文总结JavaScript中动态调用CSS属性的命名规律:无连字符属性直接调用,含连字符属性转为驼峰命名。重点解析float属性的兼容性问题,指出其作为保留字需特殊处理,并提供IE与非IE浏览器的正确写法及完整示例代码。
JavaScript操作CSS属性的命名规则
此前阅读到一篇关于JavaScript调用CSS属性的优质文章,内容详实,为避免遗忘,此处进行整理总结。
对于不包含连字符的CSS属性,通常可直接通过style对象调用属性名,例如:obj.style.margin、obj.style.width、obj.style.left以及obj.style.position等。
若CSS属性名中包含连字符,处理规则为:去除所有连字符,并将原连字符后的首个字母转换为大写形式。
典型示例包括:obj.style.marginTop、obj.style.borderLeftWidth、obj.style.zIndex以及obj.style.fontFamily等。
float属性的兼容性与正确写法
由于float是JavaScript的保留字,因此在JS中直接书写样式表中的float属性会遇到障碍。
直接使用obj.style.float进行赋值是无效的,无法实现预期样式更改。
正确的兼容处理方式为:在IE浏览器中使用obj.style.styleFloat,而在Mozilla(Gecko引擎)、Firefox等其他现代浏览器中则使用obj.style.cssFloat。
以下提供具体示例代码,以便更直观地理解上述机制。
代码实现如下:
<div onclick="alert(this.style.float);
this.style.float='left';
alert(this.style.float);">测试1</div>
<div onclick="alert(this.style.float);
if(this.style.cssFloat){this.style.cssFloat='left';
}else{this.style.styleFloat='left';
}alert(this.style.float);">测试2</div>