我有一些代码用
<img src='0.gif' style='cssFloat:left'>
我正在尝试使用生成图像标记的库重写此代码,该库实际上正在执行以下操作:
img = document.createElement('img')
img.src = '0.gif'
img.style['cssFloat'] = 'left'
然而,当我这样做的时候,我看到了不同的行为:图像没有正确排列,当我在Chrome的调试器工具中检查HTML源代码时,它说样式是“float:left”而不是“cssFloat:left”。如果我在调试器工具中将其手动编辑为“cssFloat:left”,那么它将正确地浮动图像,并且所有内容都将正确对齐。
为什么设置cssFloat会以编程方式将样式改为“float”?为什么会有不同?
最佳答案
CSS属性是float
-因此,将忽略style属性中未知/无效的“cssFloat”属性。
但是,CSSfloat
属性在DOM中被映射为cssFloat
,以避免保留字(特别是float
)。上面的MDN链接包含以下注释:
如果从JavaScript将此属性引用为element.style对象的成员,则必须将其拼写为cssFloat。.. 这是一个例外规则,即DOM成员的名称是用破折号分隔的CSS名称的驼峰大小写名称(这是因为“float”在JavaScript中是一个保留字)
这类似于类(CSS)vsclassName
(DOM)和其他“异常”规则。