小編給大家分享一下純CSS實(shí)現(xiàn)Tab頁切換效果的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)是專業(yè)的阿爾山網(wǎng)站建設(shè)公司,阿爾山接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行阿爾山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
最近切一個(gè)頁面的時(shí)候涉及到了一個(gè)tab切換的部分,因?yàn)椴幌胗胘s想著能不能用純CSS的選擇器來實(shí)現(xiàn)切換效果。搜了一下大致有下面三種寫法。
1、利用 :hover 選擇器
缺點(diǎn):只有鼠標(biāo)在元素上面的時(shí)候才有效果,無法實(shí)現(xiàn)選中和默認(rèn)顯示某一個(gè)的效果
2、利用 a標(biāo)簽的錨點(diǎn) + :target選擇器
缺點(diǎn):因?yàn)殄^點(diǎn)會將選中的元素滾動(dòng)到頁面最上面,每次切換位置都要移動(dòng),體驗(yàn)極差。
3、利用 label和radio 的綁定關(guān)系和 radio選中時(shí)的:checked 來實(shí)現(xiàn)效果
缺點(diǎn):HTML結(jié)構(gòu)元素更復(fù)雜
經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)第三種方法達(dá)到的效果最好。所以下面講一下第三種實(shí)現(xiàn)的方法。
這種方法的寫法不固定,我查資料的時(shí)候各種各樣的寫法都有一度讓我一頭霧水的。最后看完發(fā)現(xiàn)總體思路都是一樣的,無非就是下面的幾個(gè)步驟。
綁定label和radio:這個(gè)不用說id和for屬性綁定
隱藏radio按鈕:這個(gè)方法有很多充分發(fā)揮你們的想象力就可以了,我見過的方法有設(shè)置 display:none; 隱藏的、設(shè)置 絕對定位,將left設(shè)置為很大的負(fù)值 ,移動(dòng)到頁面外達(dá)到隱藏效果、設(shè)置**絕對定位:使元素脫離文檔流,然后 opacity: 0; **設(shè)置為透明來達(dá)到隱藏效果。
隱藏多余的tab頁:和上面同理,還可以通過 z-index 設(shè)置層級關(guān)系來相互遮擋。
設(shè)置默認(rèn)項(xiàng):在默認(rèn)按鈕上添加 checked="checked" 屬性
設(shè)置選中效果:利用 + 選擇器 和 ~ 選擇器來設(shè)置選中對應(yīng)元素時(shí)下方的tab頁的樣式,來達(dá)到選中的效果
/* 當(dāng)radio為選中狀態(tài)時(shí)設(shè)置它的test-label兄弟元素的屬性 */ input[type="radio"]:checked+.test-label { /* 為了修飾存在的邊框背景屬性 */ border-color: #cbcccc; border-bottom-color: #fff; background: #fff; /* 為了修飾存在的層級使下邊框遮擋下方p的上邊框 */ z-index: 10; } /* 當(dāng)radio為選中狀態(tài)時(shí)設(shè)置與它同級的tab-box元素的顯示層級 */ input[type="radio"]:checked~.tab-box { /* 選中時(shí)提升層級,遮擋其他tab頁達(dá)到選中切換的效果 */ z-index: 5; }
這樣就可以實(shí)現(xiàn)一個(gè)Tab頁切換的效果了,不用一點(diǎn)兒js,當(dāng)然肯定也有兼容性的問題。實(shí)際操作中tab頁還是使用js比較好。下面是小Demo的代碼,樣式比較多主要是為了實(shí)現(xiàn)各種選中效果, 真正用來達(dá)到選擇切換目地的核心代碼就幾行
演示地址
代碼:
CSS實(shí)現(xiàn)Tab切換效果
111111111111
2222222222222
33333333333333
看完了這篇文章,相信你對純CSS實(shí)現(xiàn)Tab頁切換效果的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!