一、:focus偽類的概念及作用
:focus是CSS偽類選擇器之一,表示元素獲得焦點時的樣式。當用戶通過使用Tab鍵或鼠標點擊將元素設為活動狀態時,該元素就會獲得焦點,此時我們可以為該元素添加自定義的樣式,以增強用戶的交互體驗。
例如,在表單中的輸入框獲得焦點時,我們可以通過:focus偽類修改輸入框的邊框線顏色或者添加文本框的陰影效果,從而在視覺上提醒用戶當前輸入框被選中,使用戶的交互體驗更加流暢。
二、輸入框提示文字
在用戶填寫表單的過程中,對於某些輸入框,可能需要提供相關提示,以便更好的告知用戶,那我們可以將這些提示作為「placeholder」添加到輸入框中。但是當輸入框獲得焦點時,這些提示文字會消失,這可能會給用戶造成困擾。所以,我們可以通過:focus偽類,在輸入框獲得焦點時顯示提示文字,也可以在輸入框失去焦點時重新顯示提示文字。
input:focus::-webkit-input-placeholder ,
textarea:focus::-webkit-input-placeholder {
color: #999;
transform: translateY(-30%);
font-size: 12px;
}
三、控件的變化
當鼠標移動到一個鏈接、按鈕或其他可單擊的控件上時,我們可以給這個控件添加鼠標懸浮效果,使用:hover實現即可。類似地,當用戶通過鍵盤將控件設為活動狀態時,我們也可以給這個控件添加樣式。比如,當一個鏈接被獲得焦點時,我們可以將其文本下劃線改為破折號,以視覺上強調該鏈接被選中。
a:focus {
text-decoration: underline dotted #990000;
}
四、動態效果
:focus偽類不僅可以用於調整控件的樣式,還可以與CSS3動畫一起使用來創建更多的動態效果。例如,當用戶在一個輸入框中輸入內容時,我們可以使用:focus偽類 + CSS3 transform動畫來實現一個動畫效果,提示用戶輸入內容已發生了改變。
input[type="text"]:focus {
border-bottom: 2px solid #3498db;
transition: all .3s ease-in-out;
}
input[type="text"]:focus + span {
color: #3498db;
transform: translateX(-50%) translateY(-140%) scaleX(1.5) scaleY(1);
}
五、組合使用
:focus偽類可以與其他偽類結合使用,以實現更複雜的效果。例如,當一個文本框被禁用時,我們可以給文本框的標籤添加「disabled」類,以便在用戶集中關注時更好地提醒用戶禁用情況。
label.disabled {
color: #999;
cursor: default;
}
label.disabled input:focus {
background: #fafafa;
border-color: #ccc;
}
六、總結
:focus偽類為我們在用戶體驗方面做出了諸多貢獻,它可以利用CSS來增強用戶的交互體驗,優化網站和應用程序的用戶界面。準確使用:focus偽類,可以使得用戶在使用頁面時更加方便和流暢。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/193628.html