Межсимвольный интервал не работает, когда страница была обработана document.write

Ниже код работает, как я ожидал. Каждая вещь идеально подходит для укладки.

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

результат с межбуквенным интервалом

Однако, если я отрисовываю "div" с помощью document.write, "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>

Есть кто-нибудь знает почему?

2 ответа

Решение

Это потому что ты пишешь это так

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>');

Это очень странно, но я мог бы исправить это некоторым трудным способом, как это

document.write('<div class="letter-spacing"> '+
               '<img style="margin-right: 20px;" src="icon1">'+
                   '<img src="icon2">'+
               '</div>');

Но если я устанавливаю класс в css, он не работает. Это действительно странно

Другие вопросы по тегам