CSS :focus-within的具體使用方法講解
這篇文章主要介紹了CSS :focus-within的具體使用的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
CSS的世界真是一個神奇的世界。或許有許多前端開發者聽過 :focus 並未聽過 :focus-within 。那麼 :focus-within 是什麼鬼。這篇文章,我們就說說 :focus-within 這個東東。
:focus-within是什麼
在CSS中:focus-within 是偽類,現在已經被列入CSS選擇器中(CSS Level 4 selector)。他就像你知道的 :focus 或 :hover 。 :focus-within 能非常方便處理取得焦點狀態。當元素本身或其後代元素獲得焦點時, :focus-within 偽類的元素就會有效。
如果文字不好理解,咱們先來看一個簡單的範例:
<p class="form-group"> <label for="email"> Your email: </label> <input type="email" name="email" id="email" placeholder="Enter your email address"/> </p>
上面是一個簡單的表單,有一個 input 表單控制項。
.form-group *:focus { background: yellow; color: #000; } .form-group { padding: 10px; border: 3px solid transparent } .form-group:focus-within { border-color: #000; }
上面的範例中, .form-group 得到焦點的時候, border-color 顏色換成了 #000 。但這不代表接收鍵盤的焦點,那是因為
不一定能得到鍵盤的焦點,沒有設定 tabindex 。或者說 p 中的連結或 input 元素接收焦點,那麼 .form-group 元素將會改變邊框顏色。
看到上面的範例,是不是覺得好神奇。在以前要實現類似的效果,我們需要藉助JavaScript的腳本。透過 .form-group 的後代元素的滑鼠或鍵盤事件,然後給其父元素(或祖先元素,添加對應的樣式)。
:focus-within的使用場景
:focus-within 非常強大,主要是由於偽類在它的任何元素獲取到焦點時都將被激活。當元素包含許多子組件的元素上謹慎使用該偽類。
有了 :focus-within 之後,有一些常見的互動行為就變得非常的簡單,特別是以前需要JavaScript的鍵盤事件的互動行為,我們都可以使用 :focus-within 來取代。
接下來,咱們來看一些 :focus-within 的常見範例。
表格行的高亮
一個常見的例子,就是表格行高亮的行為,即滑鼠懸浮在表格的行時,顏色變得高亮。這樣的互動樣式可以幫助有視力阻礙的使用者能更好的閱讀一個複雜的表格或長表格。因為突出的顯示,可以使用這些用戶更容易追蹤他們目前正在閱讀的表格行。以前常常實現的方式是透過:hover 來改變表格行的樣式,這種方案對於正常的用戶而言是一件易事,但如果你的用戶對於一些操作滑鼠有阻礙的用戶而言,那:hover就有點蛋痛了。如果你是追求完美的話,你可能會透過JavaScript的鍵盤事件為表格行添加樣式。
那麼有了 :focus-within 之後,我們就可以跟JavaScript說拜拜。我們可以這樣來設定樣式:
上面的範例展示如何使用 :focus-within 來突出表格的整個行。如果在特定的表格行中有一個可取得焦點的可用元素,這裡所指的是透過鍵盤取得焦點。例如上面這個範例,表格中有 元素,你懂的, a 元素是可以透過鍵盤取得焦點的。
這個時候你只需要在樣式中加入:
tbody tr:focus-within, tbody tr:hover { background: rgba(lightBlue, .4); }
下拉選單
下拉選單就是我們最常的Web元件之一。當我第一次看到 :focus-within 這個偽類時,我想到的第一個使用場景就是下拉式選單。
在上面的範例中,JavaScript是用來追蹤使用者鍵盤焦點在一個導航下拉式選單中的。如果JavaScript偵測到鍵盤焦點在一個連結上,那麼就為 .nav__list_drop 新增一個 .has-focus 類別。當 li 有了 .has-focus 類別時,他的子元素就會顯示出來,也就是下拉式選單會顯示出來。
這樣的效果,我們可以直接透過 :focus-within 取代JavaScript腳本的功能。使用 .nav__list__drop:focus-within 替代 .nav__list__drop.has-focus 。當你操作鍵盤,讓下拉式選單項目獲得焦點時,就會顯示下拉式選單。
.nav__list a:focus + .nav__list__drop, .has-drop:hover .nav__list__drop, .nav__list__drop:focus-within { opacity: 1; transform: translateY(0px); height: auto; z-index: 1; }
Off-screen Nav
#Off-screen Nav是在行動端上常見的效果。那麼這個效果我們也可以透過 :focus-within 來實現。詳細程式碼可以看下面這個範例:
瀏覽器相容性
:focus-within 雖然很有意思,但許多同學擔心它的相容性。透過Caniuse,我們可以看到瀏覽器對其支持度情況:
總結
如果你熟悉:focus 並不奇怪,但是你知道:focus-within的話,說明你在不斷的關注CSS相關的新特性。當然這個屬性又刷新了CSS的世界真是奇怪。如果你有興趣的話,不彷自己寫書Demo。你會喜歡上這個屬性的。
以上是CSS :focus-within的具體使用方法講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

DirectX修復工具是專業的系統工具,主要功能是偵測目前系統的DirectX狀態,如果發現異常就可以直接修復。可能還有很多用戶不清楚DirectX修復工具怎麼用吧,以下就來看看詳細教學。 1、使用修復工具軟體進行修復檢測。 2、如果修復完成後提示C++元件有異常的問題,請點選取消按鈕,然後點選工具選單列。 3、點選選項按鈕,選擇擴展,點選開始擴展按鈕。 4、擴展完成後再重新進行檢測修復即可。 5、如果修復工具操作完成後仍未解決問題,可以嘗試卸載重新安裝報錯的程序。

HTTP525狀態碼簡介:了解其定義與使用方法HTTP(HypertextTransferProtocol)525狀態碼是指伺服器在SSL握手過程中發生錯誤,導致無法建立安全連線。在傳輸層安全性(TLS)握手期間發生錯誤時,伺服器將傳回此狀態碼。此狀態碼屬於伺服器錯誤類別,通常表示伺服器配置或設定問題。當客戶端嘗試透過HTTPS連接到伺服器時,伺服器無

有很多朋友還不知道百度網盤怎麼用,所以下面小編就講解了百度網盤的使用方法,有需要的小伙伴趕緊來看一下吧,相信對大家一定會有所幫助哦。第一步:安裝好百度網盤後直接登入(如圖);第二步:接著可依頁面提示選擇「我的分享」與「傳輸清單」(如圖);第三步:在「好友分享」裡可以把圖片和檔案直接分享給好友(如圖所示);第四步:接著選擇「分享」後可勾選電腦檔案或是網盤檔案(如圖所示);第五步:然後就可以尋找好友(如圖所示);第六步:還可以在「功能寶箱」中尋找自己需要的功能(如圖所示)。上面就是小編為大

複製貼上快捷鍵使用方法複製貼上是我們在日常使用電腦時經常會遇到的操作。為了提高工作效率,熟練複製貼上快捷鍵是非常重要的。本文將介紹一些常用的複製貼上快捷鍵使用方法,幫助讀者更方便地進行複製貼上操作。複製快速鍵:Ctrl+CCtrl+C是複製的快速鍵,按住Ctrl鍵然後再按C鍵,即可將選取的文字、檔案、圖片等內容複製到剪貼簿。要使用該快捷鍵,

KMS啟動工具是一種用來啟動微軟Windows和Office產品的軟體工具。 KMS是KeyManagementService的縮寫,即金鑰管理服務。 KMS啟動工具透過模擬KMS伺服器的功能,使得電腦可以連接到這個虛擬的KMS伺服器,從而實現對Windows和Office產品的啟動。 KMS激活工具體積小巧,功能強大,可以一鍵永久激活,無需聯網狀態就可以激活任何版本的window系統和任何版本的Office軟體,是目前最成功的且經常更新的Windows激活工具,今天小編就跟大家介紹一下kms激活工

電腦隨著使用的時間越長越容易出現故障,這個時候就需要小夥伴去用自己的方法修復,那麼怎麼做比較簡單呢?今天就帶給大家用命令提示字元修復的教學。 win10自動修復命令提示字元怎麼用:1、按下“Win+R”輸入cmd打開“命令提示字元”2、輸入chkdsk查看修復命令3、如果需要查看其它地方也可以添加別的分區比如“d” 4.輸入執行指令chkdskd:/F即可5、若在修改過程中被佔用,可輸入Y繼續

合併儲存格的快速鍵怎麼用在日常工作中,我們常常需要對表格進行編輯和排版。而合併單元格是一種常見的操作,可以將相鄰的多個單元格合併為一個單元格,以提高表格的美觀程度和資訊展示效果。在MicrosoftExcel和GoogleSheets等主流的電子表格軟體中,合併儲存格的操作非常簡便,可以透過快速鍵來實現。以下將介紹在這兩個軟體中合併儲存格的快速鍵用法。在

potplayer是一款非常強大的媒體播放器,但不少夥伴還不知道potplayer怎麼用,今天小編就來詳細介紹一下potplayer的使用方法,希望能幫助大家。 1.PotPlayer快捷鍵PotPlayer播放器預設常用快捷鍵如下:(1)播放/暫停:空格(2)音量:滑鼠滾輪,上下方向鍵(3)前進/後退:左右方向鍵(4)書籤:P-加入書籤,H-查看書籤(5)全螢幕/還原:Enter(6)倍速:C-加速,X-減速,Z-復位(按一次調整0.1倍速度,可以在0.2到12倍速之間調節)( 7)上/下一幀:D/
