src
не является «пустым», это относительный URI, который разрешает URI текущего документа, так как это HTML-документ, это не изображение, поэтому будет выдана ошибка.
В зависимости от браузера он может создавать или не отображать поле размера, указанного вами для недопустимого изображения.
Решение состоит в том, чтобы не вставлять изображения в DOM (через HTML или JS), которые не имеют атрибутов src, содержащих URI фактического изображения.
Я пытался инкапсулировать изображения в div с фиксированной шириной (например, так), но безрезультатно, что ширина div тоже не остается фиксированной.
Вы явно установили элементы div на display: inline
. Свойство width
не применяется к встроенным элементам.