你如何绘制一条对角线,它总是有一个11°的角度,每端有固定的圆角。它将用作图像的叠加层,例如以下示例:
灰色区域应位于顶部,蓝色应为图像。
理想情况下,可以通过纯CSS或数据:image / svg + xml作为背景图像。
也许类似于在图像顶部使用::after
选择器。或者甚至可能会添加到内容div上的::before
选择器。例如类似于:
<div class="card">
<div class="header">
<img src="#" />
</div>
<div class="content">
<h1>Title</h1>
<p>Body copy</p>
</div>
</div>
<style>
.content:before {
content: '';
display: block;
width: 100%;
}
</style>
答案 0 :(得分:4)
您可以部署::before
和::after
伪元素。
每个伪元素使用以下组合:
absolute positioning
border
border-radius
box-shadow
transform: skewY
:
div {
display:inline-block;
position: relative;
width: 256px;
height: 140px;
margin-right:32px;
background: url('/my-image.jpg') no-repeat rgb(15,150,196);
overflow: hidden;
}
div::before, div::after {
content: '';
position: absolute;
left: 0;
display: block;
width: calc(100% - 12px);
height: 100%;
border-width: 3px 6px;
border-style: solid;
border-color: rgb(178,178,178);
border-radius: 9px;
box-shadow: 36px -36px 0 36px rgb(178,178,178), -2px 2px 0 2px rgb(178,178,178);
transform: skewY(11deg);
}
div::before {
bottom: 50%;
}
div::after {
top: 50%;
box-shadow: -36px 36px 0 36px rgb(178,178,178), 2px -2px 0 2px rgb(178,178,178);
}
.with-image {
background: url('https://images.pexels.com/photos/115045/pexels-photo-115045.jpeg?w=940&h=650&auto=compress&cs=tinysrgb') no-repeat 0 0 / 256px 140px rgb(15,150,196);
}
.with-image::before, .with-image::after {
border-color: rgb(0,127,0);
box-shadow: 36px -36px 0 36px rgb(0,127,0), -2px 2px 0 2px rgb(0,127,0);
}
.with-image::after {
box-shadow: -36px 36px 0 36px rgb(0,127,0), 2px -2px 0 2px rgb(0,127,0);
}
&#13;
<div></div>
<div class="with-image"></div>
&#13;
答案 1 :(得分:1)
我认为此代码可以帮助您达到您想要做的事情。
.container{
width:300px;
margin-top:30px;
}
.imagecontainer{
width:100%;
height:200px;
background:blue;
transform: skew(0deg, 11deg);
border-radius:10px;
margin-bottom:4px;
}
&#13;
<div class="container">
<div class="imagecontainer"></div>
<div class="imagecontainer"></div>
<div class="imagecontainer"></div>
</div>
&#13;