【问题标题】:Why doesn't `getComputedStyle` return "inline" for anchor tags?为什么 `getComputedStyle` 不为锚标签返回“内联”?
【发布时间】:2014-04-01 17:27:51
【问题描述】:

我的理解是anchor tag is inline by default。那么为什么下面的代码会返回这些意想不到的结果呢?

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

我错过了什么?

【问题讨论】:

  • 不要将 HTML 4 DTD 中的内联实体与 display: inline 混淆(即使两者之间有很多相关性)

标签: javascript css google-chrome dom


【解决方案1】:

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

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

// now returns inline in chrome

FIDDLE

【讨论】:

  • 摆弄之前和之后:jsfiddle.net/RXZ9c/2 我不会说“它没有计算样式”,只是计算样式还没有 UA 样式表(你稍后会说) .
  • @TJCrowder - 是的,只是在测试之后添加了它,并且在元素添加到 DOM 之前它确实返回了一个 styleDecleration,它似乎缺少浏览器设置的所有样式,直到你实际上将元素放入 DOM 中,这是有道理的。
猜你喜欢
  • 2019-11-03
  • 2021-02-19
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
相关资源
最近更新 更多