<div class="image"> <img src="images/3754004820_91a5c238a0.jpg" alt="" /> <h2>ВсеБудетОк:<br />а может и нет</h2> </div>
Проще всего было бы сделать картинку фоном слоя, однако в этом примере я расматриваю изображение как контент. Мы будем использовать этот обертывающий слой для абсолютного позиционирования.
Данный код наложит текст сверху изображения, но он не позаботится о прозрачном черном фоне за текстом. Для этого мы не можем использовать h2, так как это блочный элемент. А нам необходим инлайновый без заданой ширины.
Давайте добавим еще один (span) слой в тег h2:
Code
<h2><span>ВсеБудетОк:<br />а может и нет</span></h2>
Теперь давайте используем этот (span) слой для стилизации текста и фона:
Когда к инлайновому элементу мы добавляем перенос строки, он сразу же переносится на другую строку без отступа. Padding в таком случае не помогает.
Для решения этого мы добавим несколько span с обоих сторон элемента <br /> для добавления отступа.
Code
<h2><span>ВсеБудетОк:<span class='spacer'></span><br /><span class='spacer'></span>а может и нет</span></h2>
В стилях пропишем отступ:
Code
h2 span.spacer { padding:0 5px; }
Исправляем семантику
На данном этапе дизайн готов, но при этом было использовано много дополнительных HTML элементов. А именно много теговspan. jQuery может нам помочь с этим. Убираем все span из разметки и динамически их добавляем вот так: