Логично что нельзя. Как вы класс добавите и уберете?
С классом - все просто:
.loading {
opacity: 0;
transition: opacity .5s
}
На js вам нужно добавить/удалить класс:
document.getElementById('id').classList.add('loading');
{Загрузка содержимого}
document.getElementById('id').classList.remove('loading');
UP: Да, я не учел, что при удалении loading transition тоже исчезнет. просто дайте transition: opacity .5s этому элементу вне зависимости от класса loading. Можно просто inline стиль добавить...
по второму вопросу. это возможно если появившаяся информация будет иметь свой фон. т.е.
<div style="background-image: url('loading.gif')">
<div style="transition: opacity .5s; background-color: #fff">
{контент}
</div>
</div>