两部分图像上的CSS渐变

时间:2013-01-24 16:01:13

标签: css css3 gradient

我必须使用CSS完成以下图像:

enter image description here

这是一张包含主导航的图片。所以我写了一些CSS(不是正确的颜色代码,我知道):

#menu-block {
  background: #730868;
  background: -webkit-gradient(linear, 0 0, 0 bottom, from(#730868), to(#0a9f9d));
  background: -webkit-linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  background: -moz-linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  background: -ms-linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  background: -o-linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  background: linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  -pie-background: linear-gradient(top, #730868 0%, #0e70a2 76%,#0a9f9d 100%);
  behavior: url(/pie/PIE.htc);
}

这段代码很棒!除了最后的箭头之外,它做了它必须做的事情......老实说,我不知道如何解决这个问题。
我应该创建一个箭头形状的第二个div并猜出最接近的颜色吗?

它应该支持IE8 ......

2 个答案:

答案 0 :(得分:2)

这会让你关闭

它实际上以纯色“点”结束(等于渐变的结束颜色)。如果绝对需要,可能实际上可以将渐变延伸到三角形中(我目前没有时间来计算出来)。

Here's the example(注意:该示例使用从colorzilla生成的代码来支持IE9)。您需要有一个固定的width才能使用(设置psuedo-element的左/右边框),但height可以灵活。在我的例子中,IE8失去了红色中心。也许在您的PIE解决方案中,它没有。

HTML(以IE9条件为例)

<!--[if gte IE 9]>
  <style type="text/css">
    #menu-block {
       filter: none;
    }
  </style>
<![endif]-->

<div id="menu-block" ></div>

<强> CSS

#menu-block {
  width: 100px;
  position: relative;  
    background: rgb(0,0,255);
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDBmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZmMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmMDAiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: -moz-linear-gradient(top,  rgba(0,0,255,1) 0%, rgba(255,0,0,1) 50%, rgba(255,255,0,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,255,1)), color-stop(50%,rgba(255,0,0,1)), color-stop(100%,rgba(255,255,0,1)));
    background: -webkit-linear-gradient(top,  rgba(0,0,255,1) 0%,rgba(255,0,0,1) 50%,rgba(255,255,0,1) 100%);
    background: -o-linear-gradient(top,  rgba(0,0,255,1) 0%,rgba(255,0,0,1) 50%,rgba(255,255,0,1) 100%);
    background: -ms-linear-gradient(top,  rgba(0,0,255,1) 0%,rgba(255,0,0,1) 50%,rgba(255,255,0,1) 100%);
    background: linear-gradient(to bottom,  rgba(0,0,255,1) 0%,rgba(255,0,0,1) 50%,rgba(255,255,0,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0000ff', endColorstr='#ffff00',GradientType=0 );
}

#menu-block:after {
    content: '';
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 100%;
    border-right: 50px transparent solid;
    border-left: 50px transparent solid;
    border-bottom: 0 transparent solid;
    border-top: 30px #ffff00 solid; 
}

答案 1 :(得分:0)

为什么不创建完整的矩形,然后在底部定位和叠加三角形图像,与背景融合以呈现向下箭头的外观?