两部分图像上的 CSS 渐变

标签 css 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...

最佳答案

这让你接近

它实际上以纯色“点”结束(等于渐变的结束颜色)。如果绝对需要的话,实际上有可能将渐变延续到三 Angular 形中(我目前没有时间弄清楚)。

Here's the example (注意:该示例使用从 colorzilla 生成的代码来支持 IE9)。你需要有一个固定的 width 才能工作(设置伪元素的左/右边框),但是 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; 
}

关于两部分图像上的 CSS 渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505541/

相关文章:

html - 中心菜单导航

css - 渐变文字颜色

ios - 如何在真实设备上将渐变应用到 iOS 10 中的 UIView

jquery - 如何制作这样的 css 渐变和鼠标悬停边框

ios - CAGradient 使用 UIColor 数组

java - 链接不同文件夹中的 .css 文件时出现空指针错误

css - 如何始终使用纯 CSS 在视口(viewport)中居中一个灵活的正方形?

javascript - 如何根据百分比添加 svg 圆圈?

javascript - 使用 jQuery 添加文本后,嵌套 div float 在包含 div 之外

CSS Bootstrap : an horizontal scrollbar appears