#materialize
#материализовать
Вопрос:
У меня возникла проблема с материализацией столбцов CSS. По сути, я бы ожидал, что следующее будет отображаться следующим образом.
1 2 3 4 5 6
7 8
Однако результат выглядит следующим образом.
1 2 3 4 5 6
7 8
<div class="row">
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
<div class="col s4 m3 l2">
<img src="my-image.png" class="responsive-img circle hoverable">
</div>
</div>
С тех пор я обнаружил, что если я изолирую html (как указано выше) в новый файл, проблема не возникает.
Будет немного сложно привести пример полной картины, поскольку HTML отображается с помощью Django, однако кто-нибудь сможет указать мне правильное направление относительно того, что может быть причиной этого.
Редактировать: если это что-то значит, это модально.
Ответ №1:
Этот код выглядит нормально, это ваш исходный код со значками:https://codepen.io/flyingDonut/pen/qBZrMgm
Обновление по запросу OP: добавление пользовательской пары классов flex (контейнер и элемент) и предоставление им переноса решает проблему img:https://codepen.io/flyingDonut/pen/RwaVwjP
Код:
<!DOCTYPE html>
<head>
<title>Edit Profile</title>
<!-- Materialize -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" />
<link href="https://fonts.googleapis.com/icon?family=Material Icons" rel="stylesheet" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
.cc {
display: flex;
flex-direction: row;
justify-content: flex-start !important;
flex-wrap: wrap !important;
}
.cr {
padding: 4px;
}
@media screen and (max-width: 1980px) {
.cr {
flex-basis: 10%;
}
}
@media screen and (max-width: 1600px) {
.cr {
flex-basis: 14.2%;
}
}
@media screen and (max-width: 1300px) {
.cr {
flex-basis: 20%;
}
}
@media screen and (max-width: 800px) {
.cr {
flex-basis: 33.3%;
}
}
@media screen and (max-width: 500px) {
.cr {
flex-basis: 50%;
}
}
</style>
</head>
<body>
<div class="container">
<a href="#test" class="waves-effect waves-light btn modal-trigger">Change Image</a>
<div id="test" class="modal">
<div class="modal-content">
<h4 class="center">Change Profile Avatar</h4>
<div class="cc">
<div class="cr">
<img
id="profilePic1"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic2"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic3"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic4"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic5"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic6"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic7"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic8"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic9"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic10"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic11"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic12"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic13"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
<div class="cr">
<img
id="profilePic14"
src="https://i.imgur.com/MM0HXX0.png"
class="small circle hoverable responsive-img"
style="cursor: pointer"
/>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
$(document).ready(function () {
$(".modal").modal();
});
</script>
</body>
Комментарии:
1. Привет, вы можете добавить пару новых классов и создать их
flex
и придать им ширину в соответствии с количеством имеющихся у вас изображений, вот так codepen.io/flyingDonut/pen/RwaVwjP2. Спасибо, это становится немного ближе к решению. Однако количество изображений будет динамичным, и оно должно быть повторяемым (я уже выполнил некоторые медиа-запросы), поэтому я не могу гарантировать, что все строки будут «полными» все время. Есть ли правило, которое я могу применить, которое вставит их слева (в данном случае) и не испортит выравнивание?
3. Я все еще пытаюсь понять, что происходит не так с столбцами Materialize. То, что я пытаюсь сделать, должно сработать.
4. Вы правы! Я работал над этим около 4 часов, потому что я просто не понимал, почему введение простого
img
модуля вcol
приведет к неправильному поведению, в то время как значки или текст ничего не делают. В нескольких старых ответах SO упоминалось удаление строкиbody.width
в JS. Этой строки больше нет в коде, так что это облом.5. Я предложу обсудить это с создателями на github.com/Dogfalo/materialize/issues потому что проблема с выравниванием справа налево — это то, с чем до сих пор никто не сталкивался. Я надеюсь, что у вас получится, я бы хотел оставаться в курсе, если вы найдете решение 🙂