回答
您必须将圆柱体图像分为三部分:顶部,中部(将重复)和底部。像这样:
http://img218.imageshack.us/img218/8668/tlchargement.png
例如,给他们打电话top.png,middle.png和bottom.png。
然后,你需要三个HTML元素,每一个部分:
<div class="cylinder top"></div>
<div class="cylinder middle" style="height:300px"></div>
<div class="cylinder bottom"></div>
而CSS:
.cylinder {
width: <width of the cylinder image>px;
}
.cylinder.top {
background-image:url('top.png') no-repeat;
height: <height of the top image>px;
}
.cylinder.middle {
background-image:url('middle.png') repeat-y; /* repeat vertically */
}
.cylinder.bottom {
background-image:url('bottom.png') no-repeat;
height: <height of the bottom image>px;
}
要改变高度或缸,你只需要在修改the style="height:300px"
中间元素。
此解决方案可以在任何浏览器中工作,甚至IE6。
创建舍入的底部图像。 为管道创建1px高的图像 为顶部创建一个小图像。
将你的图片分成不同的div。
<div>
<div class="bar1">
<div class="bottom"></div>
<div class="middle"></div>
<div class="top"></div>
</div>
</div>
现在,您可以使用绝对定位和重复背景图像来设计风格。我不认为用浮动和全部都很容易,因为你必须从下到上工作。
用纯CSS做这个可能会矫枉过正。当然,你可以使用渐变,但你不能用css只在圆柱体底部得到阴影。我不知道如何用css做圆柱体。
最简单的方法是使用好的旧背景图像。
如果您根本不需要任何图像,则可以考虑使用canvas
。
UPD:如果你可以使用CSS3,你可能想使用multiple background images。这样,你将只有一个<div>
而不是其中三个。良好的语义。
在http://icant.co.uk/csscharts/看看教程的列表。它可以用你自己的风格轻松定制,并且有一个方便的PHP脚本来生成表格。
那么......它可以用一些“蛮力”来完成。
首先,你应该削减cilinders的基础,并把它们放在底部对齐的div背景上。 然后在另一个知道和固定高度的div添加两个相同宽度的div,它们左侧浮动并且在背景上,在Y轴上重复一片cilinder。然后根据需要控制它们的高度。在包含其他两个div的下面,您可以添加标题。 现在你将有相同高度的cilinders。为了“缩短”你在里面创建另一个具有一定高度和白色背景(重复图像或颜色)的div。 ex {
<div id="chart"> <!-- this one has the bottom cut backgound -->
<div style="height:200px">
<!-- cilinder class has the background -->
<div class="clinder" style="height:100%"> </div>
<div class="clinder" style="height:100%">
<!-- this one has white bg -->
<div class="shorter" style="height:30px"> </div>
<div>
</div>
<div class="labels">
<div class="caption">
Indoor
</div>
<div class="caption">
Outdoor
</div>
</div>
</div>
它应该这样工作。
你可以通过给它一个盒子半径来制作带有CSS3的圆柱体。
例如:
box-radius: 100px/30px;
这会给你一个箱子一个椭圆形的外观。
只要给它所需的宽度和高度,它的完成:)
或者使用jqPlot作为一个jQuery插件。这个插件可以制作很多图表。
http://codepen.io/msvbg/pen/Lymko
这只是为了好玩。在纯粹的CSS3中,没有JS或图像。更好的方法可能是简单地使用其中的一个图表库。
- 1. CSS如何垂直
- 2. 如何垂直滚动两个UITableView
- 3. CSS垂直间距问题(保证金?) - 两个Div之间的垂直空间
- 4. 两侧的CSS垂直菜单
- 5. 垂直居中两个div
- 6. 对齐两个div垂直
- 7. CSS垂直对齐
- 8. CSS垂直中心
- 9. 垂直对齐CSS
- 10. CSS - 垂直居中
- 11. CSS垂直对齐
- 12. CSS垂直堆栈
- 13. HTML/CSS如何舒展DIV垂直
- 14. 如何将css柱子垂直对齐?
- 15. 如何在左右两边垂直对齐两个div?
- 16. CSS:水平对齐两个内部div垂直
- 17. 如何使用css在两个选项框之间绘制垂直线
- 18. 如何在css/html中垂直缩小两个单词之间的空间
- 19. 如何使用CSS在同一行中创建两条垂直线使用CSS
- 20. 如何垂直对齐另一个div内的两个div?
- 21. 另一个CSS垂直对齐
- 22. 用CSS垂直居中一个元素
- 23. 垂直放置2个adsense与css
- 24. html/css垂直对齐多个跨度
- 25. 如何将水平ul转换为垂直的电话与CSS?
- 26. CSS动态垂直高度
- 27. CSS图标垂直对齐
- 28. 960gs填充Div垂直CSS
- 29. CSS垂直中间边界
- 30. CSS垂直拉伸问题
可以使用CSS3吗?必须支持哪些浏览器? – thirtydot 2011-01-25 10:49:05
它应该尽可能地支持。 – Pentium10 2011-01-25 10:50:49
哦,好的。然后我确信这里已经有一个答案可以正常工作。我正在考虑使用`border-radius`来使曲线位于顶部,而CSS3线性渐变。 – thirtydot 2011-01-25 10:56:13