* {
box-sizing: border-box;
}
/* Обертка нужна для обрезки "лишнего" в разметке */
.wrapper {
margin: 0 20px;
max-width: 510px;
overflow: hidden;
}
/* трапеция*/
.item {
border: 2px solid #606060;
height: 120px;
background: #f5f5f5;
position: relative;
display: flex;
justify-content: center;
align-items: center;
/* Чтобы текст не залезал на наши будущие срезы */
padding: 10px 30px;
}
/* Перекрашиваем четные трапеции */
.item:nth-child(even) {
background: #606060;
color: #fff;
}
/* Подложки, для имитации границы */
.item::before,
.item::after,
.item .border {
content: '';
display: block;
height: 100%;
width: 80px;
position: absolute;
}
/* Нижний слой подложки для цвета границы */
.item::before,
.item::after {
background: #606060;
top: 0;
}
/* Верхний слой подложки для "среза" прямоугольника */
.item .border {
background: #fff;
height: calc(100% + 4px);
top: -2px;
}
/* Наклон среза для четных трапеций */
.item:nth-child(odd)::before,
.item:nth-child(odd)::after,
.item:nth-child(odd) .border.left {
transform: skew(10deg);
}
.item:nth-child(odd)::after,
.item:nth-child(odd) .border.right {
transform: skew(-10deg);
}
/* Наклон среза для нечетных трапеций */
.item:nth-child(even)::before,
.item:nth-child(even)::after,
.item:nth-child(even) .border.left {
transform: skew(-10deg);
}
.item:nth-child(even)::after,
.item:nth-child(even) .border.right {
transform: skew(10deg);
}
/**
* Выравниваем нижний и верхний слой подложки друг относительно друга
* Учитываем левый и правый срез
*/
.item::before {
left: -70px;
}
.item .border.left {
left: -72px;
}
.item::after {
right: -70px;
}
.item .border.right {
right: -72px;
}
/**
* ::after всегда последний, поэтому надо выставить z-index для правого верхнего слоя
*/
.item .border.right {
z-index: 1;
}
/**
* Максимум 5 строчек текста
* Вместо отображения скролла текст можно прятать
*/
.item > .text {
line-height: 20px;
max-height: 100%;
overflow-y: auto;
}
<div class="wrapper">
<div class="item">
<div class="border left"></div>
<div class="text">Пример контента</div>
<div class="border right"></div>
</div>
<div class="item">
<div class="border left"></div>
<div class="text">Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Donec rutrum congue leo eget malesuada. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Nulla porttitor accumsan tincidunt. Nulla quis lorem ut libero malesuada feugiat. Nulla quis lorem ut libero malesuada feugiat. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a.</div>
<div class="border right"></div>
</div>
<div class="item">
<div class="border left"></div>
<div class="text">Здесь что-то написано</div>
<div class="border right"></div>
</div>
</div>
<div class="b">
<div class="b-trapezoid">
<div class="b-trapezoid-content">
<div class="b-trapezoid-content-item">
<div class="b-trapezoid-content-text">
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
</div>
</div>
</div>
</div>
<div class="b-trapezoid">
<div class="b-trapezoid-content">
<div class="b-trapezoid-content-item">
<div class="b-trapezoid-content-text">
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
</div>
</div>
</div>
</div>
<div class="b-trapezoid">
<div class="b-trapezoid-content">
<div class="b-trapezoid-content-item">
<div class="b-trapezoid-content-text">
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
</div>
</div>
</div>
</div>
<div class="b-trapezoid">
<div class="b-trapezoid-content">
<div class="b-trapezoid-content-item">
<div class="b-trapezoid-content-text">
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
</div>
</div>
</div>
</div>
<div class="b-trapezoid">
<div class="b-trapezoid-content">
<div class="b-trapezoid-content-item">
<div class="b-trapezoid-content-text">
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
<p>Как добиться эффекта сложенного гармошкой листа с помощью CSS?</p>
</div>
</div>
</div>
</div>
</div>
我为您提供替代解决方案。
缺点:
来自专业人士:
大意:
在伪元素和附加标记的帮助下,我们可以“切掉”矩形的边缘,将其变成梯形。
不仅要获得切片,还要获得块边框,我们将使用两个大小相同、颜色不同的块,将它们一个放在另一个上面,稍微偏移一下。
执行:
另外的选择