使用渐变动态创建箭头

时间:2012-12-14 21:35:43

标签: css3

如何在CSS3中动态生成这样的形状:

enter image description here

忽略边界,因为重要的方面是:

- The gradient in the arrow body, and that the gradient lasts from the tip to the end of the arrow.
- The length of the square part will vary.

我尝试了在:after元素的末尾添加三角形的常规div方法,但我无法使渐变跨越正确和正确的范围。

小提琴:http://jsfiddle.net/rtuY9/8/

1 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情 - DEMO

div {
    width: 50px;
    height: 100px;
    position: relative;
    margin: 100px;

    background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 100%);
    background:    -moz-linear-gradient(top, #1e5799 0%, #2989d8 100%);
}

div:after {
    z-index: -1;
    content: "";
    display: block;
    position: absolute;
    left: -125px;
    top: -51px;
    margin: 100px;
    height: 100px;
    width: 100px;
    background: #c00;

    -webkit-transform:rotate( -45deg );
       -moz-transform:rotate( -45deg );
            transform:rotate( -45deg );

    background: -webkit-linear-gradient(45deg, #1e5799 0%, #2989d8 50%, #ffffff 50%, #ffffff 100%);
    background:    -moz-linear-gradient(45deg, #1e5799 0%, #2989d8 50%, #ffffff 50%, #ffffff 100%);
}