Как сделать отступающий перевернутый угол с помощью CSS

Вот что я пытаюсь построить: оранжевый столбец, расположенный выше фиолетового ряда, с перевернутым внутрь левым углом:

Вероятно, я не использую правильную терминологию для своего исследования. Надеюсь, скриншот описывает то, что я пытаюсь сделать. Любые указатели или ссылки будут высоко оценены.

Пример, который я собрал, на самом деле не близок к тому, каким он должен быть.

body {
  background: #272822;
}

.page {
  background: #fff;
  width: 250px;
  height: 330px;
  margin: 50px;
  /* Optional Gradient */
  background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #e5e5e5));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  /* IE10+ */
  background: linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e5e5e5', GradientType=0);
  /* IE6-9 */
}

.page h2 {
  padding: 85px 0 0 20px;
  font: 400 35px/1.5 'Lilita One', Helvetica, sans-serif;
}

.page p {
  padding: 10px 20px;
  font: 12px/1.5 Helvetica, sans-serif;
  color: #4b4b4b;
}

.foldtl {
  position: relative;
  -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.8);
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.8);
}

.foldtl:before {
  content: "";
  position: absolute;
  top: 0%;
  left: 0%;
  width: 0px;
  height: 0px;
  border-bottom: 70px solid #eee;
  border-left: 70px solid transparent;
  -webkit-box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3);
  box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3);
}

.foldtl:after {
  content: "";
  position: absolute;
  top: 0%;
  left: 0%;
  width: 0px;
  height: 0px;
  border-top: 69px solid #272822;
  border-right: 69px solid transparent;
}
<div class = "page foldtl">
  <h2>Headline</h2>
  <p>Lorem ipsum dolor sit amet...</p>
</div>

Ваша демо-версия совсем не похожа на предоставленное вами изображение. Уточните, пожалуйста, какого эффекта вы пытаетесь добиться.

Paulie_D 25.07.2024 20:38

@Paulie_D Честно говоря, ОП говорит в своем вопросе, что демонстрационный код пока совсем не похож на то, чем он должен быть. Я предполагаю, что угол папки в демо-версии должен быть загнут в «другом направлении» (как показано на изображении цели)

TylerH 25.07.2024 20:49

@ hnnnng — правильно ли сказать, что вы хотите создать элемент, который будет «свисать» с верхней части белой области, а верхняя часть элемента будет исчезать «в» фиолетовой области?

TylerH 25.07.2024 20:50

@TylerH заголовок вопроса обновлен, теперь он точно описывает то, что я ищу, и да, оранжевый столбец должен свисать сверху белой области (тела).

hnnnng 26.07.2024 15:09
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
4
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать разные границы для создания диагональных линий.

.wrapper {
  background: #9a99ff;
  width: 500px;
  height: 200px;
  padding: 10px;
}

.page {
  background: white;
  height: 100px;
  margin-top: 40px;
  position: relative;
}

.ribbon {
  position: absolute;
  background: #fcb712;
  width: 150px;
  height: calc(100% + 20px);
  left: 50px;
  top: -20px;
}

.ribbon::before {
  content: '';
  display: block;
  background: transparent;
  width: 0;
  height: 0;
  position: absolute;
  top: 0px;
  left: -20px;
  border-top: 20px solid transparent;
  border-right: 20px solid #ea9243;
}
<div class = "wrapper">
  <div class = "page">
    <div class = "ribbon"></div>
  </div>
</div>
.wrapper{ border: 3px solid black; border-right: 6px solid black; border-bottom: none; } и body { background-color: #c8c8c8; }? Просто ради интереса :P Тогда это выглядит на 100% как на картинке.
Travis J 25.07.2024 20:57

У меня есть онлайн-генератор всех этих фигур: https://css-generators.com/ribbon-shapes/

Обратите внимание на №7 и №8.

Ого, это потрясающий инструмент, я уверен, что буду часто им пользоваться. Я принял решение @poke, но попробую сравнить код, который выводит ваш онлайн-генератор. Спасибо!

hnnnng 26.07.2024 15:13

Другие вопросы по теме