使用CSS实现outline切换的动画效果

2020-05-14 07:48:04易采站长站整理

    -webkit-box-shadow: none;   
    border-radius: 3px;   
    // 为的是失去焦点时候,框框立即消失   
    -webkit-transition: none;   
    transition: none;   
    // Firefox有bug,所以这里补丁了下   
    -moz-transition: all .15s;   
}  

form *:focus ~ .focus-trans { transition: all .15s;}

哈哈,应该不难理解。
~选择器表示相邻的兄弟元素。于是,我们就可以控制外发光的框框了,例如:

CSS Code复制内容到剪贴板

.code:focus ~ .focus-trans {  width: 130px; height: 42px; left: 99px; top: 66px; }  

看上去效果还不错。

实际上,还是有诸多限制的。首先,表单元素必须相邻,否则无法控制同一个元素,也就无法实现连续的动画;其次,每个控件的outline位置以及大小都是要冲定义的,实现的工时成本比较高,只能在局部重用位置使用。