使用渐变在css中创建箭头框

时间:2012-11-15 15:51:15

标签: html css css3 gradient

我正在尝试使用css中的箭头创建一个框,这是我到目前为止的结果:http://dabblet.com/gist/4079318

如您所见,渐变未正确应用于箭头,并且它使用了箭头的附加标记。还有其他人有更好的解决方案吗?

3 个答案:

答案 0 :(得分:5)

使用带有对角线渐变的旋转伪元素:

.fancy-arrow:after {
  content:"";
  display:block;
  width:25px;height:25px;
  background:#f00;
  position:absolute;
  right:-12px;top:5px;

  background: -webkit-linear-gradient(left top,  #7d7e7d 0%,#0e0e0e 100%); 
  -webkit-transform:rotate(45deg);
  z-index:-1;
}

仅用于webkit前缀的演示目的。在具有一些过滤魔法的IE中也可以实现同样的效果。

<强> working Demo

答案 1 :(得分:2)

这是另一个不需要CSS3的解决方案,但是它仅适用于单色框:http://jsfiddle.net/T4A2Q/

<!DOCTYPE html>
<html>
<head>
<style type="text/css">

#Box {
 width: 300px;
 height: 40px;
 background: #0094FF;
 border-color: #0094FF;
}

#Box:after {
 content: '';
 clear: both;
 float: right;
 margin-right: -20px;
 border-width: 10px;
 border-style: solid;
 border-bottom-color: transparent;
 border-left-color: inherit;
 border-top-color: inherit;
 border-right-color: transparent;
}

#Box:before {
 content: '';
 clear: both;
 float: right;
 margin-right: -20px;
 border-width: 10px;
 border-style: solid;
 border-bottom-color: inherit;
 border-left-color: inherit;
 border-top-color: transparent;
 border-right-color: transparent;
}

body {
 background: #FFF;
}

</style>
</head>

<body>

<div id="Box">

</div>

</body>
</html>

答案 2 :(得分:0)

文字渐变尚未得到很好的支持。

您可能需要使用的是使用现有的矩形,然后在角上放置几个白色面具以形成箭头。