Как сделать текст на картинке css
Перейти к содержимому

Как сделать текст на картинке css

  • автор:

CSS наложение: как написать текст на изображении

Ранее рассмотрели как написать текст на изображении в Фотошопе, теперь же время сделать это средствами CSS.

Благодаря тому, что мы задаём внешнему элементу position: relative, а внутреннему position: absolute, один блок ложиться поверх другого. В качестве примера возьмём светлый и темный прямоугольник:

 .temnyi < background-color: #666; height: 150px; width:500px; >.svetlyi

Указав свойство position, мы не увидим изменений, но теперь светлый блок будет перемещаться в рамках тёмного благодаря свойствам left, top, right и bottom. Например, поместим светлый прямоугольник по центру тёмного

  

Вышеуказанные свойства могут принимать отрицательные значения. Тогда элемент выходит за границы тёмного прямоугольника.

  

position: absolute и position:relative

Поскольку HTML код веб-документа представляет из себя матрёшку, где один элемент находится внутри другого, то посмотрим на ситуацию в целом. Например, с четырьмя слоями. Точкой отсчёта для свойств top, bottom, right, left является граница родительского элемента с position не в значении static (по умолчанию).

  . . 

position:relative;
position:relative;
position:relative;
position:relative;
position:relative;

Отрицательные значения смещают светлый блок на территорию другого контейнера. Но эту часть блока мы не увидим, коли будет добавлено свойство overflow: hidden.

position:relative; overflow: hidden;

Если же нужно показать только часть светлого блока, неравномерно убрав ненужные пиксели, то используется свойство clip: rect(вверх, вправо, вниз, влево); которое не применимо без position: absolute. auto показывает, что сторона остаётся без изменений.

свойство clip

position:relative;
clip: rect(auto, 200px, auto, 30px);

Взаимодействие блока с position: absolute с другими элементами

Мы можем в одном блоке разместить несколько элементов. Для удобства восприятия, не буду указывать попутные свойства.

  
А
Б

Если блоку А присвоить position: absolute, то блок Б расположиться так, словно блока А не существует — он займёт его место. Блок А уже не сможет влиять на положение блока Б ни посредством float: left, ни своей площадью, словно он парит над ним.

  
А
Б

Блок А перекрывает блок Б. Но стоит второму добавить position в значении relative, absolute или fixed, как ситуация измениться.

position: absolute;
position: relative;
position: absolute;
position: absolute;

Теперь приоритетным будет тот блок, который расположен ниже в коде, в данной случае белый Б. Для того, чтобы изменить естественный порядок, мы используем z-index. Чем больше значение этого параметра, тем выше находится элемент. Стоит помнить лишь то, что для position: static это свойство игнорируется (искл. свойство transform) и то, что в IE существует один изъян.

Поскольку элементы не могут влиять на положение друг друга, то без указания для них значений (или если значения одинаковы) top, bottom, right, left, transform: translate и margin, ложатся друг поверх друга. А высота родительского блока, коли она не установлена фиксировано, равна нулю. На этом принципе основаны многие вещи, в том числе CSS табы.

 .temnyi .svetlyi1 position: absolute;> .svetlyi2 position: absolute;> .temnyi:hover .svetlyi2 
А
Б

width (ширина) и position: absolute

width (или height) не применяется для большинства встроенных элементов. Имеет по умолчанию значение auto, что для блочного элемента равнозначно width: 100%.

  
Блочный
Встроенный

Вст роен ный

Но не при position: absolute. Здесь блочный элемент не будет растягиваться на ширину родительского элемента. Зато встроенные элементы займут указанную ширину. Но на них по прежнему будут влияют такие свойства, как text-align (обратите внимание на эту статью).

 .temnyi .svetlyi 
Встроенный

Вст роен ный

width: 100%; для обоих — это ширина родителя, для которого задано позиционирование отличное от static.

  
Блочный
Встроенный

Вст роен ный

Если width не задано, но есть указание противоположных значений left и right, то блок растянется на всю ширину между этими двумя точками. Иначе right будет проигнорирован.

  
Блочный
Встроенный

Вст роен ный

Пример как написать текст на изображении.

Указанные ниже образцы продемонстрируют возможности применения CSS наложения.

Лес и поле белые,
Белые луга.
У осин заснеженных
Ветки как рога.

Подо льдами крепкими
Дремлют воды рек.
Белыми сугробами
Лег на крыши снег.

В небе звезды яркие
Водят хоровод.
Старый год прощается —
Входит Новый год.

Е. Трутнева.

 
Ветка во льду
стих
автор

Образец как наложить один текст на другой.

Пример
Обр а зец
 #superponer < position: relative; text-align: center; >#superponer h5 < color: #fcda54; font-family: Georgia; font-size: 140px; letter-spacing: -6px; margin: 0; opacity: .9; padding: 0; -moz-transform: skew(20deg); -o-transform:skew(20deg); -webkit-transform: skew(20deg); >#superponer h6 < z-index: 100; color: #4682b4; font-family: Verdana; font-size: 60px; letter-spacing: 20px; margin: 0; padding: 0; position: absolute; top: 26px; left: 120px; >#superponer h6 > span < display: inline-block; color: #ff6666; font-family: Times New Roman; font-size: 100px; font-style: italic; text-shadow: 3px 3px 1px #000000; >#superponer > h6:hover span 
Пример
Образец

Пример как разместить текст поверх изображения на HTML

CSS наложение

  
конь
ЗАГОЛОВОКпрозрачная область

По материалам http://vagabundia.blogspot.com.

30 комментариев:

Евгений Xstroy Образец с вырастающей буквой порадовал.
Уже как-то использовал слои для сбора шапки строительного сайта, но не думал таким образом их юзать.
Спасибо за интересное решение. Анонимный Замечательная информация, большое спасибо автору. NMitra Благодарю за добрые слова! Анонимный ОГРОООМНОЕ Вам спасибо. NMitra Приятно слышать! Анонимный Замечательный блог. Рада, что его нашла. Особенно нравится манера изложения материала: систематизированно, коротко, четко и по теме — без этого словоблудия и надоевших вымученных шуточек, от которых уже подташнивает. Спасибо. NMitra Рада быть полезной. За собой стала замечать, что невольно начинаю копировать других блоггеров. Чур меня ))) Анонимный Спасибо большое многое помогло! Анонимный Спасибо за пост. Очень информативно! Еще раз спасибо 🙂 Анонимный Как же я рад, что попал на на эту статью! Пример с лошадью — это то, что мне было нужно, прямо точь в точь. Я очень счастлив! NMitra Значит примеры размещаю не зря))) Анонимный огромное спасибо очень нужный материал разложен по полкам,
может я канешно и глупый вопрос задам но подскажите пожалуйста как выставить последний пример со всеми значениями в центральном положении
благодарю за полезный материал
NMitra Подправила код последнего примера прямо в статье. MIKTTD Во первых — Спасибо за шпаргалку! В предпоследнем примере зум буквы «а» не работает, поправьте пожалуйста (самому знаний не хватает). И еще там-же для ІЕ нужно добавить: «transform: skew(20deg)». NMitra Поправила, когда писала статью, о поддержке IE можно было только мечтать. Сейчас можно применить префикс -ms- Анонимный Почему то не работает в IE всплывающий текст. Как можно решить? Спасибо за помощь. NMitra В каком именно примере? Анонимный Спасибо большое Анонимный Самое толковое о position из всего, что я до сих пор встречал. Анонимный ужасное решение некорректно работающее в ИЕ Анонимный Спасибо за работу, достойное изложение, в закладки NMitra Благодарю за отзывы! Николай Березин четкое, предельно ясное изложение, лайк и в закладки! NMitra Спасибо! Юля Шикарный пост. Спасибо. Очень долго искала как наложить текст на картинку.. кучу сайтов пересмортрела.. то css, то php надо править, то все вместе. километры кодов и непонятно будет ли толк.. А тут все быстро и просто . Жаль что сразу не нашла эту статью))) NMitra Спасибо! Такие комментарии помогают находить силы и время, а главное желание на дальнейшее ведение блога! Сергей Ожерельев Спасибо. Никак не мог понять, как наложить слой на слой NMitra Рада помочь! Unknown А в масштабируемой картинке как сделать текст, чтобы он масштабировался вместе с картинкой на резиновом шаблоне? NMitra Пример: https://jsfiddle.net/kdtok1au/

.imgteaser < /* общий блок */
position: relative;
display: table;
max-width: 100%;
margin: 0 auto;
line-height: 0;
color: rgb(223,223,223);
cursor: pointer;
>
.imgteaser figcaption display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
background: rgba(68,85,102,.7);
font-size: 80%;
line-height: 1.3em;
>
.imgteaser img width: 100%;
height: auto;
>

Позиционирование текста на картинке в CSS

Позиционирование текста на картинке в CSS

Я часто вижу в комментариях к урокам или на форумах, когда новички спрашивают: «Я хочу разместить текст поверх картинки, а он оказывается под или над картинкой. Помогите.» Давайте рассмотрим на конкретном примере, как написать текст на картинке в любом месте.

Нам надо рядом с каждым овощем, на иллюстрации ниже, подписать его название. Задача вроде бы простая, но поверьте, может свести с ума любого начинающего веб-мастера.

Позиционирование текста на картинке в CSS.

Я умышленно для примера взял большую картинку 1280×733, чтобы заодно показать, как её адаптировать под разные разрешения экранов. Уже прошли те времена, когда достаточно было научиться верстать только под десктопные разрешения. Делая верстку, следует сразу позаботиться об адаптивности.

HTML-разметка

Первым делом создаем контейнер для овощной картинки и для надписей. Обратите внимание, что каждую надпись мы помещаем в отдельный блок с разными классами. И это логично, поскольку все надписи будут иметь свои координаты на странице, а мы будем управлять ими, прописывая свойства в дивах.

vegetables

Лук

Картошка

Морковка

После сделанной HTML-разметке, мы видим только фрагмент картинки и текст, оказавшийся под картинкой. Знакомая картина, не правда ли?

Позиционирование текста на картинке в CSS.

Картинка разъехалась на все свои немаленькие пиксели и появилась горизонтальная полоса прокрутки, но к счастью это легко исправить, задав ширину картинке 100%, тем самым сделав её адаптивной. Хотя бы одну проблему решили.

Позиционирование текста на картинке в CSS.

Теперь займемся текстом.

CSS-стили

В стилях контейнера, ключевым будет свойство position: relative. Этим мы меняем правила и просим вести отсчет координат не от верхнего левого угла окна браузера, а от угла контейнера, который является родителем для всех вложенных в него элементов и занимает 90% окна.

.container width: 90%;
position: relative;
text-align: center;
color: #000;
font-family: arial black;
font-size: 250%;
>

Дальше будем позиционировать надписи, просто подбирая в системе X/Y нужные координаты, делать подбор удобно в Chrome / Инструменты разработчика, копируя и вставляя код в файл со стилями.

.left position: absolute;
top: 26%;
left: 6%;
>

.center position: absolute;
top: 17%;
left: 42%;
>

.right position: absolute;
top: 1%;
right: 27%;
>

Мы задали координаты не в пикселях, а в % не случайно, при уменьшении размеров экрана, тогда текст будет оставаться там же, где мы его закрепили. Это хорошая новость, а плохая это то, что размер текста не уменьшается вместе с картинкой. Картинка сама уменьшается, а текст надо уменьшать принудительно.

Позиционирование текста на картинке в CSS.

Медиа-запросы

На разрешении равным или меньше 768 пикселей, уменьшить размер шрифта до 150%. Откуда мы узнали, что надо уменьшать именно на 768 пикселях? Через инспектор кода, мы увидели, на какой отметке текст наскакивает на соседние элементы.

@media screen and (max-width: 768px) .container font-size: 150%;
>
>

Одного запроса оказалось недостаточно, уменьшили размер текста и на 470 пикселях.

@media screen and (max-width: 470px) .container font-size: 90%;
>
>

Конечный результат

Позиционирование текста на картинке в CSS.

Посмотрите на реальной странице, как прекрасно смотрится текст на картинке на разных разрешениях.

Демонстрация.

Из данного видео-курса «HTML5 и CSS3 с Нуля до Гуру»вы получите систематизированные знания о том, как делаются сайты, на простых примерах.

Создано 19.10.2018 10:22:00

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    Как на картинку наложить текст в html

    Для того чтобы наложить текст на изображение в HTML, можно использовать CSS свойство background-image для контейнера с текстом и установить значение background-color для контейнера, чтобы текст был читаемым. Например:

     class="image-container"> Текст наложенный на изображение  
    .image-container  background-image: url('path/to/image.jpg'); background-size: cover; background-position: center; background-repeat: no-repeat; width: 100%; height: 400px; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 0, 0, 0.5); /* Значение rgba(0,0,0,0.5) задает полупрозрачный черный цвет фона */ > h1  color: white; font-size: 3em; text-align: center; > 

    В данном примере для контейнера с классом image-container устанавливается фоновое изображение с помощью свойства background-image , а также устанавливаются размер фонового изображения, его позиция и повторение. Для того чтобы текст был читаемым, установлено полупрозрачное значение цвета фона с помощью функции rgba() . Контейнер также настроен с помощью свойства display: flex для выравнивания текста по центру. Заголовок h1 имеет белый цвет и центрируется внутри контейнера.

    Текст поверх картинки на CSS

    Текст поверх картинки на CSS

    Самый простой способ добавления текста на картинку, также вместо текста можно добавить другую картинку.

     

    Любой текст
    Абсолютно любой.

    .image < position: relative; width: 100%; /* для IE 6 */ >h2 < position: absolute; top: 250px; left: 0; width: 100%; >h2 span

    « Предыдущая статья

    Следующая статья »

    Оставить комментарий

    Последние статьи

    • Создания приложения на React Native: инструкция
    • Webpack 5: создание базовой конфигурации
    • Как сделать запись звука или голоса с микрофона
    • Задания по React для прокачки
    • Задания по JS для прокачки
    • PrettyTags — дружелюбные теги в MODX
    • Новый инструмент и компонент для MODX
    • Типизация компонентов React с TypeScript
    • Получение данных с сервера React Hooks
    • Проверка ОГРН и ОГРНИП на TypeScript

    Полезные инструменты

    • Узнать ip адрес по домену сайта
    • Генератор robots.txt
    • Онлайн калькулятор XOR
    • Компрессор HTML
    • Перевод текста в верхний регистр
    • Генератор Iframe
    • Перевод текста в транслит
    • Перевод текста в нижний регистр

    © Copyright 2014-2023 Daruse
    Все права защищены

    Контакты автора

    Присылайте свои вопросы, предложения и пожелания на электронную почту. Будем рады сотрудничеству.

    mail

    E-mail: daruse93@gmail.com

    telegram

    Telegram: daruse93

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *