原因:给父元素设置flex后,子元素会等比占据空间
解决办法:给图片的元素添加 flex:none
flex解释:是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
优先级:auto (1 1 auto) 或者 none (0 0 auto);
flex-grow, flex-shrink 和 flex-basis的详细:
div{
border 5px solid transparent
}
div:hover{
border-color:red
}
这样就不会引起重排,影响页面布局。
css3 属性 添加上下,左右阴影,兼容到ie9
box-shadow: h-shadow v-shadow blur spread color inset;
属性值
例子
div
{
box-shadow: 10px 10px 5px 0px #888888 inset;
}
两种,按照约定俗成的习惯,不经过webpack处理的放在static,需要经过处理的放assets:
注意只有在js逻辑里跑的代码,才需要使用主动引入的方式,毕竟,代码开始执行跑在客户端的时候是没有webpack环境的,向你直接在template中写的是会直接走webpack的。
通过imgUrl保存图片路径,然后使用标签去展示图片的话,有几种方法:
1 把图片放在static文件夹下,可以按照平常引入图片的方式引入。
2 把图片放在cdn上,把网络地址存在imgUrl里,然后直接<img :src="imgUrl">去展示。(待验证)
3 图片放在assets文件夹,然后在data里面require进图片
data() {
imgUrl:require('./assets/logo.png')
}
然后<img :src="imgUrl">
去展示即可。背景图的url也是如此。
在vue中动态使用style的background时,需要拼接字符串的形式
在vue中直接使用style时 花括号一定别忘记
:style = '{ backgroundImage : " url ( " + item.img + " ) " } '
如果是width这种就不用加了
:style = "'width:' + item.width + 'px'"
pointer-events有两个值:
auto: 与pointer-events属性未指定时的表现效果相同。在svg内容上与visiblepainted值相同
none:元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶触发父元素的事件侦听器。
说明:
使用pointer-events来阻止元素成为鼠标事件目标不一定意味着元素上的事件侦听器永不会触发。如果元素后代明确指定了pointer-events属性并允许其成为鼠标事件的目标,那么指向该元素的任何事件在事件传播过程中都将通过父元素,并以适当的方式触发其上的事件侦听器。当然位于屏幕上在父元素上但不在后代元素上的鼠标活动都不会被父元素和后代元素捕获(将会穿过父元素而指向位于其下面的元素)
阻止事件触发,比如:
例子:
1 提交页面,提交按钮点击后,添加这个样式属属性style="pointer-events"
,来防止重复提交。
2 几个li标签,让第二个不能触发点击事件,可以对第二个li设置style="pointer-events"
,这样索引依然在,只不过无法触发
向/从数组中添加/删除项目,然后返回被删除的项目,会改变原数组。
array.splice(index,num,item1,item2,...)
// 移除数组的第三个元素,并在数组第三个位置添加新元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var item = fruits.splice(2,1,"Lemon","Kiwi");
console.log(fruits) // ["Banana", "Orange", "Lemon", "Kiwi", "Mango"]
console.log(item) // ['apple']
1 直接className,但会覆盖原有类名
document.getElementById("test").className='abc';
2 利用setAttribute属性,但会覆盖原有的类名
document.getElementById("test").setAttribute("class","test1");
document.getElementsByClassName("test")[0].setAttribute("class","test1");
3 classList
Element.classList 是一个只读属性,返回一个元素的类属性的实时DOMTokenList 集合。
使用 classList 是替代element.className作为空格分隔的字符串访问元素的类列表的一种方便的方法。(存在兼容性问题,ie11以下不支持所有方法)
方法:echarts自适应屏幕,需要在myChart.setOption后面添加window.onresize = myChart.resize
有时候需要在内联语句处理器中访问原始的 DOM 事件。可以用特殊变量 $event 把它传入方法
<button v-on:click="warn('Form cannot be submitted yet.', $event)">
Submit
</button>
methods: {
warn: function (message, event) {
// 现在我们可以访问原生事件对象
if (event) event.preventDefault()
alert(message)
}
}
ref=multipleTable
,然后this.$refs.multipleTable.selection
获取勾选列表,返回的是一个数组,当前所有选中行的数据的集合(外部获取一次性的数据集合)el-table中添加@selection-change="handleSelectionChange",这个是选中时返回的当前数据,选多个勾,就显示多少勾的行数据(内部获取动态数据)
1、表单加ref属性
<el-form ref="refname"></el-form>
2、form的每个item加prop属性(踩了好久的坑这个,需要和绑定数据的最后名称一致,prop属性添加到form-item上)
<el-form-item prop="name">
<el-input v-model="query.name"></el-input>
</el-form-item>
3、绑定点击事件中传入refname
<el-form-item>
<el-button @click="resetForm('refname')">清空</el-button>
</el-form-item>
4、注册事件
restForm(refname) {
this.$refs[refname].resetFields()
}
5、检查是否有初始值
在data数据上需要挂载表单数据初始值为 ‘‘
如果使用了$store.state.fm.plan管理关联表单数据,那么在form中需要添加:model="$store.state.fm"。
#### 13 Computed property "route" was assigned to but it has no setter
这个是在computed时,我要判断几个el-checkbox-group中checkbox的选中情况,如果全部手动选中,这全选则选中,否则不选中,所以用computed判断,但爆这个错。
很多人说是因为在代码中改了route的值,但我并没有改,后来才发现,我虽然在代码里没有改route的值,但是在页面上切换tab的时候,element-UI会去改route的值,一开始是没有问题的,直到有一次更新了vue的版本,然后就开始出现上面的错误。
template
<el-tabs type="card" v-model="route">
</el-tabs>
js:
computed: {
route: {
get: function () {
return this.$store.state.curTab.route
},
set: function () {
}
}
}
不加宽度可以达到自适应,可以给某个cell添加min-width
原文:https://www.cnblogs.com/sqh17/p/10520304.html