我有一種情況,有時元素在頁面加載時加載,有時它們是在稍後的日期由JavaScript生成的,沒有什麼特別。但是,Chrome,FireFox和Safari中動態生成的元素間隔明顯不同。爲什麼添加JS的元素與頁面加載時的元素不同?
下面是一個HTML頁面,其中一頁中的元素在頁面加載時位於DOM中,在頁面加載後JavaScript中添加了這些元素的精確副本。由於某些原因,JS添加的元素(#added-late
中的元素)的樣式與#exists-at-page-load
中的元素不同,儘管所有樣式和佈局相同。
問題:爲什麼靜態生成的元素(#exists-at-page-load
中的元素)在它們周圍有額外的空間?
<!DOCTYPE html>
<html>
<style>
.dark-section-header {
background-color: #222;
margin-bottom: 5px;
}
.dark-section-header div {
display: inline-block;
height: 30px;
width: 20px;
margin: 0;
margin-left: 10px;
}
.dark-section-header .track-menu {
outline: 1px dashed #f00;
}
.dark-section-header .play-button {
outline: 1px dashed #0f0;
}
.dark-section-header .star-button {
outline: 1px dashed #77f;
}
</style>
</head>
<body>
<div id="exists-at-page-load">
<div class="dark-section-header">
<div class="play-button"></div>
<div class="track-menu"></div>
<div class="star-button"></div>
</div>
</div>
<div id="added-late"></div>
<script>
setTimeout(function(){
document.getElementById('added-late').innerHTML =
'<div class="dark-section-header">' +
'<div class="play-button"></div>' +
'<div class="track-menu"></div>' +
'<div class="star-button"></div>' +
'</div>';
}, 0);
</script>
</body>
</html>
[的jsfiddle](HTTP ://jsfiddle.net/Wnr6z/) – Eric