2013-07-12 5 views
0

Мне любопытно, как браузеры интерпретируют разрывы строк в HTML и как это переводится в пробел в рендеринге разметки. Для примера рассмотрим следующие две дивы:Новые строки в HTML

<div> 
    <select> 
     <option>one</option> 
    </select> 
    <input /> 
</div> 
<div> 
    <select> 
     <option>one</option> 
    </select><input /> 
</div> 

Первый DIV будет иметь больше пустого пространства между отборных и входными элементами, так как разрыв строки между ними визуализируется в пустое пространство; видел here. Мне интересно узнать причину этого и лучший способ избежать этого дополнительного интервала при сохранении читаемого HTML, так как я не чувствую, что второй div очень читаем.

+5

Если по крайней мере один белый символ пробела появляется между двумя HTML элементами в исходном HTML код, браузер создаст * TextNode * между эти два элемента в DOM. –

ответ

1

Любые пробелы в html, включая 40 пустых символов, будут интерпретироваться как один символ ' '. Таким образом, разрыв строки и 500 пробелов будут отображаться как одно пространство. Лучший способ избежать Пробелы с CSS:

select{float:left} 

http://jsfiddle.net/FSnhH/4/

+0

Да, плавающий выбор будет исправлять это, это просто кажется странным. Я заметил это, когда я пошел добавить третий div, созданный на JavaScript, и визуализированное пустое пространство было другим. – rpf3

+0

Вам не нужно было бы плавать обязательно ... просто используйте css для форматирования вашего рендеринга/сгенерированного html – bluetoft

+0

Как CSS, кроме float deal с тем фактом, что между элементами есть выделенный текстовый узел? – rpf3

Смежные вопросы