Javascript 为什么';t`getComputedStyle`return";内联“;锚定标签?

Javascript 为什么';t`getComputedStyle`return";内联“;锚定标签?,javascript,css,google-chrome,dom,Javascript,Css,Google Chrome,Dom,我的理解是。那么为什么下面的代码会返回这些意外的结果呢 var aTag = document.createElement('A'); document.defaultView.getComputedStyle(aTag).display // Chrome: "" // Firefox: "block" 我遗漏了什么?除非您将锚点放在DOM中,否则它没有计算样式,因为浏览器本机样式表尚未应用 var aTag = document.createElement('a'); document.b

我的理解是。那么为什么下面的代码会返回这些意外的结果呢

var aTag = document.createElement('A');
document.defaultView.getComputedStyle(aTag).display
// Chrome: ""
// Firefox: "block"

我遗漏了什么?

除非您将锚点放在DOM中,否则它没有计算样式,因为浏览器本机样式表尚未应用

var aTag = document.createElement('a');
document.body.appendChild(aTag);
var d = window.getComputedStyle(aTag).display;

// now returns inline in chrome

不要将HTML4DTD中的内联实体与
显示:内联(即使两者之间有很多相关性)混淆:我不会说“它没有计算样式”,只是计算样式还没有UA样式表(如您稍后所说)。@t.J.Crowder-是的,刚刚添加的是,在测试之后,在元素添加到DOM之前,它确实返回了一个StyleDecellation,它似乎缺少浏览器设置的所有样式,直到您实际将元素放入DOM,这是有意义的。