国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

CSS :focus-within的具體使用

2024-07-11 08:36:06
字體:
供稿:網(wǎng)友

CSS的世界真是一個(gè)神奇的世界。可能眾多前端開發(fā)者聽說過 :focus 并未聽說過 :focus-within 。那么 :focus-within 是什么鬼。這篇文章,我們就說說 :focus-within 這個(gè)東東。

:focus-within是什么

在CSS中 :focus-within 是一個(gè)偽類,現(xiàn)在已經(jīng)被列入到CSS選擇器中(CSS Level 4 selector)。他就像你知道的 :focus 或者 :hover 。 :focus-within 能非常方便處理獲取焦點(diǎn)狀態(tài)。當(dāng)元素本身或其后代元素獲得焦點(diǎn)時(shí), :focus-within 偽類的元素就會(huì)有效。

如果文字不好理解,咱們先來看一個(gè)簡單的示例:


<div class="form-group">
<label for="email">
Your email:
</label>
<input type="email" name="email" id="email" placeholder="Enter your email address"/>
</div>

上面是一個(gè)簡單的表單,有一個(gè) 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 得到焦點(diǎn)的時(shí)候, border-color 顏色換成了 #000 。但這不意味著接收鍵盤的焦點(diǎn),那是因?yàn)?<div> 不一定能得到鍵盤的焦點(diǎn),沒有設(shè)置 tabindex 。或者說 div 中的鏈接或 input 元素接收焦點(diǎn),那么 .form-group 元素將改變邊框顏色。

看到上面的示例,是不是覺得好神奇。在以前要實(shí)現(xiàn)類似的效果,我們需要借助JavaScript的腳本。通過 .form-group 的后代元素的鼠標(biāo)或鍵盤事件,然后給其父元素(或祖先元素,添加對(duì)應(yīng)的樣式)。

:focus-within的使用場(chǎng)景

:focus-within 非常強(qiáng)大,主要是由于偽類在它的任何元素獲取到焦點(diǎn)時(shí)都將被激活。當(dāng)元素包含許多子組件的元素上謹(jǐn)慎使用該偽類。

有了 :focus-within 之后,有一些常見的交互行為就變得非常的簡單,特別是以前需要JavaScript的鍵盤事件的交互行為,我們都可以使用 :focus-within 來替代。

接下來,咱們來看一些 :focus-within 的常見示例。

表格行的高亮

一個(gè)常見的例子,就是表格行高亮的行為,即鼠標(biāo)懸浮在表格的行時(shí),顏色變得高亮。這樣的交互樣式可以幫助有視力阻礙的用戶能更好的閱讀一個(gè)復(fù)雜的表格或長表格。因?yàn)橥怀龅娘@示,可以使用這些用戶更容易地跟蹤他們當(dāng)前正在閱讀的表格行。以前常常實(shí)現(xiàn)的方式是通過 :hover 來改變表格行的樣式,這種方案對(duì)于正常的用戶而言是一件易事,但如果你的用戶對(duì)于一些操作鼠標(biāo)有阻礙的用戶而言,那 :hover 就有點(diǎn)蛋疼了。如果你是追求完美的話,你可能會(huì)通過JavaScript的鍵盤事件給表格行添加樣式。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岱山县| 娱乐| 武功县| 长白| 芦溪县| 大洼县| 临洮县| 沅陵县| 高尔夫| 永城市| 烟台市| 九江县| 松滋市| 修水县| 扎赉特旗| 富裕县| 广河县| 曲靖市| 金阳县| 孟村| 陵川县| 沙坪坝区| 扬中市| 河南省| 许昌市| 珲春市| 武威市| 海阳市| 土默特右旗| 黄龙县| 嘉黎县| 五华县| 二连浩特市| 巴青县| 独山县| 鄂托克前旗| 芦山县| 佛教| 建始县| 克拉玛依市| 桦南县|