mainbox布局分析
通过fix将盒子分成3份,其中中间的占5份
- .mainbox{
- display: flex;
- // 让它在同一行显示
- min-width: 1024px;
- max-width: 1920px;
- // 这个是到最小宽度它就不做缩放了
- margin: 0 auto;
- height: 300px;
- background-color: pink;
- padding: .125rem .125rem 0;
- .column{
- flex: 3;
- }
- .column:nth-child(2){
- flex: 5;
- }
- }
- <section class="mainbox">
- <div class="column">1</div>
- <div class="column">2</div>
- <div class="column">3</div>
- </section>
panel盒子公共面板
完成一份直接复制粘贴,后面填写东西就可以了
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>数据可视化</title>
- <link rel="stylesheet" href="css/index.css">
- </head>
- <body>
- <!-- 头部的盒子 -->
- <header>
- <h1>数据可视化-ECharts</h1>
- <div class="showTime"></div>
- <script>
- var t = null;
- t = setTimeout(time, 1000);//開始运行
- function time() {
- clearTimeout(t);//清除定时器
- dt = new Date();
- var y = dt.getFullYear();
- var mt = dt.getMonth() + 1;
- var day = dt.getDate();
- var h = dt.getHours();//获取时
- var m = dt.getMinutes();//获取分
- var s = dt.getSeconds();//获取秒
- document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒";
- t = setTimeout(time, 1000); //设定定时器,循环运行
- }
-
- </script>
- </header>
- <!-- 页面主体部分 -->
- <section class="mainbox">
- <div class="column">
- <div class="panel bar">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- <div class="panel line">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- <div class="panel pie">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- </div>
- <div class="column">2</div>
- <div class="column">
- <div class="panel bar">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- <div class="panel line">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- <div class="panel pie">
- <h2>柱形图-就业行业</h2>
- <div class="chart"></div>
- <div class="panel-footer"></div>
- </div>
- </div>
- </section>
- <script src="js/flexible.js"></script>
- </body>
- </html>
- // css初始化
- *{
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
- body{
- background: url(../images/bg.jpg) no-repeat top center;
- line-height: 1.15;
- }
- header{
- position: relative;
- height: 1.25rem;
- background: url(../images/head_bg.png) no-repeat;
- background-size: 100% 100%;
- h1{
- font-size: .475rem;
- color: #fff;
- text-align: center;
- line-height: 1rem;
- }
- .showTime{
- position: absolute;
- right: .375rem;
- top: 0;
- line-height: .9375rem;
- color: rgba(255, 255, 255, 0.7);
- font-size: 0.25rem;
- }
- }
- // 页面主体部分盒子
- .mainbox{
- display: flex;
- // 让它在同一行显示
- min-width: 1024px;
- max-width: 1920px;
- // 这个是到最小宽度它就不做缩放了
- margin: 0 auto;
- height: 300px;
- // background-color: pink;
- padding: .125rem .125rem 0;
- .column{
- flex: 3;
- }
- .column:nth-child(2){
- flex: 5;
- }
- .panel{
- position: relative;
- height: 3.875rem;
- border: 1px solid rgba(25, 186, 139, 0.17);
- background: url(../images/line\(1\).png)rgba(255, 255, 255, 0.03);
- padding: 0 0.1875rem 0.5rem;
- margin-bottom: 0.1875rem;
- &::before{
- position: absolute;
- top: 0;
- left: 0;
- width: 10px;
- height: 10px;
- border-left: 2px solid #02a6b5;
- border-top: 2px solid #02a6b5;
- content: "";
- }
- &::after{
- position: absolute;
- top: 0;
- right: 0;
- width: 10px;
- height: 10px;
- border-right: 2px solid #02a6b5;
- border-top: 2px solid #02a6b5;
- content: "";
- }
- .panel-footer{
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- &::before{
- position: absolute;
- bottom: 0;
- left: 0;
- width: 10px;
- height: 10px;
- border-left: 2px solid #02a6b5;
- border-bottom: 2px solid #02a6b5;
- content: "";
- }
- &::after{
- position: absolute;
- bottom: 0;
- right: 0;
- width: 10px;
- height: 10px;
- border-right: 2px solid #02a6b5;
- border-bottom: 2px solid #02a6b5;
- content: "";
- }
- }
- h2{
- height: .6rem;
- color: #fff;
- line-height: .6rem;
- text-align: center;
- font-size: 0.25rem;
- font-weight: 400;
- }
- .chart{
- height: 3rem;
- background-color: pink;
- }
- }
-
- }
08-中间布局
- 上面是no 数字模块
- 下面是map 地图模块
1. 数字模块 no 有个背景颜色 rgba(101, 132, 226, 0.1); 有个15像素的内边距
2. 注意中间列 column 有个 左右 10px 下 15px 的外边距
3. no 模块里面上下划分 上面是数字(no-hd) 下面 是 相关文字说明(no-bd)
4. no-hd 数字模块 有一个边框 1px solid rgba(25, 186, 139, 0.17)
5. no-hd 数字模块 里面分为两个小li 每个小li高度为 80px 文字大小为 70px 颜色为 #ffeb7b 字体是图标字体 electronicFont
6. no-hd 利用 after 和 before制作2个小角, 边框 2px solid #02a6b5 宽度为 30px 高度为 10px
7. 小竖线 给 第一个小li after 就可以 1px宽 背景颜色为 rgba(255, 255, 255, 0.2); 高度 50% top 25% 即可
8. no-bd 里面也有两个小li 高度为 40px 文字颜色为 rgba(255, 255, 255, 0.7) 文字大小为 18px 上内边距为 10px
~~~css
/* 声明字体*/
@font-face {
font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF);
}
~~~
地图模块制作:
1. 地图模块高度为 810px 里面包含4个盒子 chart 放图表模块 球体盒子 旋转1 旋转2
2. 球体图片模块 map1 大小为 518px 要加背景图片 因为要缩放100% 定位到最中央 透明度 .3
3. 旋转1 map 2 大小为 643px 要加背景图片 因为要缩放100% 定位到中央 透明度 .6 做旋转动画 利用z-index压住球体
4. 旋转2 map3 大小为 566px 要加背景图片 因为要缩放100% 定位到中央 旋转动画 注意是逆时针
```html
```
中间样式
```css
/* 声明字体*/
@font-face {
font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF);
}
.no {
background: rgba(101, 132, 226, 0.1);
padding: 0.1875rem;
.no-hd {
position: relative;
border: 1px solid rgba(25, 186, 139, 0.17);
&::before {
content: "";
position: absolute;
width: 30px;
height: 10px;
border-top: 2px solid #02a6b5;
border-left: 2px solid #02a6b5;
top: 0;
left: 0;
}
&::after {
content: "";
position: absolute;
width: 30px;
height: 10px;
border-bottom: 2px solid #02a6b5;
border-right: 2px solid #02a6b5;
right: 0;
bottom: 0;
}
ul {
display: flex;
li {
position: relative;
flex: 1;
text-align: center;
height: 1rem;
line-height: 1rem;
font-size: 0.875rem;
color: #ffeb7b;
padding: 0.05rem 0;
font-family: electronicFont;
font-weight: bold;
&:first-child::after {
content: "";
position: absolute;
height: 50%;
width: 1px;
background: rgba(255, 255, 255, 0.2);
right: 0;
top: 25%;
}
}
}
}
.no-bd ul {
display: flex;
li {
flex: 1;
height: 0.5rem;
line-height: 0.5rem;
text-align: center;
font-size: 0.225rem;
color: rgba(255, 255, 255, 0.7);
padding-top: 0.125rem;
}
}
}
.map {
position: relative;
height: 10.125rem;
.chart {
position: absolute;
top: 0;
left: 0;
z-index: 5;
height: 10.125rem;
width: 100%;
}
.map1,
.map2,
.map3 {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 6.475rem;
height: 6.475rem;
background: url(../images/map.png) no-repeat;
background-size: 100% 100%;
opacity: 0.3;
}
.map2 {
width: 8.0375rem;
height: 8.0375rem;
background-image: url(../images/lbx.png);
opacity: 0.6;
animation: rotate 15s linear infinite;
z-index: 2;
}
.map3 {
width: 7.075rem;
height: 7.075rem;
background-image: url(../images/jt.png);
animation: rotate1 10s linear infinite;
}
@keyframes rotate {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(360deg);
}
}
@keyframes rotate1 {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(-360deg);
}
}
}