为什么js添加的元素样式与页面加载时的不同?
Why are JS-added elements styled different from those at page load?
我有一种情况,有时元素是在页面加载时加载的,有时它们是在稍后由JavaScript生成的,没有什么特别的。然而,动态生成的元素间距在Chrome, FireFox和Safari中明显不同。
下面是一个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>
让javascript在div之间插入空白:
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 );
或者确保你的HTML没有:
<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>
这是js和spacing的所有组合
由于它们显示为内行块,因此换行导致它们具有空白
如果我将静态div改为
<div class="play-button"></div><div class="track-menu"></div><div class="star-button"></div>
空格消失
相关文章:
- 在iframe中加载url并添加一个类
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- Angular:在页面加载后添加类
- 当CDN加载失败时,为字体添加一个本地CSS回退
- HTML图像未加载(自动添加内联css和属性)
- 清理在加载 Ajax 内容时添加的 CSS
- 为 HTML5 游戏添加游戏加载程序
- 如何在地图加载后向谷歌地图添加标记
- 在 <对象> 标记中加载 SVG 时,将侦听器添加到 SVG 卸载事件
- 如何将“跨源”标记添加到动态加载的脚本中
- 是否可以在不将其添加到DOM的情况下预加载和缓存视频文件
- 如何将回调添加到 gstatic 加载器.js谷歌图表库
- 添加支持异步重新加载的 Web 图层
- 在加载状态之前,我需要在angular js中为每个状态添加角色
- 将加载添加到 iFrame
- 如何在加载/添加新帖子到提要列表时隐藏帖子元素
- 加载添加了javascript的网站
- 如何加载添加了jQuery的页面
- jquery点击,页面加载添加类