Прежде всего, если элемент img является плавающим, его родительский размер не будет автоматически получен. Кроме того, как я вижу, imgWrap - это div, а не span, поэтому он использует максимально возможную ширину и устанавливается на display: block.
Ваш элемент img должен быть заключен в другой элемент с отображением inline или inline-block. Это позволит убедиться, что элемент обертки принимает размер своих дочерних элементов. Присвойте ему относительную позицию, тогда вы можете поместить заголовок с абсолютной позицией и установить для него ширину 100%.
Надеюсь, это поможет. Удачи!
приписка
Проверил твой код, вот что, я думаю, тебе следует сделать.
Добавьте следующее в ваш div.imgWrap:
display: inline-block;
position: relative;
Я думаю, что в вашем случае этого будет достаточно.