Solution 1 :

You don’t really need 3 divs, only one can do the job:

.hero {
  height: 100vh;
  background: url(https://picsum.photos/id/1018/800/800) center/cover;
  position: relative;
}

.hero::before,
.hero::after{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 20%;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
  background: url(https://picsum.photos/id/124/800/800) center/cover;
}

.hero::after {
  left: 0;
  bottom: 35%;
  right: 20%;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  background: url(https://picsum.photos/id/1067/800/800) center/cover;
}

body {
  margin: 0;
}
<section class="hero"></section>

Solution 2 :

3 divs and shape-outside can help you to fill them only on those parts seen 😉

https://developer.mozilla.org/en-US/docs/Web/CSS/shape-outside

The shape-outside CSS property defines a shape—which may be non-rectangular—around which adjacent inline content should wrap. By default, inline content wraps around its margin box; shape-outside provides a way to customize this wrapping, making it possible to wrap text around complex objects rather than simple boxes.

body {
  margin: 0;
}

section.hero {
  width: 100vw;
  height: 100vh;
  display: grid;
}

section.hero>div[class] {
  grid-row: 1;
  grid-column: 1;
  height: 100%;
  width: 100%;
  text-shadow: 0 0 2px white;
}

div[class]:before {
  content: "";
  height: 100%;
  width: 100%;
}

.div1 {
  background: url(https://picsum.photos/id/1039/1920/1080) 0 0 / cover;
  clip-path: polygon(0% 0%, 0% 66%, 0% 66%, 80% 0%, 80% 0%);
  font-size: calc(1.5vmin + 1vmax);  
  color:purple;
}

.div1:before {
  float: right;
  shape-outside: polygon(0 66%, 80% 0%, 100% 0, 100% 100%, 0 100%);
}

.div2 {
  background: url(https://picsum.photos/id/1001/1920/1080) 100% 100% / cover;
  clip-path: polygon(80% 0%, 43% 30%, 95% 100%, 100% 100%, 100% 0%);
  font-size: calc(1.5vmin + 1vmax);
  color:turquoise;
}

.div2:before {
  float: left;
  shape-outside: polygon(80% 0%, 44% 30%, 96% 100%, 0% 100%, 0% 0%);
}

.div3 {
  background: url(https://picsum.photos/id/1006/1920/1080) 100% 100% / cover;
  clip-path: polygon(0% 66%, 43% 30%, 95% 100%, 0 100%);
  font-size: calc(1.5vmin + 1vmax);
  color:blue;
}

.shape {
  height: 100vh;
  width: 57%;
  float: right;
  shape-outside: polygon(0% 31%, 0% 0%, 100% 0%, 100% 100%, 90% 100%);
}

.shape+.shape {
  float: left;
  height: 100vh;
  width: 43%;
  shape-outside: polygon(0% 0%, 0% 66%, 100% 31%, 100% 0);
}
<section class="hero">
  <div class="div1">
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
      Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus
      lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor,
      facilisis luctus, metus</p>
  </div>

  <div class="div2">
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
      Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus
      lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor,
      facilisis luctus, metus</p>
  </div>
  <div class="div3">
    <!-- because pseudo or a single element  cannot handle that shape at once -->
    <div class="shape"></div>
    <div class="shape"></div>
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
      Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus
      lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor,
      facilisis luctus, metus</p>
  </div>
</section>

To draw your clip-path, you may use : https://bennettfeely.com/clippy/

Problem :

I would like to have a section with 3 divs, with layout like this:
Layout

How can i do this with HTML and CSS?

My html:

<section class="hero">
    <div class="div1">
    <div class="div2">
    <div class="div3">
</section>

My css:

section.hero {
    width: 100vw;
    height: 100vh;
}
.div1 {
    background: url(img1.png);
}
.div3 {
    background: url(img2.png);
}
.div2 {
    background: url(img3.png);
}

Thanks for all answers…

Comments

Comment posted by clip-path

I would suggest

Comment posted by css-tricks.com/almanac/properties/c/clip-path

css-tricks.com/almanac/properties/c/clip-path

Comment posted by TKDEV Tomino

OK, thanks, i have my section width and height at 100% of the screen, so it might not be that hard with clip-path.

Comment posted by TKDEV Tomino

Yeah but i want some content in these divs, like h2 and link under it, but thanks, it looks really nice and i will use your clip-path settings

Comment posted by TKDEV Tomino

Thanks!, thats what i needed, thank you very much

By