背景を斜めにする方法はいくつかありますが、ここではclip-pathを利用して作成します。
IEのサポート終了で使用できるようになりました。
例えば下のように指定すると要素の全範囲の四角形で切り抜くことになります。
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
0 0はX軸が0, Y軸が0の点を示しています。(下図の青い点)
100% 0はX軸が100%, Y軸が0の点を示しています。(下図の緑色の点)
100% 100%はX軸が100%, Y軸の点を示しています。(下図の黄色の点)
0 100%はX軸が0, Y軸が100%の点を示しています。(下図のオレンジの点)

ここではクリップパスが簡単に作れるサイトを利用して作成していきます。
まずは四角に近い形を選んで角度を調整し、クリップパスの値をコピー・ペーストするだけです。
CSS
.slant-bg1{
width: 100%;
padding: 100px 0;
clip-path: polygon(0 15%, 100% 0%, 100% 85%, 0% 100%);
background-color: #f1c122;
}
HTML
<div class="slant-bg1">
<div class="container">
<h2>slant-bg1</h2>
<p>テキスト</p>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
CSS
.slant-bg2 {
width: 100%;
padding: 100px 0;
clip-path: polygon(0 0, 100% 15%, 100% 100%, 0 85%);
background-color:#ff6347;
}
HTML
<div class="slant-bg2">
<div class="container">
<h2>slant-bg2</h2>
<p>テキスト</p>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
CSS
.slant-bg3 {
width: 100%;
padding: 100px 0;
clip-path: polygon(0 0, 100% 15%, 100% 85%, 0 100%);
background-image:url("img/bg.jpg");
background-size: cover;
}
HTML
<div class="slant-bg3">
<div class="container">
<h2>slant-bg3</h2>
<p>テキスト</p>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
CSS
.slant-bg4 {
width: 100%;
padding: 100px 0;
clip-path: polygon(100% 0, 100% 100%, 50% 80%, 0 100%, 0 0);
background-image:url("img/dot.png");
background-repeat: repeat;
}
HTML
<div class="slant-bg4">
<div class="container">
<h2>slant-bg4</h2>
<p>テキスト</p>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
clip-pathで色々な図形を作ろう
自由に作ってみよう!
CSS
/* 三角 */
.sankaku5 {
width: 100px;
height: 80px;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: red;
}
/* 逆三角 */
.sankaku6 {
width: 100px;
height: 80px;
clip-path: polygon(100% 0, 0 0, 50% 100%);
background-color: darkorange;
}
/* 矢印 */
.arrow7 {
width: 100px;
height: 100px;
clip-path: polygon(40% 0%, 40% 20%, 100% 20%, 100% 80%, 40% 80%, 40% 100%, 0% 50%);
background-image:url("img/dog.jpg");
}
/* メッセージ */
.message8 {
width: 100px;
padding: 20px;
text-align: center;
clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
background-color:#87ceeb;
}
横に並べる場合
.naraberu{
display:flex;
flex-wrap: wrap;
justify-content: space-around;
}
HTML
<div class="sankaku5"></div>
<div class="sankaku6"></div>
<div class="arrow7"></div>
<div class="message8">Hello!</div>
横に並べる場合
<div class="naraberu">
<div class="sankaku5"></div>
<div class="sankaku6"></div>
<div class="arrow7"></div>
<div class="message8">Hello!</div>
</div>