Как сделать подпись под картинкой в html
Как сделать в HTML подпись под картинкой?
Дата публикации: 2016-08-24
От автора: как сделать в html подпись под картинкой? Действительно, как? С первого взгляда все кажется проще некуда, но на деле не каждый может сам додуматься до того, как же все-таки разместить текст ровно под картинкой, ведь она является строчным элементом.
Самый примитивный вариант
Сразу после изображения поставьте тег br и напишите нужный текст. Конечно, он не будет располагается по центру, но зато будет под картинкой, так что его уже можно назвать подписью. Вариант не годится для тех случаев, когда фото располагается в строке не в самом начале, потому что в таком случае по напечатанному тексту непонятно будет, к чему он вообще относится.
Тег br ставить необязательно, можно просто заключить подпись в тег абзаца, тогда текст сам перенесется на следующую строку, так как абзац – блочный элемент.
Ладно, это был самый простой способ, который не всегда подойдет, поэтому предлагаю рассмотреть более правильные.
Соединение изображения и подписи в блок
Все очень просто. Мы поместим картинку и подпись к ней в отдельный блок.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
При таком способе вы легко сможете выровнять текст подписи ровно по центру изображения, но при этом нужно ограничить ширину главного контейнера, поставить ее ровно такой, каковой является ширина изображения:
В моем случае это 200 пикселей.
С помощью селектора .frog p вы можете применить дополнительные стили к подписи.
Использование тега figure
Следующее решение является наиболее оптимальным, так как в нем используются теги html5 – figure и figcaption. Они предназначены для группировки каких-либо элементов вместе.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
По сути, нам даже практически полностью подходит код предыдущего примера, нужно только заменить div на figure и p на figcaption:
Все остальное актуально и для этого варианта. В частности, само по себе нахождение текста в теге figcaption не выравнивает его по центру. Чтобы выровнять, нужно сделать то же самое, что мы делали в предыдущем способе. Я изменил цвет текста, чтобы подпись в этом примере хоть чем-то отличалась от того, что мы сделали в предыдущем примере.
Как видите, оба способа дают одинаковый результат. Ну и еще 1 вариант вдогонку
В этом примере не нужно помещать картинку и подпись в блок или фигуру, они могут быть просто самостоятельными элементами, но при этом должны стоять друг за другом в разметке.
Теперь стилевой класс я прописал не блоку, а изображению, потому что блока то и нет. Вся загвоздка тут в стилях, вот они:
Значит, мы делаем наше изображение блочным. В принципе, в случае с абзацем это было делать необязательно, но если бы подпись вы бы писали, например, в теге span, то необходимость задать блочное поведение была бы, потому что иначе картинка и подпись находились бы на одной строке.
Ну а чтобы выровнять подпись по центру картинки, мы даем ему ширину картинки и выравнивание текста по центру. Заметьте, какой селектор я использовал. Такие селекторы называются соседними. Например: .frog + p – будет выбран абзац, который лежит в html-разметке сразу за элементом с классом frog.
Результат аналогичен предыдущим способам, даже скриншот не буду показывать. Что ж, это все способы сделать в html подпись под изображением, которые я хотел вам показать. Дело то на самом деле очень мелочное, поэтому особо над его решением нет смысла задумываться, просто выбирайте любой способ и делайте.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
→ BlogGood.ru ←
Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…
Как сделать подпись под картинкой в HTML5
Всем привет!
В сегодняшней статье я расскажу, как сделать подпись под картинкой в HTML5.
Что такое подпись под картинкой и как же она выгладит?
Это обычная картинка, под которой внизу размещается краткий текст с описанием:
Чтобы создать такую подпись под картинкой, в HTML5 придумали специальные теги:
- тег « figure » создан для группировки HTML изображений и подписей под ними;
- тег « figcaption » создан для подписи под изображением.
Синтаксис:
Внешний вид, конечно, можно подправить, если использовать таблицу стилей CSS.
Добавьте вот такой стиль CSS:
В результате получится вот такое:
Так что, для подписи под картинкой не ограничивайте себя только HTML5, для улучшения вида пользуйтесь и CSS-ом.
Удачи!
Подписывайтесь на обновление блога! Вас ждет много интересных статьей.
Автор статьи: Степан => автор блога · Опубликовано в 08.05.2017 – Все про HTML
Привет Степа! Давно у тебя небыл, все работа да командировки. Хороший пост порой нужно чтото подобное, а все прибомбасы верстки неупомнишь, обязательно запомню. Помнишь я говорил про уроки, написал код, а разьяснение еще нет, то есть серию уроков еще не написал, плюс дописываю в свободное время плагин, как допишу его дам протестить.
Опубликовано на Июнь 1st, 2017
Степан => автор блога говорит:
Привет, Саша! Я тебе послания ВК оставлял, а тебя нет и нет!
Рад тебя снова видеть.
Опубликовано на Июнь 2nd, 2017
А динозавры на HTML4 как оформляли подписи? 🙄
Опубликовано на Март 29th, 2018
Степан => автор блога говорит:
исключительно с помощью CSS.
Разве в HTML4 был тег “figcaption”? )))
Опубликовано на Апрель 3rd, 2018
Интересно как такие картинки индексируются поисковиками… Я про тег figure. Например google плохо индексирует картинки в дивах. А как дело обстоит с фигурой?
Опубликовано на Февраль 12th, 2019
Степан => автор блога говорит:
С чего Вы взяли, что картинки плохо индексируются в дивах?
Текст поверх изображения. HTML + CSS
Каждый день на форумах html новички спрашивают: «Как разместить текст поверх изображения?». Некоторые находят неправильный выход: они рисуют текст на картинке в графических редакторах, после чего размещают изображение с текстом в html документах. Но что делать, если текст надо заменить? Опять перерисовывать картинку? Есть более простые решения.
Используя методы, описанные в уроке, мы можем получить такой результат:
Подготовка
Её размер — 350px × 200px. И этой информации достаточно для того, чтобы приступить к работе.
Теперь попробуем разместить поверх неё текст несколькими способами.
Способ первый: картинка как фон div
Сразу оговорюсь, что этот способ мне самому не нравится из-за примитивного конечного результата, но тем не менее он существует, поэтому я расскажу о нём.
Суть способа заключается в том, что мы берём тег div, задаём ему размеры, совпадающие с размером изображения, и устанавливаем картинку в качестве фона.
Обратите внимание, что размер тега = собственный размер + размер отступов padding. Таким образом, если мы хотим сделать отступ содержимого от края картинки на 20px, то размер самого div нужно указать на эти 20px меньше. То есть: 350-20 = 330 в ширину и 200-20 = 180 в высоту.
[code lang=»css»].example1 <
padding-top:20px;
width:330px;
padding-left:20px;
height:180px;
background-image:url(“/examples/20120821/bg.png”);
/*оформление текста*/
color:#FFF;
font-family:Arial, Helvetica, sans-serif;
font-size:40px;
>[/code]
Способ простой по структуре хтмл кода (требуется всего один тег), но зато он не позволяет задать тексту какие-то особые стили. В результате чего может получиться так, что текст будет сложно прочитать. Кроме того, блок жёстко привязан к размерам картинки, а значит, в случае изменения картинки придётся переписывать и css
Способ второй: наложение двух тегов друг на друга
Суть этого способа в том, что мы делаем div-контейнер, который будет содержать в себе картинку и текст. При этом текст мы будем позиционировать относительно левого верхнего угла контейнера.
[code lang=»css»].example2 <
display:inline-block;
position:relative;
>
.example2 span <
display:inline-block;
position:absolute;
top:30px;
left:0px;
/* Оформление текста */
color:#FFF;
font-family:Arial, Helvetica, sans-serif;
font-size:20px;
/* Фон */
background-color:rgba(0,0,0,.4);
padding:10px 30px;
>[/code]
.example2:
display:inline-block нам нужен, чтобы контейнер не растягивался по ширине на всю страницу.
position:relative заставляет все вложенные блоки с position:absolute вести отсчёт координат своего положения не от окна браузера, а от блока .example2.
.example2 span:
display:inline-block — для того, чтобы стили, относящиеся к блочным элементам, могли быть применены к нашему тексту.
position:absolute — для вынимания тега из общего потока и дальнейшего его размещения с помощью задачи конкретных координат. top, left — отступы сверху и слева (координаты). возможно вместо них использовать bottom (снизу) и right (справа)
Минусом этого способа является то, что нарушается семантика кода, появляется много лишних тегов. Но зато он не привязан к размерам картинки, он позволяет делать фон у текста, делая его более читаемым, да и вообще даёт нам полную свободу в настройке стилей.
Играя с css и структурой тегов можно добиться и такого результата:
Данный результат довольно неплохо подходит для оформления галлерей, витрин интернет-магазинов и прочих сервисов.
Код последнего результата:
Я — заголовок
А я — комментарий к этой прекрасной картинке. Я такой длинный, что занимаю несколько строчек.
[code lang=»css»].example3 <
display:inline-block;
position:relative;
>
.example3 .example_text <
display:block;
position:absolute;
left:0;
bottom:0;
width:100%;
box-sizing:border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
>
.example3 h6 <
font-family:Arial, Helvetica, sans-serif;
font-size:18px;
>
.example3 span <
font-size:12px;
>[/code]
Источники:
https://webformyself.com/kak-sdelat-v-html-podpis-pod-kartinkoj/
https://bloggood.ru/html-osnovi-primer-podskazki/kak-sdelat-podpis-pod-kartinkoj-v-html5.html/
https://borpost.ru/html/tekst-poverx-izobrazheniya-html-css/