#html #css
Вопрос:
Я новичок в CSS и хочу разместить текст под изображением со ссылкой, поэтому я делаю некоторые базовые html и css-вещи, такие как:
.programs_content {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 10px;
padding: 20px;
}
.rect-img-container {
position: relative;
}
.rect-img-container::after {
content: '';
display: inline-block;
padding-bottom: 100%;
}
.rect-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
}
.caption {
display: block;
}
<div class="programs_content">
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="1.png" alt="" />
</a>
</div>
<span class="caption">text1</span>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="2.png" alt="" />
</a>
</div>
<span class="caption">text2</span>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="3.png" alt="" />
</a>
</div>
<span class="caption">text3</span>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="4.png" alt="" />
</a>
</div>
<span class="caption">text4</span>
</div>
Но текст всегда находится рядом с изображением, я пытаюсь отобразить блок текста и изображения с помощью встроенного блока, но это не сработало.
Комментарии:
1. Вы используете слишком много CSS. Я бы рекомендовал использовать меньше и не усложнять ситуацию. Начните с HTML, который я опубликовал ниже, и я бы перезапустил ваш CSS.
Ответ №1:
Для подписей вам лучше всего использовать подписи, встроенные в HTML. Ознакомьтесь с более подробной информацией здесь, но вот пример HTML:
<figure>
<img src="pic_trulli.jpg" alt="Trulli" style="width:100%">
<figcaption>Fig.1 - Trulli, Puglia, Italy.</figcaption>
</figure>
Ответ №2:
<style>
.programs_content {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 10px;
padding: 20px;
}
.rect-img-container {
position: relative;
}
.rect-img-container::after {
content: '';
display: inline-block;
padding-bottom: 100%;
}
.rect-img {
/* position: absolute; */
width: 100%;
height: 100%;
object-fit: cover;
}
.caption {
display: block;
}
</style>
<div class="programs_content">
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="1.png" alt="" />
</a>
<span class="caption">text1</span>
</div>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="2.png" alt="" />
</a>
<span class="caption">text2</span>
</div>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="3.png" alt="" />
</a>
<span class="caption">text3</span>
</div>
<div class="rect-img-container">
<a href="#">
<img class="rect-img" src="4.png" alt="" />
</a>
<span class="caption">text4</span>
</div>
</div>