Ну, это очень сложный вопрос, откуда 4px. Я постараюсь ответить на него.
Если для любого элемента задано отображение inline-block, то 4px находятся справа от этого элемента. На самом деле это размер, который занимает «белое пространство», да, это фактически белое пространство.
Вы можете думать об этом как о том, что элемент inline-block разделен пробелом и обычно занимает 4 пикселя, потому что в Opera это занимает немного больше (хотя не уверен насчет последней версии - потому что разные шрифты отображают пробелы с различной шириной в В разных браузерах единственным шрифтом, который отображает одинаковую ширину пробелов в браузерах и размерах шрифтов, является Courier New. Это шрифт с фиксированной шириной, ширина которого 0,63 мкм.). Но вы поняли смысл?
Теперь существуют различные варианты обхода, такие как float: влево или даже установка отрицательного 4px межбуквенного интервала родительского элемента, который содержит встроенные заблокированные элементы.
Вы также можете попробовать размер шрифта: 0;
А в вашем конкретном случае позиция: абсолютная; кажется лучшим вариантом.