上一篇介紹了游標互動的 :hover
狀態,其實鍵盤同樣可以與網頁互動!這篇將帶大家了解焦點效果 :focus
與 :focus-visible
,幫助你更好地控制使用者與網站的互動體驗。
在網頁設計中,使用者與介面的互動體驗至關重要,而焦點(focus
)正是用來輔助使用者導航及操作的重要工具之一。無論是在意見調查表、聯絡我們頁面、線上訂票系統,焦點效果都能有效幫助使用者快速辨識與操作。
焦點效果除了增強互動體驗,還是無障礙網站設計中的重要元素。無障礙網站不僅對身障人士友好,還能提升網站的整體可用性,對 SEO 也有正面影響。
你可能會在一些網站上看到無障礙標章,這表示該網站符合無障礙設計標準。
下方圖片為高鐵網站的訂票系統,當你使用滑鼠點擊、或按鍵盤 Tab
鍵,會觸發 :focus
的效果,這讓使用者知道目前焦點在哪個元素上,使網站更具互動性和可操作性。
在介紹焦點效果的具體用法前,先來了解哪些 HTML 元素可以獲取焦點。基本上,以下元素皆可以透過點擊或鍵盤導航來獲取焦點:
<a>
:有設置 href
的超連結<input>
:文字、密碼、電子郵件等文字輸入框<textarea>
:多行文本輸入框<select>
:下拉選單<input type="checkbox">
:勾選框<input type="radio">
:單選框<button>
:按鈕:focus
基本用法選擇器:focus{
屬性: 屬性值;
}
一起試試:[CODEPEN]
<main>
<h1>Login</h1>
<form>
<div>
<label class="label">帳號</label>
<input type="text" class="form-control">
</div>
<div>
<label class="label">密碼</label>
<input type="password" class="form-control">
</div>
<div class="checkbox-label">
<input type="checkbox" id="remeber">
<label for="remeber">記住我</label>
</div>
<button type="submit">登入</button>
</form>
</main>
input:focus {
outline: 2px solid red;
}
button:focus {
outline: 2px solid red;
}
在這個範例中,當使用者將焦點移至輸入框或按鈕時,會顯示紅色的框線,幫助使用者辨識當前焦點位置。
你可能會發現,focus 不管是滑鼠點擊或按 Tab 鍵都會產生紅框,但有時我們在點擊時,並不想出現 紅框的效果,但又需要有無障礙的體驗,比方下面的例子:
在機車危險感知教育平台中,點擊側邊選單時,選單只會有淺藍色背景效果,只有在按 Tab
鍵時,才會出現紅色框,這樣一來既保住了原本的網站風格(不會有醜醜的紅框 😆),又能滿足無障礙需求
這是怎麼達成的呢?你可以用 :focus-visible
來做到這個效果!
:focus-visible
基本用法選擇器:focus-visible {
屬性: 屬性值;
}
一起試試:[CODEPEN]
<nav class="menu">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</nav>
.menu a {
text-decoration: none;
padding: 10px 15px;
background-color: #f2f2f2;
border-radius: 5px;
color: #333;
transition: background-color 0.3s;
}
.menu a:hover {
background-color: #ddd;
}
.menu a:focus-visible {
outline: 3px solid #4caf50;
background-color: #e6ffe6;
}
當使用者透過鍵盤導航(按 Tab
鍵)時,會看到綠色框線與淺綠背景,幫助鍵盤使用者辨識當前的焦點位置。
:focus
和 :focus-visible
是提升互動性與無障礙體驗的重要 CSS 選擇器。:focus
適用於所有的焦點交互,而 :focus-visible
更適合在鍵盤導航時使用。兩者搭配可以在保留網站風格的同時,提升可用性並滿足無障礙設計的要求。
本文將同步更新至 Lala Code