hud*_*ian 3 css mask css-shapes clip-path
我试图弄清楚如何最好地屏蔽具有角形状的div,如果在这种情况下顶部div将是背景图像,并且两个div都是100%宽度:
我已经看过很多关于如何用圆形图像掩盖图像的教程,但没有关于如何掩盖像红色区域这样的div边框的教程.我知道必须有比使用位图更好的方法,但我不知所措.
使用clip-path或SVG最好这样做吗?我不是那么担心旧浏览器,如果结果是他们看到红色/蓝色div用平线分开.整个红色区域将是一个背景图像,所以如果旧的(呃)浏览器错过了那个角度边界,那就这样吧.
您可以使用transform(skew和rotate)来实现此效果,而不使用clip-path具有低支持的效果
.container {
width: 500px;
height: 300px;
background: linear-gradient(lightblue, dodgerblue);
position: relative;
overflow:hidden;
}
.container:after{
position:absolute;
content:"";
width:100%;
height:100%;
left:-50%;
top:-50%;
background:#D0021B;
transform-origin: 0 100%;
transform:skewY(15deg);
}
.container:before{
position:absolute;
content:"";
width:100%;
height:100%;
left:50%;
top:-50%;
background:#D0021B;
transform-origin: 100% 0;
transform:skewY(-15deg);
}Run Code Online (Sandbox Code Playgroud)
<div class="container"></div>Run Code Online (Sandbox Code Playgroud)
对于背景图片,您应该应用top:50%上都pseudo-elements
.container {
width: 500px;
height: 300px;
background: url("http://i.imgur.com/5NK0H1e.jpg");
position: relative;
overflow: hidden;
}
.container:after {
position: absolute;
content: "";
width: 100%;
height: 100%;
left: -50%;
top: 50%;
background: linear-gradient(lightblue,dodgerblue);
transform: skew(10deg) rotate(10deg);
}
.container:before {
position: absolute;
content: "";
width: 100%;
height: 100%;
left: 50%;
top: 50%;
background:linear-gradient(lightblue,dodgerblue);
transform: skew(-10deg) rotate(-10deg);
}Run Code Online (Sandbox Code Playgroud)
<div class="container"></div>Run Code Online (Sandbox Code Playgroud)
如果您打算使用clip-path属性,则应注意浏览器支持目前非常低,因为CSS Masking Module Level 1的状态为"候选推荐".
因此,您可以使用以下polygon()值使用此属性轻松创建此形状:
.wrap {
width: 30%;
height: 300px;
background: #4A90E2;
}
.wrap div {
height: 200px;
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 90%, 50% 100%, 0% 90%);
clip-path: polygon(0% 0%, 100% 0%, 100% 90%, 50% 100%, 0% 90%);
background: url('http://i.imgur.com/5NK0H1e.jpg');
background-size:cover;
}Run Code Online (Sandbox Code Playgroud)
<div class="wrap"><div></div></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |