诀窍是创建一个有角度的内容遮罩,然后用所需的样式填充遮罩区域,在本例中为背景渐变。内容将被剪裁成蒙版的形状。
掩码只是一个带有overflow:hidden
. 如果对容器应用 CSS3 变换(例如,旋转或倾斜操作),则遮罩将具有旋转或倾斜的形状,并且内容将被剪裁为该形状。一对嵌套的蒙版,外侧的蒙版倾斜,内侧的蒙版反斜,生成具有 2 个斜边的梯形蒙版。仅倾斜内部遮罩会产生一个带有 1 个斜边的梯形。
Both masks skewed Inner mask skewed
_________________ _________________
/ \ | \
/ clipped content \ | clipped content \
/_____________________\ |__________________\
JSFiddle 演示:
HTML
<div class="main">
<div class="outer-mask">
<div class="inner-mask">
<div class="content">Styled content goes here</div>
</div>
</div>
</div>
CSS
.main {
position: relative;
}
.outer-mask {
position: absolute;
left: 95px;
top: 45px;
width: 390px;
height: 110px;
overflow: hidden;
-webkit-transform: skew(20deg, 0deg);
-ms-transform: skew(20deg, 0deg);
-o-transform: skew(20deg, 0deg);
transform: skew(20deg, 0deg);
}
.inner-mask {
position: absolute;
left: -45px;
top: 0px;
width: 390px;
height: 110px;
overflow: hidden;
-webkit-transform: skew(-40deg, 0deg);
-ms-transform: skew(-40deg, 0deg);
-o-transform: skew(-40deg, 0deg);
transform: skew(-40deg, 0deg);
}