通過(guò)CSS的:focus偽類(lèi)結(jié)合transition和transform,可實(shí)現(xiàn)邊框變色、下劃線(xiàn)伸展、標(biāo)簽上浮及輕微縮放等聚焦動(dòng)畫(huà)效果,提升輸入框交互體驗(yàn)。
當(dāng)用戶(hù)點(diǎn)擊或使用Tab鍵進(jìn)入輸入框時(shí),給一個(gè)平滑的視覺(jué)反饋能提升用戶(hù)體驗(yàn)。通過(guò)CSS的:focus
偽類(lèi)結(jié)合過(guò)渡(transition)和變換(transform)等屬性,可以輕松實(shí)現(xiàn)聚焦動(dòng)畫(huà)效果。
最常見(jiàn)的方式是改變輸入框的邊框顏色,并添加一點(diǎn)外發(fā)光效果:
input { padding: 10px; border: 2px solid #ccc; border-radius: 4px; outline: none; /* 移除默認(rèn)輪廓 */ transition: all 0.3s ease; } <p>input:focus { border-color: #007bff; box-shadow: 0 0 8px rgba(0, 123, 255, 0.3); }</p>
說(shuō)明:使用 transition
讓邊框和陰影變化更柔和。box-shadow
提供視覺(jué)高亮,增強(qiáng)聚焦感。
適合簡(jiǎn)約風(fēng)格表單,只對(duì)底部邊框做動(dòng)畫(huà)處理:
立即學(xué)習(xí)“前端免費(fèi)學(xué)習(xí)筆記(深入)”;
input { padding: 8px 0; font-size: 16px; border: none; border-bottom: 2px solid #ddd; outline: none; transition: border-color 0.3s ease; } <p>input:focus { border-bottom-color: #007bff; }</p>
進(jìn)階:從中間向兩邊伸展下劃線(xiàn)
input { position: relative; padding: 8px 0; border: none; border-bottom: 2px solid #ddd; outline: none; } <p>input::after { content: ''; position: absolute; bottom: -2px; left: 50%; width: 0; height: 2px; background-color: #007bff; transition: width 0.3s ease, left 0.3s ease; }</p><p>input:focus::after { width: 100%; left: 0; }</p>
通過(guò)偽元素實(shí)現(xiàn)線(xiàn)條從中向兩側(cè)展開(kāi)的動(dòng)效,視覺(jué)更具吸引力。
常用于Material Design風(fēng)格,輸入時(shí)提示文字上移并變?。?/p>
.form-group { position: relative; margin-bottom: 20px; } <p>label { position: absolute; left: 10px; top: 10px; font-size: 16px; color: #666; transition: all 0.3s ease; pointer-events: none; }</p><p>input:focus + label, input:not(:placeholder-shown) + label { top: -10px; font-size: 12px; color: #007bff; }</p>
HTML結(jié)構(gòu)示例:
<div class="form-group"> <input type="text" placeholder=" " /> <label>用戶(hù)名</label> </div>
注意:要讓:not(:placeholder-shown)
生效,placeholder
必須設(shè)為空格或?qū)嶋H提示內(nèi)容。
讓輸入框在聚焦時(shí)微微放大,突出當(dāng)前操作區(qū)域:
input { padding: 10px; border: 2px solid #ccc; border-radius: 4px; outline: none; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } <p>input:focus { border-color: #007bff; transform: scale(1.02); z-index: 1; }</p>
建議:縮放比例不要太大,1.02~1.05之間比較自然,避免頁(yè)面跳動(dòng)。
基本上就這些。選擇合適的方式取決于你的設(shè)計(jì)風(fēng)格。重點(diǎn)是保持動(dòng)畫(huà)流暢、響應(yīng)及時(shí),不干擾用戶(hù)輸入。合理運(yùn)用transition
和偽類(lèi),就能做出專(zhuān)業(yè)又細(xì)膩的聚焦效果。
以上就是如何用css實(shí)現(xiàn)表單輸入框聚焦動(dòng)畫(huà)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)