项目是用vue+webpack+elementUI 完成的。虽然没有什么深奥的技术和难点,但是有些细节还是值得注意的。
1、满足不同屏幕尺寸下缩放全屏显示。
单单只靠宽度、高度百分比是不可以实现的,比如如果宽度设置百分比,当屏幕宽度比较小时,这个标题一行显示不下,很容易出现问题。
这里用zoom 可以实现。具体代码:
getSize() {this.width = window.innerWidth;this.height = window.innerHeight;},onResize() {this.getSize();const defWidth = 1920;const defHeight = 1080;const wZoom = +(this.width / defWidth).toFixed(3);const hZoom = +(this.height / defHeight).toFixed(3);const same = Math.abs(wZoom - hZoom) <= 0.5;if (same) {let _zoom = wZoom < hZoom ? wZoom : hZoom;if (_zoom > 1) _zoom = 1;$('.divZoom').css({zoom: _zoom})}}
2、我们常常遇到这样的情况,标签绑定样式 :div-style="divStyle", divStyle在data中定义,如果divStyle 中有背景图片怎么写呢?
divStyle: {'background': `url(${ require('../link.png') }) no-repeat`,'padding-left': '80px'},
首先,${}是ES6提供的字符串拼接变量和表达式的新特性,其次用require 引入图片路径,不能直接写直接路径,否则打包后是无法找到的。
3、图表颜色渐变显示
设置itemStyle的color为new echarts.graphic.LinearGradient()线性渐变即可. 这个API在官方文档里面都没找到, 经过测试前四个参数设置为0, 0, 1, 0可以从左到右渐变. 设置为0,0,0,1可以从上到下渐变. 第5个参数数组表示开始的颜色和结束的颜色.,以下为三个颜色堆叠图的渐变设置,柱状图可以在itemStyle 中设置。
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0.4,
color: this.colorRgb(this.options.color[i],1)
}, {
offset: 0.8,
color: this.colorRgb(this.options.color[i],0.6)
}], false),
shadowColor: 'rgba(0, 0, 0, 0.1)',
shadowBlur: 10
}
},
4、表格内容太长,超出显示...
这个问题很常见,每次都要去查,在这里算做个记录吧。
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
/* 注意: 自己写的table 要加: table-layout:fixed
5、使用el-table 最底部总是有一条白线。
遇到这种情况,将下列属性改为背景色即可
.el-table::before {
background-color: red;
}
6 伪元素的应用
可以实现元素激活状态前面有蓝色的边
.el {position: relative;padding-left: 25px;height: 38px;line-height: 38px;&.is-active {color: @color-primary;&::before {position: absolute;width: 3px;background: @color-primary;left: 0;content: '';height: 100%;top: 1px;}}
}