0

我在尝试这样做时遇到了麻烦:

看到这个

我设法做这样的事情:

display: table-cell;
vertical-align: middle;

background: rgb(245,245,245); /* Old browsers */
background: -moz-linear-gradient(top, rgba(245,245,245,1) 0%, rgba(230,230,230,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(245,245,245,1)), color-stop(100%,rgba(230,230,230,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(230,230,230,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(230,230,230,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(230,230,230,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(245,245,245,1) 0%,rgba(230,230,230,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#e6e6e6',GradientType=0 ); /* IE6-9 */

对于文本的主要容器,并且:

width: 0;
height: 0;
border-top: 25px solid transparent;
border-bottom: 25px solid transparent;
border-left: 40px solid #FEEDDD;
display: inline-block;

做三角形。然后,我会将带有数字的圆圈放在其中的绝对位置。

但无法弄清楚我将如何让三角形“边框”像其他 div 一样渐变,也不给它一个白色的外边框......

提前谢谢!

4

2 回答 2

1

这绝对是可能的。

不久前,我创建了一个带有渐变箭头的后退按钮。看到这个小提琴 所以只需改变方向,颜色并将其调整为你想要的,但我猜你已经有了这个想法。

HTML:

<button>Rejoignez le groupe</button>

CSS:

button {
  position: relative;
  display: inline-block;
  border: 1px solid #555555;
  margin: 0;
  font-size: 12px;
  color: inherit;
  cursor: pointer;
  height: 30px;
  padding: 0 10px;
  margin-right: 10px;
  font-weight: bold;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #eeeeee), color-stop(100%, #888888));
  background: -webkit-linear-gradient(top, #eeeeee, #888888);
  background: -moz-linear-gradient(top, #eeeeee, #888888);
  background: -o-linear-gradient(top, #eeeeee, #888888);
  background: linear-gradient(top, #eeeeee, #888888);
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  border-radius: 4px;
  text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
  -webkit-box-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
  -moz-box-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
  box-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
}

button:after {
  clip: rect(14px, 14px, 28px, 1px);
  -webkit-transform: skewX(-35deg);
  -moz-transform: skewX(-35deg);
  -ms-transform: skewX(-35deg);
  -o-transform: skewX(-35deg);
  transform: skewX(-35deg);
  content: "";
  top: 0;
  position: absolute;
  height: 100%;
  width: 8%;
  right: -10px;
  border-right: inherit;
  background: inherit;
  -webkit-box-shadow: inherit;
  -moz-box-shadow: inherit;
  box-shadow: inherit;
}

button:before{
  clip: rect(1px, 14px, 14px, 1px);
  background: red;
  -webkit-transform: skewX(35deg);
  -moz-transform: skewX(35deg);
  -ms-transform: skewX(35deg);
  -o-transform: skewX(35deg);
  transform: skewX(35deg);
  content: "";
  top: 0;
  position: absolute;
  height: 100%;
  width: 8%;
  right: -10px;
  border-right: inherit;
  background: inherit;
  -webkit-box-shadow: inherit;
  -moz-box-shadow: inherit;
  box-shadow: inherit;
}

告诉我它是否太混乱并且需要一些指导来改变方向、大小和颜色。

于 2013-11-07T15:18:48.413 回答
0

虽然您可能可以设法做类似的事情,并且仍然在浏览器范围内保持不错的后备并取得成功的结果......我希望您在尝试时会拔出一大块头发。我的建议是在 Photoshop 中制作一些背景图像,然后将这些项目分成三个不同的元素

  1. 可以包含步骤的透明白色圆圈的元素

  2. 一个带有类的元素,用于完成应用橙色渐变背景的步骤

  3. 另一个具有单独类的灰色渐变元素

以这种方式做事,您可以保持所有元素“方形”,而不必担心对三角形或圆形元素的支持。并在适当的地方覆盖你的文字......

我知道这可能不是您要求使用 css3 完成所有事情的方式,但我相信以这种方式做事可以让您保持简单和精简

于 2013-11-07T14:24:20.150 回答