创建偏斜响应背景

时间:2018-12-14 14:50:25

标签: html css html5 css3 background

我正在寻找这种背景。而且我不得不承认自己遇到了麻烦……找不到解决问题的好方法。

例如,我尝试使用transform : skewY(-6deg)。但是-6deg是我的整个页面。

有人可以帮助我找到做这件事的好方法吗?

Here is the picture of the design example

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用多个背景和渐变:

.box {
  height:250px;
  padding:50px 0;
  background:
    linear-gradient(to bottom left,transparent 49%,#0060ff 50%)top/100% 50px,
    linear-gradient(#0060ff,#0060ff) center/100% calc(100% - 100px),
    linear-gradient(to top right,transparent 49%,#0060ff 50%)bottom/100% 50px,
    
    
    linear-gradient(to bottom right,transparent 49%,#00dbf8 50%)top/100% 50px;
  background-repeat:no-repeat;
}
<div class="box">
</div>

您可以使用CSS变量使其更加灵活,以轻松控制倾斜:

.box {
  height:150px;
  padding:var(--p,50px) 0;
  background:
    linear-gradient(to bottom left,transparent 49%,#0060ff 50%)top/100% var(--p,50px),
    linear-gradient(#0060ff,#0060ff) center/100% calc(100% - 2*var(--p,50px)),
    linear-gradient(to top right,transparent 49%,#0060ff 50%)bottom/100% var(--p,50px),
    
    
    linear-gradient(to bottom right,transparent 49%,#00dbf8 50%)top/100% var(--p,50px);
  background-repeat:no-repeat;
}
<div class="box">
</div>
<hr>
<div class="box" style="--p:100px;">
</div>
<hr>
<div class="box" style="--p:40px;">
</div>

答案 1 :(得分:0)

我相信这是一个很好的起点:

<div class="container">
  <div class="skewed">
    <div class="content">
      <p>Content of the skewed container</p>
    </div>
  </div>
</div>

和CSS:

body,
html {
  padding: 0;
  margin: 0;
}

.container {
  overflow: hidden;
}

.skewed {
  height: 400px;
  -webkit-transform: skewX(-6deg);
  -moz-transform: skewX(-6deg);
  -ms-transform: skewX(-6deg);
  -o-transform: skewX(-6deg);
  transform: skewX(-6deg);
  background-color: #2980b9;
}

.content {
  -webkit-transform: skewX(6deg);
  -moz-transform: skewX(6deg);
  -ms-transform: skewX(6deg);
  -o-transform: skewX(6deg);
  transform: skewX(6deg);
}

p {
  margin: 0;
  color: #ffffff;
}

Code