На первую часть вашего вопроса уже дан ответ, поэтому я не буду повторяться.
Что касается второй части, некоторые браузеры, такие как Firefox, отображают тег no-image img
в виде промежутка, даже если атрибуты width и height указаны в CSS.
Вы можете попробовать это сами с этим HTML-кодом:
<img alt='no image' src='about:blank'><br>
<img alt='no image' src='about:blank'id=iblock>
и соответствующий CSS:
img {
height: 100px;
width: 100px;
background: cyan;
}
#iblock {
display: inline-block;
}
Или посмотрите разницу в эффекте рендеринга с помощью этой Демо на JsFiddle .