Как выровнять текст под изображением в CSS?
HTML
<div class="image1">
<img src="images/img1.png" width="250" height="444" alt="Screen 1"/>
<img src="images/img2.png" width="250" height="444" alt="Screen 2"/>
<img src="../images/img3.png" width="250" height="444" alt="Screen 3"/>
</div>
Если я добавлю текст абзаца между img1 и img2, они будут разделены (img2 переходит к новой строке)
Я пытаюсь сделать это (с некоторым пространством между изображениями):
[image1] [image2] [image3]
[text] [text] [text]
Я не дал изображениям собственные имена отдельных классов, потому что изображения не выравниваются горизонтально друг с другом.
Ответы
Ответ 1
Добавьте контейнер div для изображения и надписи:
<div class="item">
<img src=""/>
<span class="caption">Text below the image</span>
</div>
Затем, с небольшим количеством CSS, вы можете сделать автоматически обертываемую галерею изображений:
div.item {
vertical-align: top;
display: inline-block;
text-align: center;
width: 120px;
}
img {
width: 100px;
height: 100px;
background-color: grey;
}
.caption {
display: block;
}
div.item {
/* To correctly align image, regardless of content height: */
vertical-align: top;
display: inline-block;
/* To horizontally center images and caption */
text-align: center;
/* The width of the container also implies margin around the images. */
width: 120px;
}
img {
width: 100px;
height: 100px;
background-color: grey;
}
.caption {
/* Make the caption a block so it occupies its own line. */
display: block;
}
<div class="item">
<img src=""/>
<span class="caption">Text below the image</span>
</div>
<div class="item">
<img src=""/>
<span class="caption">Text below the image</span>
</div>
<div class="item">
<img src=""/>
<span class="caption">An even longer text below the image which should take up multiple lines.</span>
</div>
<div class="item">
<img src=""/>
<span class="caption">Text below the image</span>
</div>
<div class="item">
<img src=""/>
<span class="caption">Text below the image</span>
</div>
<div class="item">
<img src=""/>
<span class="caption">An even longer text below the image which should take up multiple lines.</span>
</div>
Ответ 2
Лучший способ - обрезать текст изображения и абзаца с помощью DIV и назначить класс.
Пример:
<div class="image1">
<div class="imgWrapper">
<img src="images/img1.png" width="250" height="444" alt="Screen 1"/>
<p>It my first Image</p>
</div>
...
...
...
...
</div>
Ответ 3
Вы можете использовать функцию HTML5 Caption.
Ответ 4
Самый простой способ, особенно если вы не знаете ширины изображений, - это поместить заголовок в свой собственный элемент div и определить его очистку: both!
...
<div class="pics">
<img class="marq" src="pic_1.jpg" />
<div class="caption">My image 1</div>
</div>
<div class="pics">
<img class="marq" src="pic_2.jpg" />
<div class="caption">My image 2</div>
</div>
...
и в определении стиля
div.caption: {
float: left;
clear: both;
}
Ответ 5
Я создал для вас jsfiddle: Пример JSFiddle HTML и CSS
CSS
div.raspberry {
float: left;
margin: 2px;
}
div p {
text-align: center;
}
HTML (примените CSS выше, чтобы получить то, что вам нужно)
<div>
<div class = "raspberry">
<img src="http://31.media.tumblr.com/tumblr_lwlpl7ZE4z1r8f9ino1_500.jpg" width="100" height="100" alt="Screen 2"/>
<p>Raspberry <br> For You!</p>
</div>
<div class = "raspberry">
<img src="http://31.media.tumblr.com/tumblr_lwlpl7ZE4z1r8f9ino1_500.jpg" width="100" height="100" alt="Screen 3"/>
<p>Raspberry <br> For You!</p>
</div>
<div class = "raspberry">
<img src="http://31.media.tumblr.com/tumblr_lwlpl7ZE4z1r8f9ino1_500.jpg" width="100" height="100" alt="Screen 3"/>
<p>Raspberry <br> For You!</p>
</div>
</div>
Ответ 6
Поскольку по умолчанию для элементов блока необходимо заказать один поверх другого, вы также можете это сделать:
<div>
<img src="path/to/img">
<div>Text Under Image</div>
</div
img {
display: block;
}
Ответ 7
Вместо изображений я выбираю опцию фона:
HTML:
<div class="class1">
<p>Some paragraph, Some paragraph, Some paragraph, Some paragraph, Some paragraph,
</p>
</div>
<div class="class2">
<p>Some paragraph, Some paragraph, Some paragraph, Some paragraph, Some paragraph,
</p>
</div>
<div class="class3">
<p>Some paragraph, Some paragraph, Some paragraph, Some paragraph, Some paragraph,
</p>
</div>
CSS
.class1 {
background: url("Some.png") no-repeat top center;
text-align: center;
}
.class2 {
background: url("Some2.png") no-repeat top center;
text-align: center;
}
.class3 {
background: url("Some3.png") no-repeat top center;
text-align: center;
}