Javascript 异常列表,如.className和style.cssFloat?
我的理解是,当使用JavaScript设置样式时,通常是element.style.cssproperty=“css value” 然而,当您拥有诸如字体大小和背景颜色之类的CSS属性时,它们就会变成camelCase,所以fontSize和backgroundColor作为Javascript在hypen中不起作用 我刚刚读了这个简短的网站,上面解释了style.cssFloat被用作float是一个保留关键字。我相信className也是如此,因为类是保留的 所以我的主要问题是:是否有一个像cssFloat和className这样的例外列表Javascript 异常列表,如.className和style.cssFloat?,javascript,html,css,Javascript,Html,Css,我的理解是,当使用JavaScript设置样式时,通常是element.style.cssproperty=“css value” 然而,当您拥有诸如字体大小和背景颜色之类的CSS属性时,它们就会变成camelCase,所以fontSize和backgroundColor作为Javascript在hypen中不起作用 我刚刚读了这个简短的网站,上面解释了style.cssFloat被用作float是一个保留关键字。我相信className也是如此,因为类是保留的 所以我的主要问题是:是否有一个像
第二个问题:在阅读上述文章之前,我一直在使用.style.float。括号自动建议它和它的工作在铬很好。所以我假设并非所有浏览器都是这样?但为什么它会起作用呢?保留字问题 首先,标识符和IdentifierName之间的区别是 […]标识符是不是保留字的标识符名称 (见附件)。[……] 在属性访问器中,您可以使用标识符名称,包括保留字,如
float
或class
:
属性通过名称访问,使用点表示法:
MemberExpression . IdentifierName
CallExpression . IdentifierName
问题是以前的规范只允许属性访问器中的标识符,因此.class
和.float
无效
因此,web标准引入了变通方法
CSS IDL属性
如果您不想关心CSS属性,“最标准”的方法是使用设置值和获取值:
element.style.setProperty('float', 'left');
element.style.getPropertyValue('background-color');
但是,为方便起见,支持的CSS属性(包括浮点值
)也可以按如下方式提供
由于float
将抛出错误,因此引入了特定的
您可以在定义中看到,没有像cssFloat
这样的其他情况
反映IDL属性
许多内容属性都是由IDL属性定义的,并且通常具有相同的名称。但是,这不是必需的。比如说,
IDL属性反映className
content属性,因为class
在ES5之前不是有效的属性访问器class
IDL属性反映defaultValue
元素的input
内容属性,因为value
IDL属性表示当前值,而不是HTML源中设置的初始值value
与CSS驼峰式IDL属性不同,反射IDL属性不是“自动”定义的。每一个都是分开定义的,所以事实上我不认为它们是例外。然后没有异常列表。您可以在浏览器中运行
console.dir(document.body.style)
之类的操作,然后查看所有选项。