TL; DR:见http://jsfiddle.net/97Yr6/
创建一个漏斗堆栈的方式例子是pseudoelements:与此基本标记
<ul>
<li>1,234,567,890 <span>Tooltip: 0</span></li>
<li>234,567,890 <span>Tooltip: 0</span></li>
<li>23,456,789</li>
<li>2,345,678 <span>Tooltip: 0</span></li>
<li>234,567</li>
<li>23,567 <span>Tooltip: 0</span></li>
<li>4,567<span>Tooltip: 0</span></li>
<li>789</li>
<li>23 <span>Tooltip: 0</span></li>
<li>4 <span>Tooltip: 0</span></li>
</ul>
我们可以使用边框创建漏斗,所以我们可以用这种方式绘制一种梯形作为背景:
ul {
position: relative;
overflow: hidden;
font: 14px Arial;
margin: 0; padding: 0;
list-style: none;
text-align: center;
}
ul:before {
content: "";
position: absolute;
z-index: -1;
left: 50%;
margin-left: -120px;
width: 0;
border-top: 800px solid #ccc;
border-left: 120px solid #fff;
border-right: 120px solid #fff;
}
的<ul>
是宽100%,所以我们可以给它一个text-align: center
,所有的量是正确居中
然后可以与pseudoelements再次获得元件之间的空间,以及:
li:after,li:before {
content: "";
display: block;
height: 0.4em;
background: #fff;
width: 100%;
}
li:before { border-top: 1px dotted #ccc }
li:first-child:before { border: 0; }
虽然可以定位工具提示文本(<li>
需要定义position: relative
),但试图正确调整left
和margin-left
属性(特别是对于较低屏幕分辨率,但您可以使用媒体查询来达到此目的)
li span {
position: absolute;
left: 60%;
white-space: nowrap;
margin-left: 100px;
}
li:nth-child(2) span { left: 59%; }
li:nth-child(3) span { left: 58% }
li:nth-child(4) span { left: 57% }
li:nth-child(5) span { left: 56% }
li:nth-child(6) span { left: 55% }
li:nth-child(7) span { left: 54% }
li:nth-child(8) span { left: 53% }
li:nth-child(9) span { left: 52% }
li:nth-child(10) span { left: 51% }
基本上,如果你改变每个:nth-child
与邻接选择器(例如li + li + li + ... + span
)
希望它可能是有帮助的这个例子中可以工作,即使在IE8
。
您必须明确设置每个元素宽度或使用JS – Bojangles 2013-05-08 11:44:38
通过明确设置宽度,无法使文本正常工作。小提琴:http://jsfiddle.net/FEzug/ – Pietu1998 2013-05-08 11:48:43