<SCRIPT LANGUAGE="JavaScript">
DynamicImage1(xx) DynamicImage2(yy) DynamicImage3(zz)
</SCRIPT>
这个 JS 片段在我的 HTML 表单中。(每个函数将根据输入参数显示不同的值。)
如何设置这些图像之间的间距?我希望它们都在同一行(默认情况下),但它们之间有间距。
我正在考虑把它放在桌子上,但我不确定这是否是最好的方法
更清洁的方法是将它们分开:
<div id="image1">
<SCRIPT LANGUAGE="JavaScript">
DynamicImage1(xx)
</SCRIPT>
</div>
<div id="image2">
<SCRIPT LANGUAGE="JavaScript">
DynamicImage2(xx)
</SCRIPT>
</div>
<div id="image3">
<SCRIPT LANGUAGE="JavaScript">
DynamicImage3(xx)
</SCRIPT>
</div>
然后使用 CSS 设置样式;用于float:left
将它们排成一排并添加padding:right
到空间中。
我说这是干净的方式;不太干净的方法是保留你所拥有的,但document.write(" ")
在每个图像之间添加。
与其直接在页面上编写代码,不如创建具有唯一 id 的通用容器(例如,< div id="images_container" ></ div >),并使用innerHTML属性将图像 HTML 一张一张地写入此容器中。
啊。不要在避免它们的地方使用内联脚本,并且在可以直接创建和插入 DOM 时不要使用 innerHTML。并使用 CSS 来处理 positionin/spacin 方面。图像已经内联显示,因此将 div 单独包装在它们周围只会使事情复杂化。
在不知道你的方法做什么的情况下,我猜,但这是你应该大致做的事情:
<head>
<script>
function createImage(t,params)
{
var img = document.createElement('img');
/* season img to taste (e.g. img.src = params.source? */
t.appendChild(img);
}
/* bind this method to onload event or better a ready event */
function exec()
{
var t = document.getElementByid('target');
createImage(t,xx);
createImage(t,yy);
createImage(t,zz);
}
</script>
<style>
/* I'm not advocating px here and these are just example values */
#target {width: 600px; text-align: center;}
#target img {border: 0px; margin: 0 10px; } /* the margin handles the spacing */
</style>
</head>
<body>
<div id="target"></div>
</body>
为什么 innerHTML 不好?虽然确实可以更快,但并非总是如此,而且无论如何它都很接近,但是速度并不是 JS 的真正问题。然而innerHTML: