У меня недавно стал вопрос, как сделать текст поверх картинки. Тогда я мог с уверенностью сказать, что так сделать нельзя. И конечно же оказался неправ. Это реально сделать, причем не затрачивая на это много усилий! Потому что это самое простое что можно сделать..
И так, для начала создадим саму картинку.
<img src="url images" />
Есть картинка, поверха которой нужно сделать текст. Мы сделаем это с помощью “position“. Но для начала, что оно из себя представляет.
Position - Устанавливает способ позиционирования, относительно родителя.
- position: absolute; - задает абсолютное свободное позиционирование. Значения атрибутов bottom, left, right и top при этом задают абсолютные координаты элемента страницы относительно родителя.
- position: relative; - задает относительное свободное позиционирование. Значения атрибутов bottom, left, right и top при этом задают смещение координат элемента страницы от точки, в которой он был отображен, будь атрибут position установлен в static.
- position: static; - (значение по умолчанию) задает статическое позиционирование, при котором элемент страницы отображается внутри общего “потока” текста, т.е. не свободно. Значения атрибутов bottom, left, right и top при этом не принимаются Web-обозревателем во внимание.
- Хм.. Если вы делаете только одно изображение на всю страницу, то выгодно будет пользоваться absolute, так как он позволит выбрать положение по всему экрану.
- А если вам нужно будет сделать маленькую картинку в нутри тега <div> или в таблице, то лучше воспользоваться relative.
Мне нужно было сделать так как во втором примере. Делаем текст, который в дальнейшем будет находится на картинке. Вот пример:
<div width="10%"><!-- Див, в ктором находится наш текст и картинка -->
<img src=”logo.jpg”>
<div>Текст поверх картинки</div>
</div>
После этого кода получается текст ниже картинки. Чтобы он стал на картинке, задаем ему position:relative;
<div width="100%">
<img src=”logo.jpg”>
<div style=”position:relative;bottom:100px;”>Текст поверх картинки</div>
</div>
bottom:100px; - показывает настройки расположения текста. Настраивайте под свой вкус ;).
Ну вот и все.. Надеюсь полезен был урок!


# 1
Ммммм… а почему не наоборот? Картинка под текстом? Вообще, ситуаций, когда изображение семантически главнее, чем текст. Который, к тому же, надо будет еще выводить абсолютом. И он связан с картинкой только тем, что находится в одном диве (да еще без CSS и с deprecated атрибутом width в примере).
Не лучше ли просто сделать див с текстом, под который бэкграундом картинку? И код легче будет, заодно.
# 2
В статье же не написано, что это единственный выход из сложившийся ситуации, конечно есть и другие (некоторые даже и легче и рациональнее), но тут описан именно этот…
# 3
Спасибо за новость, очень познавательно сейчас сам пойду делать себе тоже самое у себя на сайте
# 4
Не понимаю этого. Можно и гвозди забивать микроскопом.
# 5
Сергей (извини что на ты), все потому что иногда нужно сделать так, чтобы картинка подходила под все разрешения экранов, то есть width=”100%”. И тогда background здесь бессилен(.
# 6
Да нет, как раз на “ты” - нормально :). Хм, ну при резиновой верстки - такое может быть, да, не подумал. Мне лично кажется, что семантичность и клиентская оптимизация важнее. Но решение на всякий случай в закладки.
# 7
Спасибо, пригодилось
Мне нужно было скрыть текст “Реклама tak.ru” который генерировался JavaScript’ом, а весь остальной текст, генерируемый темже скриптом нужно оставить, я сделал так http://cybergeek.ru :
Просто забыл сначало, что метод позиционирования тоже менять нужно, иначе вывод скрипта всё перекроент :)))
# 8
И когда надо, что бы картинка распечатывалась, а то background по умолчанию не распечатывается (