下面的代码按我的预期工作。每件事都很完美。
<style>
.letter-spacing{
width: 400px;
background: red;
text-align: center;
letter-spacing: 20px;
}
</style>
<div class="letter-spacing">
<img src="icon1.png">
<img src="icon2.png">
</div>
但是,如果我使用document.write渲染“div”,“letter-spacing:20px;”不起作用。有趣的是红色背景和中心对齐仍然有效。
<style>
.letter-spacing{
width: 400px;
background: red;
text-align: center;
letter-spacing: 20px;
}
</style>
<script>
document.write('<div class="letter-spacing">'+
'<img src="icon1.png">'+
'<img src="icon2.png">'+
'</div>');
</script>
有人知道为什么吗?
答案 0 :(得分:3)
它是因为你这样写的
document.write('<div class="letter-spacing">'+
'<img src="icon1.png">'+
'<img src="icon2.png">'+
'</div>');
将产生此HTML
<div class="letter-spacing"><img src="icon1.png"><img src="icon2.png"></div>
不包含任何空格,因此letter-spacing: 20px;
无效。
与您在HTML
中直接撰写并且new line
被视为空格的内容不同。
如果您想获得相同的结果,请将其更改为
document.write('<div class="letter-spacing">'+
'<img src="icon1.png"> '+ // Note the space before '
'<img src="icon2.png">'+
'</div>');
答案 1 :(得分:0)
这很奇怪,但我可以用这样的方式解决它
document.write('<div class="letter-spacing"> '+
'<img style="margin-right: 20px;" src="icon1">'+
'<img src="icon2">'+
'</div>');
但是如果我在css中设置一个类就行不通。那太奇怪了