В настоящее время я изучаю клип-путь. У меня возникли проблемы с расположением сетки и исчезновением изображения.
У меня есть три изображения в div под названием .gallery. Я хочу, чтобы они:
.gallery {
display: grid;
gap: 10px;
box-sizing: border-box;
grid-template-columns: auto 0 auto;
place-items: center;
}
.gallery>img {
max-width: 100%;
aspect-ratio: 1;
object-fit: cover;
}
.gallery>img:nth-child(1) {
clip-path: polygon(0 0, 50% 0, 100% 100%, 0 100%);
}
.gallery>img:nth-child(2) {
/\* Clip-path for the middle image \*/ clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.gallery>img:nth-child(3) {
clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%);
}
@media (max-width: 610px) {
.gallery>img {
width: 100%;
}
.gallery {
grid-template-columns: auto auto auto;
}
}<div class = "gallery">
<img SRC = "https://dummyimage.com/600x400/000/fff&text=one">
<img SRC = "https://dummyimage.com/600x400/000/fff&text=two">
<img SRC = "https://dummyimage.com/600x400/000/fff&text=three">
</div>Среднее изображение исчезает при использовании столбцов сетки-шаблона: auto 0 auto; за отзывчивость. Я попытался изменить его на auto auto auto в медиа-запросе, и хотя это предотвращает исчезновение изображения, разрыв между изображениями превышает 10 пикселей.
Может ли кто-нибудь указать мне правильное направление, чтобы исправить исчезающее изображение и добиться желаемого макета с постоянным интервалом?
столбцы-шаблона сетки: авто 0 авто
столбцы-шаблона сетки: авто авто авто
@Paulie_D: возможно, потому, что она новичок в программировании?
Честно говоря, я бы поместил каждое изображение в отдельный div, вам будет намного проще. Изображения странно реагируют во Flexbox и CSS-Grid.
Мне также не совсем понятно, как это должно выглядеть, если оно правильное.






Я бы сделал это, как показано ниже, и советую вам прочитать мою статью: https://css-tricks.com/css-grid-and-custom-shapes-part-3/
.gallery {
--s: 100px; /* control the clip-path and the size of the middle image */
display: flex;
gap: 10px; /* the gap */
height: 200px; /* the image height */
}
.gallery > img {
min-width: 0;
object-fit: cover;
}
.gallery > img:nth-child(1) {
flex: 1;
clip-path: polygon(0 0,calc(100% - var(--s)) 0,100% 100%,0 100%);
}
.gallery > img:nth-child(2) {
clip-path: polygon(0 0,100% 0,50% 100%);
width: calc(2*var(--s));
margin-inline: calc(-1*var(--s));
}
.gallery > img:nth-child(3) {
flex: 1;
clip-path: polygon(var(--s) 0, 100% 0, 100% 100%, 0 100%);
}<div class = "gallery">
<img src = "https://picsum.photos/id/28/800/400">
<img src = "https://picsum.photos/id/174/800/400">
<img src = "https://picsum.photos/id/188/800/400">
</div>
Почему вы говорите, что средний столбец имеет нулевую ширину?