当document.write呈现页面时,css字母间距不起作用

时间:2015-03-05 04:35:53

标签: css document.write letter-spacing

下面的代码按我的预期工作。每件事都很完美。

<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>

result with letter-spacing

但是,如果我使用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>

enter image description here

有人知道为什么吗?

2 个答案:

答案 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中设置一个类就行不通。那太奇怪了