.test{
transition: width 1s;
&:hover{
width: 400px;
}
}
<input type="text" class="test"/>
怎么让过渡效果起作用呢
1
otakustay 2021-11-12 09:59:18 +08:00
width 默认是 auto ,但 transition 无法基于 auto 搞,用 min-width 搞 0-400 的 transition 的话会有“启动延时感”,你要的这个功能我理解是无法用纯 CSS 完美实现的
|
2
otakustay 2021-11-12 09:59:40 +08:00 1
<!DOCTYPE html>
<html> <head> <style> .test{ transition: min-width 1s linear; min-width: 0; } .test:hover{ min-width: 400px; } </style> </head> <input type="text" class="test"/> </html> 这个是 min-width 的做法,会有一个延迟(从 0 到当前 width 的过程看不到) |
3
icedwatermelon 2021-11-12 10:06:11 +08:00
`
.test-wrapper{ transition: width 1s; width:100px; &:hover{ width: 400px; } .test } <div class="test-wrapper"> <input type="text" class="test"/> </div> ` |
4
icedwatermelon 2021-11-12 10:07:36 +08:00 1
@icedwatermelon
.test-wrapper{ transition: width 1s; width:100px; &:hover{ width: 400px; } .test{ width:100% } <div class="test-wrapper"> <input type="text" class="test"/> </div> 在外面包一个 div 好像可以 |