Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异常列表,如.className和style.cssFloat?_Javascript_Html_Css - Fatal编程技术网

Javascript 异常列表,如.className和style.cssFloat?

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也是如此,因为类是保留的 所以我的主要问题是:是否有一个像

我的理解是,当使用JavaScript设置样式时,通常是element.style.cssproperty=“css value”

然而,当您拥有诸如字体大小和背景颜色之类的CSS属性时,它们就会变成camelCase,所以fontSize和backgroundColor作为Javascript在hypen中不起作用

我刚刚读了这个简短的网站,上面解释了style.cssFloat被用作float是一个保留关键字。我相信className也是如此,因为类是保留的

所以我的主要问题是:是否有一个像cssFloat和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属性定义的,并且通常具有相同的名称。但是,这不是必需的。比如说,

  • className
    IDL属性反映
    class
    content属性,因为
    class
    在ES5之前不是有效的属性访问器
  • defaultValue
    IDL属性反映
    input
    元素的
    value
    内容属性,因为
    value
    IDL属性表示当前值,而不是HTML源中设置的初始值

与CSS驼峰式IDL属性不同,反射IDL属性不是“自动”定义的。每一个都是分开定义的,所以事实上我不认为它们是例外。然后没有异常列表。

您可以在浏览器中运行
console.dir(document.body.style)
之类的操作,然后查看所有选项。