Почему образуется небольшой зазор при наведении на абсолютно-спозиционировныый элемент?
Потому что img по умолчанию это инлайн-элемент, как отдельная буква в тексте. Соответственно у таких элементов есть междустрочный и межсимвольный интревал. Убрать можно так:img {display: block}
Браузер по умолчанию добавляет этот отступ к img.
IMG – внутристрочный элемент, и поэтому к нему применяется свойство vertical-align как baseline.
Добавьте к img vertical-align: middle; и все будет ок