如何在html中自动生成条形图,css如何创建3D立体的条形图?
本文介紹的創建立體條形圖的示例,使用了透視和旋轉的3D效果,而不僅僅是傾斜變換。結果是一個圖表,可以從任何方向查看。
下面我們來一步一步介紹如何建立,示例代碼在WebKit瀏覽器中效果最好,在Firefox(v13)中也相當不錯。
1、設置網格
首先設置一個#stage元素,我們可以在其中定義將要查看任何3D轉換的透視圖。基本上是查看器與平面屏幕相關的位置。然后,因為我們正在創建圖形,我們需要設置軸和網格(#chart)。
雖然我們可以輕松地創建背景圖像并將其平鋪以形成網格圖案,但我們決定使用CSS線性漸變語法。在下面的所有代碼中,-moz-styles只復制-webkit-樣式。
#stage{
-webkit-perspective:1200px;
-webkit-perspective-origin:0%0%;
-moz-perspective:1200px;
-moz-perspective-origin:0%0%;
background:rgba(0,255,255,0.2);
}
#chart{
position:relative;
margin:10emauto;
width:400px;
height:160px;
border:1pxsolid#000;
background:-webkit-repeating-linear-gradient(left,rgba(0,0,0,0)0,rgba(0,0,0,0)38px,#ccc40px),-webkit-repeating-linear-gradient(bottom,rgba(0,0,0,0),rgba(0,0,0,0)38px,#ccc40px);
background:-moz-repeating-linear-gradient(left,rgba(0,0,0,0)0,rgba(0,0,0,0)38px,#ccc40px),-moz-repeating-linear-gradient(bottom,rgba(0,0,0,0),rgba(0,0,0,0)38px,#ccc40px);
-webkit-transform-origin:50%50%;
-webkit-transform:rotateX(65deg);
-webkit-transform-style:preserve-3d;
-moz-transform-origin:50%50%;
-moz-transform:rotateX(65deg);
-moz-transform-style:preserve-3d;
}
圖表大小為400x160像素,網格為40像素。如您所見,背景網格由兩個水平和垂直運行的重復漸變組成。圖表已從屏幕傾斜65度。
2、定義3D條形圖
圖表中的每個條形圖都由四個邊和一個帽組成。這里的樣式是針對條形CSS類,然后可以在不同的位置和顏色中多次使用。它們在HTML中定義,您很快就會看到。
要想象正在應用的變換,請考慮頁面上的垂直十字平面。然后將四個側面旋轉離開我們以形成柱子。簡單。
.bar{
position:absolute;
bottom:40px;
margin:04px;
width:32px;
height:40px;
outline:1pxsolid#000;
text-align:center;
line-height:40px;
-webkit-transform-style:preserve-3d;
-moz-transform-style:preserve-3d;
font-size:20px;
}
.barfront,.barback,.barleft,.barright{
position:absolute;
outline:inherit;
background:inherit;
}
.barfront{
width:inherit;
bottom:0;
-webkit-transform:rotateX(90deg);
-webkit-transform-origin:50%100%;
-moz-transform:rotateX(90deg);
-moz-transform-origin:50%100%;
}
.barback{
width:inherit;
top:0;
-webkit-transform:rotateX(-90deg);
-webkit-transform-origin:50%0;
-moz-transform:rotateX(-90deg);
-moz-transform-origin:50%0;
}
.barright{
height:inherit;
right:0;
-webkit-transform:rotateY(-90deg);
-webkit-transform-origin:100%50%;
-moz-transform:rotateY(-90deg);
-moz-transform-origin:100%50%;
}
.barleft{
height:inherit;
left:0;
-webkit-transform:rotateY(90deg);
-webkit-transform-origin:0%50%;
-moz-transform:rotateY(90deg);
-moz-transform-origin:0%50%;
}
在CSS代碼中,我們沒有定義圖表中條形圖的位置或顏色。這需要為每個元素單獨完成。但請注意,我們在可能的情況下使用了inherit屬性來簡化這一過程。
3、條形圖HTML標記
在這里,您可以看到實踐中用于下面演示的代碼。圖表上有三個條形圖。每個酒吧都是一個div,有四個孩子div組成四邊。您可以擁有任意數量的條形圖并將它們放置在圖表上的任何位置。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的如何在html中自动生成条形图,css如何创建3D立体的条形图?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 打卡app,日常小打卡a
- 下一篇: 2021贵州毕节高考成绩查询,2021贵