我的理解是anchor tag is inline by default。那麼爲什麼下面的代碼返回這些意外的結果?爲什麼`getComputedStyle`不能爲錨標籤返回「inline」?
var aTag = document.createElement('A');
document.defaultView.getComputedStyle(aTag).display
// Chrome: ""
// Firefox: "block"
我錯過了什麼?
我的理解是anchor tag is inline by default。那麼爲什麼下面的代碼返回這些意外的結果?爲什麼`getComputedStyle`不能爲錨標籤返回「inline」?
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
小提琴與前後:http://jsfiddle.net/RXZ9c/2/我不會說「它沒有計算風格,「只是計算出來的樣式還沒有UA樣式表(正如你稍後說的)。 –
@TJCrowder - 是的,剛剛添加了測試之後,它在元素添加到DOM之前返回了一個styleDecleration,它似乎缺少瀏覽器設置的所有樣式,直到您將元素實際放入DOM中,這是有道理的。 – adeneo
不要混淆內嵌實體在HTML 4帶有'display:inline'的DTD(即使兩者之間有很多關聯) – Quentin