Привет.
Вопрос по хтмл. Когда пишется разметка, то используются символы форматирования - пробел, табуляция, перевод строки. Потом из этих символов форматирования получаются объекты узлы с прототипом TEXT
. Эти объекты-узлы не являются блочными или строчными элементами, так как это не лежащий в элементе текст, но они как-то отображаются. Вопрос - как отображаются эти узлы? Эти узлы не являются элементами, поэтому к ним неприменимо понятие "блочный элемент" и "строчный элемент". Как рассчитывается ширина текстового узла? Вообще об этом ни слова не встречал.
Перед тем, как отобразить, браузер строит макет страницы. При макетировании браузер вычисляет размеры и положение всего на странице перед тем, как расположить. вот меня как раз и заинтересовало, как браузер считает размеры и положение строковых узлов.
Вот пример:
<style>
span{
display:inline-block;
width:50px;
height:50px;
background-color:red;
}
</style>
<div>
<span>qwe</span>
<span>asd</span>
<span>zxc</span>
</div>
Получаю это:
Маргины спанам я не задавал.
Эту фигню можно победить тремя способами:
писать в одну строку без пробелов и энтэров.
удалить узлы текстовые джаваскриптом.
задать диву-контейнеру font-size:0px, а спану - нужный font-size, например 12px
При рендере html - браузеры учитывают пробелы, переводы строк и табуляции, сворачивая их до одиночного пробела, который вы и видите в результате. Зазор между блоками как раз выходит шириной в одиночный пробел.
По этой же причине, если указать для контейнера font-size: 0;
- ширина любых символов (и пробелов) будет равна нулю. И зазоров уже не будет.
У вас родительский div имеет font-size. И из-за этого получается проблема. Поставивьте родительскому диву font-size: 0 а дочерним задайте свой font-size
Виртуальный выделенный сервер (VDS) становится отличным выбором
Программа берет содержание буфера(Хранится Html) должна сделать над ним какую-то работу
Проблема такова, стояла задача в вырезании объекта из фонаПосле всех манипуляций получилось вот что