使用CSS创建多色条

use*_*610 0 css css3

我想创建一个如下图所示的多色条:

在此输入图像描述

是否有可能创建能实现这一目标的CSS?我已经设法使用以下CSS创建颜色渐变:

.gold{
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #eab92d, #c79810);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eab92d), to(#c79810));
  background-image: -webkit-linear-gradient(top, #eab92d, #c79810);
  background-image: -o-linear-gradient(top, #eab92d, #c79810);
  background-image: linear-gradient(to bottom, #eab92d, #c79810);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

.blue {
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #034a96, #0663c7);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#034a96), to(#0663c7));
  background-image: -webkit-linear-gradient(top, #034a96, #0663c7);
  background-image: -o-linear-gradient(top, #034a96, #0663c7);
  background-image: linear-gradient(to bottom, #034a96, #0663c7);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

.green {
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #0D7626, #0a611e);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0D7626), to(#0a611e));
  background-image: -webkit-linear-gradient(top, #0D7626, #0a611e);
  background-image: -o-linear-gradient(top, #0D7626, #0a611e);
  background-image: linear-gradient(to bottom, #0D7626, #0a611e);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}
Run Code Online (Sandbox Code Playgroud)

我只是不确定如何使它们像图片中那样彼此相邻,以及如何使用不同的百分比宽度(例如蓝色渐变50%的条形,绿色渐变40%,金色渐变10%).

And*_*aus 6

你需要的是:before:after伪元素.它们将内容添加到给定选择器的开头和结尾.

HTML:

<div></div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div {
  height: 2em;

  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #eab92d, #c79810);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eab92d), to(#c79810));
  background-image: -webkit-linear-gradient(top, #eab92d, #c79810);
  background-image: -o-linear-gradient(top, #eab92d, #c79810);
  background-image: linear-gradient(to bottom, #eab92d, #c79810);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

div:before {
  height: 2em;
  width: 50%;
  display: block;
  content: "";
  float: left;

  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #034a96, #0663c7);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#034a96), to(#0663c7));
  background-image: -webkit-linear-gradient(top, #034a96, #0663c7);
  background-image: -o-linear-gradient(top, #034a96, #0663c7);
  background-image: linear-gradient(to bottom, #034a96, #0663c7);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

div:after {
  height: 2em;
  width: 40%;
  display: block;
  content: "";
  float: right;

  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #0D7626, #0a611e);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0D7626), to(#0a611e));
  background-image: -webkit-linear-gradient(top, #0D7626, #0a611e);
  background-image: -o-linear-gradient(top, #0D7626, #0a611e);
  background-image: linear-gradient(to bottom, #0D7626, #0a611e);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

演示:http://jsbin.com/umaden/3/edit

PS在实际使用中,您应该将其应用于类或id,而不是元素选择器.