如何将Zig Zag边框添加到框中包含背景图像

时间:2013-09-28 20:50:02

标签: css css3

我已经找到了以下完美的CSS代码段,它会在此link创建zip zag边框。

.h-zigzag {
    background:
        linear-gradient(-135deg, #333538 5px, transparent 0) 0 5px,
        linear-gradient(135deg, #333538 5px, #fff 0) 0 5px;
    background-color: #333538;
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: 10px 10px;
}

正如您所看到的,代码创建了一个perfecr zig zag边框,但我需要将此边框添加到包含图像的框中:

 .h-zigzag {
   background: url(../img/grrenfooter.png) repeat-x top left scroll transparent;
 }
你能帮我把它们混合起来吗?我已经尝试了几种方法但是当我混合它时图像消失了!

2 个答案:

答案 0 :(得分:4)

你可以这样做,但是你需要屏蔽,据我所知它只能在webkit中使用。

#zigzag {
    width: 600px;
    height: 400px;
    -webkit-mask-image: linear-gradient(0deg, transparent 30px, white 30px), linear-gradient(-135deg, white 15px, transparent 15px), linear-gradient(135deg, white 15px, transparent 15px);
    -webkit-mask-position: left bottom;
    -webkit-mask-repeat: repeat-x;
    -webkit-mask-size: 100% 100%, 30px 30px, 30px 30px;
    background: url("http://placekitten.com/1000/750");
    background-size: cover;
}

body {
    background-image:  repeating-linear-gradient(20deg, lightgreen, lavender 40px);   
}
<div id="zigzag"></div>

这可以通过创建具有锯齿形图案的图像来实现;而且图像的上半部分也是透明的。当我们将它用作遮罩时,它会使用透明的背景。

我已经用条纹图案设置了主体,以便可以看到锯齿形边框真的是透明的

demo

答案 1 :(得分:0)

问题

你不能混合它们,因为它们都使用background属性,所以最后的CSS代码将被应用,因为它会覆盖前一个CSS代码。

解决方案[Demo]

您必须使用CSS2 multiple background feature并单独设置background-size

.h-zigzag {
   height:200px;/*Set this to match with your background image*/
   width:200px;/*Set this to match with your background image*/
   background:
      linear-gradient(-135deg, #333538 5px, transparent 0) 0 5px,
      linear-gradient(135deg, #333538 5px, #fff 0) 0 5px,
      url('http://placekitten.com/200/200');/*Your image URL here*/       
   background-color: #333538;
   background-position: left bottom, left bottom, top;
   background-repeat: repeat-x;
   background-size:
      10px 10px,
      10px 10px,
      100% 100%;/*Your image size here*/
}