Я знаю, это звучит так, как будто меня об этом спрашивали раньше, но я поиграл со многими приемами, которые я нашел из других вопросов, и, кажется, ничто не дает желаемого эффекта, который мне нужен.
Япытаясь создать что-то, что будет отзывчивым, как это: Отзывчивый пример gif
Мне в основном нужно, чтобы изображение было отцентрировано, где оно имеет размер 100%.
Вот что я пытался получить этот эффект:
Сначала я создал div, содержащий три дочерних элемента div для «столбцов».Затем внутри центрального столбца я сделал три дочерних элемента для «строк».Теперь мне нужно, чтобы изображение заполняло максимально допустимую ширину, сохраняя при этом квадратное соотношение сторон.Также высота изображения должна определять высоту верхнего и нижнего рядов.
Тогда нужно просто выровнять текст внутри верхнего и нижнего ряда относительно нижнего и верхнего их элементов соответственно.
Это будет выглядеть примерно так:
HTML Визуализация столбцов
HTML Визуализация центральных строк
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить центральное изображение, чтобы определить высоту строк над и под ним.
Я пытался ...
- Flexbox
- , используя vh (высота просмотра)
- и немного используя calc (), ноне повезло
- Установка соотношения сторон с помощью
padding-top: 100%
Как выглядит код
/* .row & .col from materialize.css */
.full {
height: 100vh;
}
.art_top {
height: 10vh;
/* I Don't actually want this fixed though */
padding-bottom: 10px;
display: flex;
}
.art_center {
height: 80vh;
/* I Don't actually want this fixed though */
}
.art_bottom {
height: 10vh;
/* I Don't actually want this fixed though */
padding-top: 10px;
display: flex;
}
#cover_art {
width: 100%;
height: 100%;
background: center / cover no-repeat;
}
#song_name {
align-self: flex-end;
}
#artist_name {
align-self: flex-start;
}
<div class="row">
<div class="col s2 m3 full"></div>
<div class="col s8 m6 full">
<div class="row art_top">
<a id="song_name" class="bold-title"></a>
</div>
<div class="row art_center">
<div id="cover_art"></div>
</div>
<div class="row art_bottom">
<a id="artist_name" class="bold-title"></a>
</div>
</div>
<div class="col s2 m3 full"></div>
</div>