Эта разметка может быть значительно улучшена. Но если вы просто ищете исправление, попробуйте добавить position: relative
к #main
.
То, что происходит, #pattern
выходит из естественного потока документа, потому что на нем установлено position: absolute
. Поэтому, если не указано иное, он появляется поверх каждого другого элемента внутри своего родительского элемента.
Также я хотел бы рассмотреть возможность уменьшения вашей разметки до чего-то подобного ...
<div id="wrapper">
<div id="pattern"></div>
<img src="http://i52.tinypic.com/16i6z9d.jpg" />
<h3 class="text">
Freelance Web/Logo <br />
Designer & Developer <br />
→ Muzammil Hussain
</h3>
</div>
Будьте осторожны, чтобы не использовать слишком много идентификаторов при использовании их для стилизации элементов. Они могут быть очень мощными, и на большом сайте это может привести к большим трудностям при попытке переопределить их и их дочерние элементы, когда вы захотите.