抖动问题原因:设置的broder改变当前元素布局,会挤压空间,所以造成了抖动(因位置变化而出现的重绘现象),解决方法分为两种,一是改变元素本身大小,二是不更改布局,显示样式。
1.透明broder,对元素本身设置与目标broder宽度一致的透明边框
border:1px solid transparent;
2.padding,broder 对冲,设置和目标broder宽度一致的padding,之后当hover时重置
以上两种方法都没有办法解决,鼠标hover和选中元素的broder宽度不一的问题
3.outline,
outline
表示元素的轮廓,语法与border属性十分类似,分width
、style
和color
。支持的关键字和属性与border属性一致,radio也适用
此属性与border
存在一个重大的区别:outline不占据任何空间。
outline: 2px solid #3291fe;
outline-offset: -2px;
将偏移设置为目标宽度一样即可