vue+element控件之间间距太大问题及解决
作者:guohongyanghy
vue+element控件之间间距太大问题
减小控件之间的间距
style="float:left" ,float:right,等等,可以使某个控件居左显示
margin-top,margin-bottom,margin-left,margin-right可以控制控件之间的间距,element的控件之间间距较大,可以将这些值设置成负数来缩小间距
style="margin-top:-5px"
style="margin-bottom:-5px"
vue+element遇到的问题
1.用lang=“scss” 写样式
修改element的默认样式,用 ::v-deep 样式穿透
<style lang="scss" scoped>
::v-deep .el-input-group__append {
background-color: #5094ff;
border: 1px solid #5094ff;
}
</style>用lang=“less” 写样式,修改element的默认样式,用 /deep/ 样式穿透
2.element 分页符功能模块隐藏以及位置调换


layout布局,修改顺序可以改变功能模块的位置
3.element 表单使用fixed固定行列导致错位问题

出现的原因是 el-scrollbar__wrap::-webkit-scrollbar滚动条和表格自己的滚动条el-table__body-wrapper::-webkit-scrollbar 的宽度和高度不一致
解决:
//把两个宽高设置一样,不一定是30
.el-scrollbar__wrap::-webkit-scrollbar{
width: 30px;
height: 30px;
}
------------------------------------------
.el-table__body-wrapper::-webkit-scrollbar {
width: 30px;
height: 30px;
}
//设置表格滚动条样式
.el-table__body-wrapper::-webkit-scrollbar-thumb {
background-color: #dddee0;
border-radius: 8px;
}4.element的table中input的blur事件冲突问题
问题描述:

1.在table中有一列有input框,input框用的是blur事件,失去焦点,触发事件修改value;

2.图中【说明】这列,因为内容太多,使用了show-overflow-tooltip (当内容过长被隐藏时显示),就是鼠标放上去显示全部内容
问题来了:当input框内容被修改,但是没有失去焦点没有触发事件,此时将鼠标移到到【说明】这列,input框内容将被还原
造成原因:
猜测::可能!!!:table为了显示这个内容,重新获取了一次数据,刷新这列数据,相当于页面重新加载了一次数据,所以input框内容被还原了
解决办法:
如果想要坚持input使用blur事件,那就只能去掉show-overflow-tooltip属性;但是又想显示长内容,建议使用 element-ui的Tooltip 文字提示组件:常用于展示鼠标 hover 时的提示信息。
5.el-scrollbar 滚动条自定义
首先要修改浏览器自带滚动条样式
//设置浏览器滚动条长宽
::-webkit-scrollbar {
width: 6px;//6px刚好让浏览器默认的滚动条挤出右边,看不见(除了最大的那条滚动条)
height: 6px;
}
//设置浏览器滚动条的背景颜色
::-webkit-scrollbar-thumb {
background-color: #eee;
border-radius: 3px;
}修改element修改滚动条
//高度撑满
.el-scrollbar {
height: 100%;
}
//element-ui的自定义的滚动条 把原生的滚动条挤到看不到地方
.el-scrollbar__wrap {
overflow: scroll;
这个两个添加了会让内容展示不完,实测不建议添加
//width: 110%;
//height: 120%;
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
