Як написати підпис під зображенням?


126

У мене є два зображення, які потрібно зберігати у формі; Я хочу написати підписи під кожним зображенням.

<center>
   <a href="http://example.com/hello">
       <img src="hello.png" width="100px" height="100px">
   </a>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
   <a href="http://example.com/hi">
       <img src="hi.png" width="100px" height="100px">
   </a>
</center>

Як я можу реалізувати?


8
@ceejayoz не згадуючи всіх &nbspпротилежних сказати встановлення поля або використовуючи інші інструменти компонування css.
jzworkman

Незважаючи на те, що на це відповіли, єдиний спосіб я знайшов підпис, який відповідає розміру вбудованого зображення, - це жорсткий код властивості ширини на обгортці або в самій підписі.
MyNameIsKo

2
@McGarnagle не редагує значення коду в публікаціях інших людей. Форматування нормально (ну хіба що це python), але весь вміст коду важливий! Завдяки вашій редакції публікація jxworkmans виглядала безглуздою. І дійсно, фіксуючи неправильний код в питанні повна маячня. Який би тоді був сенс відповідей?
Томаш Зато - Відновити Моніку

Відповіді:


275

Теги для малюнка та зображень :

<figure>
    <img src='image.jpg' alt='missing' />
    <figcaption>Caption goes here</figcaption>
</figure>

Треба любити HTML5.


Дивіться зразок


1
Хоча вам знадобиться HTML5 прокладка для більшості IE.
ceejayoz

10
Ці теги жодним чином не допомагають. Вони є просто макетною розміткою, і вам потрібно виконати всю роботу в CSS (та / або з іншими тегами HTML). І вам потрібна додаткова операція, щоб зробити старі версії IE, щоб розпізнати їх навіть як фіктивні теги. Так простіше використовувати divабо span.
Jukka K. Korpela


3
Проблема полягає в наступному: [figures] can be moved to another page or to an appendix without affecting the main flow. <figure>і <figcaption>не є заміною загального призначення для зображень із заголовками. Вони стосуються лише фігур. Якщо у вас (наприклад) є покрокове керівництво, яке складається з абзаців, змішаних із типовими фотографіями, може бути важливо, щоб зображення були представлені в тих же розривах абзаців, що визначені в html. Отже <figure>, тут не було б застосовано (як я розумію).
Ponkadoodle

Додам, що ці рядки не обов'язково розміщують підписом фігури під зображенням. HTML, наведений тут, описує вміст, але на зовнішній вигляд впливає / визначається CSS.
jvriesem

21

CSS

#images{
    text-align:center;
    margin:50px auto; 
}
#images a{
    margin:0px 20px;
    display:inline-block;
    text-decoration:none;
    color:black;
 }

HTML

<div id="images">
    <a href="http://xyz.com/hello">
        <img src="hello.png" width="100px" height="100px">
        <div class="caption">Caption 1</div>
    </a>
    <a href="http://xyz.com/hi">
        <img src="hi.png" width="100px" height="100px"> 
        <div class="caption">Caption 2</div>
    </a>
</div>

Тут є загадка.


7
<div style="margin: 0 auto; text-align: center; overflow: hidden;">
  <div style="float: left;">
    <a href="http://xyz.com/hello"><img src="hello.png" width="100px" height="100px"></a>
    caption 1
  </div>
 <div style="float: left;">
   <a href="http://xyz.com/hi"><img src="hi.png" width="100px" height="100px"></a>
   caption 2                      
 </div>
</div>

7

Покладіть зображення - скажімо, його ширина становить 140 пікселів - всередині посилання:

<a><img src='image link' style='width: 140px'></a>

Далі введіть підпис у "а" та надайте йому ширину менше, ніж ваше зображення, при цьому по центру:

<a>
  <img src='image link' style='width: 140px'>
  <div style='width: 130px; text-align: center;'>I just love to visit this most beautiful place in all the world.</div>
</a>

Далі в тезі посилання стилізуйте посилання так, щоб воно більше не було схожим на посилання. Ви можете надати йому будь-який колір, але просто видаліть будь-який текстовий декор, який можуть містити ваші посилання.

<a style='text-decoration: none; color: orange;'>
  <img src='image link' style='width: 140px'>
  <div style='width: 130px; text-align: center;'>I just love to visit this most beautiful place in all the world.</div>
</a>

Я загорнув зображення підписом у посилання, щоб жоден текст не міг відтіснити підпис: Заголовок прив’язаний до малюнка за посиланням. Ось приклад: http://www.alphaeducational.com/p/okay.html


1
Блокові теги на зразок <div>не забороняються всередині вбудованих тегів типу <a>- їх слід використовувати <span>для підписів.
mindplay.dk

Заміна <div> на <span> повністю не відповідає в прикладі @ TheAlpha. Схоже, вам потрібно <div>.
П'єр

@ mindplay.dk Я думаю, оскільки aмодель вмісту тегу прозора, він може приймати будь-яких дітей, які може мати батьківський тег (крім інтерактивного вмісту). Виправте мене, якщо я помиляюся? Я хочу, щоб дізнатися. w3.org/TR/html5/text-level-semantics.html#the-a-element
Кріс Бір

2

CSS - ваш друг; немає необхідності в центральній тезі (не кажучи вже про її досить знеціненій), ні в надмірних пробільних місцях. Ось простий приклад:

CSS

.images {
    text-align:center;
}
.images img {
    width:100px;
    height:100px;
}
.images div {
    width:100px;
    text-align:center;
}
.images div span {
    display:block;
}
.margin_right {
    margin-right:50px;
}
.float {
    float:left;
}
.clear {
    clear:both;
    height:0;
    width:0;
}

HTML

<div class="images">
    <div class="float margin_right">
        <a href="http://xyz.com/hello"><img src="hello.png" width="100px" height="100px" /></a>
        <span>This is some text</span>
    </div>
    <div class="float">
        <a href="http://xyz.com/hi"><img src="hi.png" width="100px" height="100px" /></a>
        <span>And some more text</span>
    </div>
    <span class="clear"></span>
</div>

2

Для чуйних зображень. Ви можете додати теги зображення та джерела до тегу фігури.

<figure>
  <picture>
    <source media="(min-width: 750px)" srcset="images/image_2x.jpg"/>
    <source media="(min-width: 500px)" srcset="images/image.jpg" />
    <img src="images.jpg" alt="An image">
  </picture>
  <figcaption>Caption goes here</figcaption>
</figure>

0

Щоб бути більш семантично правильним і відповісти на первісне запитання ОП щодо їх вирівнювання, я б використав це:

HTML

<div class="items">
<figure>
    <img src="hello.png" width="100px" height="100px">
    <figcaption>Caption 1</figcaption>
</figure>
<figure>
    <img src="hi.png" width="100px" height="100px"> 
    <figcaption>Caption 2</figcaption>
</figure></div>

CSS

.items{
text-align:center;
margin:50px auto;}


.items figure{
margin:0px 20px;
display:inline-block;
text-decoration:none;
color:black;}

https://jsfiddle.net/c7borg/jLzc6h72/3/


0

<figcaption>Тег в HTML5 дозволяє вводити текст в зображення, наприклад:

<figcaption>
Your text here
</figcaption>.

Потім можна за допомогою CSS розташувати текст там, де він повинен бути на зображенні.


-3
<table>
<tr><td><img ...><td><img ...>
<tr><td>caption1<td>caption2
</table>

Стиль за бажанням.


6
Я б ніколи цього не робив. Людина запитує поради щодо презентації, як не відображати вміст у табличному форматі.
Майк Корменді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.