1

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

在此处输入图像描述

是否可以创建可以实现此目的的 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);
}

我只是不知道如何使它们像图片中那样彼此相邻出现,以及如何具有不同的百分比宽度(例如,条形的蓝色渐变 50%、绿色渐变 40% 和金色渐变 10%)。

4

4 回答 4

7

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

HTML:

<div></div>

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);
}

结果:

在此处输入图像描述

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

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

于 2013-06-26T04:24:50.400 回答
4

好吧..如果你问我认为你在问什么,就这么简单。HTML:

<table>
    <tr> 
        <td class="color1"></td>
        <td class="color2"></td>
        <td class="color3"></td>
    </tr>
</table>    

CSS:

table { border-collapse: collapse; }
td{
   width: 100px;
   height: 20px;
   padding: 0px;
}
.color1{
  background-color: red;
}
.color2{
  background-color: blue;
}
.color3{
   background-color: yellow;
}

或类似的规定。

http://jsfiddle.net/waDFz/

这就是它的样子。您可以编辑高度/宽度/颜色/类名称。

于 2013-06-25T17:38:35.213 回答
0

我更喜欢表格而不是 div。尝试这个

<table>
<tr width="300px">
<td style="background:#50c690; width:250px;height:25px;"></td><td style="background:#FE6; width:50px;height:25px;"></td>
</tr>
</table>
于 2017-07-23T12:41:19.117 回答
0

您还可以使用网格,例如:

<div class="my-grid">
<div class="col-1-3">(be yellow)</div>
<div class="col-2-3">(be green)</div>
<div class="col-3-3">(be blue)</div>
</div>

然后在 CSS

.my-grid {
width: 100%;
}
.col-1-3 {
width: 33%;
float: left;
background-color: yellow;
}
.col-2-3 {
width: 33%;
float: left;
background-color: green;
}
.col-3-3 {
width: 33%;
float: left;
background-color: blue;
}
.my-grid:after {
clear:both;
}

请务必执行 my-grid:after 部分。

于 2016-06-25T03:17:58.970 回答