Погуглил. Вот тут предлагают показывать вместо изображения средний цвет: https://manu.ninja/dominant-colors-for-lazy-loading-images/
Правильно понял. Но без JS эту задачу не решишь.
Либо прозрачными, либо невидимыми, либо и то и другое одновременно. Но нужно это свойство задавать не для всех img, а только для картинок с атрибутом loading="lazy".Именно так это и следует делать, как я и написал выше.
Я нашел какой-то код на stackoverflow в виде примера и как я понял просто так там transition свойством не сделаешь, но там в принципе немного кода, чутка jQuery пару строк и чуть css, но как я понял по дефолту он предлагает сделать все картинки полностью прозрачными, что что-то не очень мне нравиться.
jQuery://fade in lazy loaded images $('article img').on('load', function(){ $(this).addClass('loaded'); });CSS:img{ opacity: 0; transition: opacity 300ms ease-in-out;}img.loaded{ opacity: 1;}