设置偏斜边距 <section>

Set margin of skewed <section>

我只是歪斜了一个用作横幅的部分。

现在这个部分的高度显然比预期的要高,因为倾斜。

如何根据这个新高度定义底部边距?

.banner{
    transform: skewY(-5deg);
    transform-origin: top right;
    outline: solid 1px black;
    margin-bottom: 5rem;
}
<section class="banner">
  <h1>Hello World!</h1>
  <h2>Subtitle</h2>
</section>
<div class="content">
  <p>CONTENT</p>
</div>

如果您全屏打开代码段并更改 window 大小,您就会明白我的意思...内容只是隐藏在横幅后面。

提前致谢!

您也可以使用相同的变换倾斜 .content,然后再倾斜里面的内容:

.banner {
  transform: skewY(-5deg);
  transform-origin: right;
  outline: solid 1px black;
}

.content {
  transform: skewY(-5deg);
  transform-origin: right;
}

.content p {
  transform: skewY(5deg);
  transform-origin: left;
}
<section class="banner">
  <h1>Hello World!</h1>
  <h2>Subtitle</h2>
</section>
<div class="content">
  <p>CONTENT</p>
</div>

实际上,尺寸是根据宽度变化的,因此根据宽度更新边距,为此您可以使用 unit vw

.banner{
    transform: skewY(-5deg);
    transform-origin: top right;
    outline: solid 1px black;
    margin-bottom: 9vw;
}
<section class="banner">
  <h1>Hello World!</h1>
  <h2>Subtitle</h2>
</section>
<div class="content">
  <p>CONTENT</p>
</div>