最全的css3偽類和偽元素詳解

如果您是一個網(wǎng)頁設(shè)計和開發(fā)者的老手血久,我想你肯定使用過偽類和偽元素耳幢。但我還是建議你去查看一下目錄表迂苛,可能其中的一兩項你之前沒有聽說過斑粱。

偽類在W3C上的技術(shù)定義不是特別復(fù)雜弃揽,它基本上是一個服務(wù)于CSS的虛擬的聲明或者元素的一個具體特性。一些常用的偽類有:link, :visited, :hover, :active, :first-child 和 :nth-child则北。還有很多矿微,我們一時看不完。

偽類通常是要以冒號開頭(:)尚揣,然后是偽類的名稱涌矢,有時也會在括號里賦值。

現(xiàn)在惑艇,偽元素和真元素是一樣的了蒿辙,我們可以把其當(dāng)做HTML中的常用元素來使用拇泛。但它并不在文件樹或者dom中滨巴,這就是說我們不能對他們進行分類思灌,只能利用CSS來創(chuàng)建。

我會在文章的最后談一下一些常見的偽元素:after恭取;before泰偿;fisrt letter.

偽元素用單冒號還是雙冒號?

把雙冒號(::)引入CSS3是為了使偽元素::before,::after和類似于:hover, :active區(qū)分開來.除了IE8及以下版本蜈垮,所有瀏覽器都支持偽元素中的雙引號耗跛。

也有一些偽元素只支持雙冒號,例如::backdrop

就切版網(wǎng)而言攒发,我們會使用單冒號標記调塌,因為這樣可以向后兼容傳統(tǒng)瀏覽器;當(dāng)然惠猿,如果要求使用雙冒號標記羔砾,我也會在偽類中使用雙冒號的。

你可以自由選擇哪一種標記偶妖,沒有絕對的對與錯姜凄。

然而,在寫這篇文章的時候趾访,說明書要使用單冒號標記态秧,原因就是我上面提到過的向后兼容性。

注意扼鞋,新的CSS寫偽元素的方法是使用雙冒號的申鱼,例如:a::after{...},這樣可以使他們和偽類區(qū)分開來,有時你可以在CSS中看到云头。但是CSS3依然允許使用單冒號的偽元素捐友,就為了是偽類向后兼容,現(xiàn)在我們已然建議你堅持這種句法盘寡。

在這篇文章的標題中夷磕,支持兩種冒號的偽元素會用兩種方式標記出來,只支持雙冒號的偽元素就以雙冒號的形式呈現(xiàn)航闺。

什么時候使用(不使用)生成內(nèi)容呢软棺?

生成內(nèi)容是通過連接CSS特性中的content和偽元素中的:before或:after來實現(xiàn)的。

這個content可能是純文本或者是一個容器影涉,這些使我們可以通過CSS來呈現(xiàn)出的一個生動的模塊或者裝飾性的元素变隔。這里,我指的是第一種形式----文本蟹倾。

如果為了裝飾而使用過多的生成內(nèi)容匣缘,那些支持CSS生成內(nèi)容的屏幕讀者會大聲讀出來猖闪,這樣會導(dǎo)致UX的效果更加糟糕。

使用CSS生成內(nèi)容是為了裝飾或者一些不太重要的信息肌厨,但是屏幕讀者要正確使用培慌,這樣可以保證擁有輔助技術(shù)的人不會混亂。在決定是否使用CSS合成內(nèi)容時要思考一下“漸進增強”(Progressive Enhancement)柑爸。

實驗性偽類和偽元素

一個偽類或偽元素是實驗性的是指它的規(guī)格不是固定的吵护,它的句法和行為是可以改變的。

然而我們現(xiàn)在可以通過應(yīng)用瀏覽器引擎前綴來是用偽類和偽元素表鳍。要做到這一點馅而,我們可以參考http://caniuse.com/或者一些自動前綴的工具,例如自由前綴或者自動前綴譬圣。

在這篇文章中你會看到緊鄰偽類和偽元素名稱的實驗性標簽瓮恭。

偽類

當(dāng)用戶執(zhí)行一個動作時,狀態(tài)偽類會起作用厘熟。在連接還未被瀏覽時屯蹦,CSS中的"action"也可以寫成“no action”。

讓我們來看一下盯漂。

:LINK

偽類link:是鏈接的正常狀態(tài)颇玷,通常是用來識別未被訪問過的鏈接。在分類中的其偽類沒有被識別前要生命:link,這四個的順序是這樣的:link, :visited, :hover,: active.Visited

:Visited 這個偽類用于已經(jīng)被訪問過的鏈接就缆。按順序吧:visited這個軟件放在第二位(放在:link之后)

:HOVER

當(dāng)用戶的指針指到時帖渠,hover用于定義元素的樣式。不必把鏈接加到hover上竭宰,盡管這是一種常用的方法空郊。

hover應(yīng)該位于第三位(放在偽類:visited之后)

:ACTIVE

:active這個偽類是用于定義一個被“激活”的元素或者一個指定的設(shè)備,或者一個觸屏設(shè)備的按鍵切揭,它可以被鍵盤激活狞甚,就像:foucus一樣。

它的運行和:foucus 類似廓旬,不同之處在于::active是點擊鼠標和松開鼠標時起作用哼审。

它應(yīng)該排在第四位,位于:hover之后

:FOCUS

偽類:focus是用來定義一個元素的樣式的孕豹,它已經(jīng)從指定設(shè)備涩盾,觸屏設(shè)備的界面或者鍵盤中獲得focus,是用來很多形式元素励背。

BONUS CONTENT: A SASS MIXIN FOR LINKS

如果你處理過CSS中的預(yù)處理程序春霍,比如像Sass,那么bonus content可能會引發(fā)你的興趣叶眉。

如果你對CSS預(yù)處理程序沒有興趣---沒關(guān)系---你可以直接跳轉(zhuǎn)到結(jié)構(gòu)性的偽類部分址儒。

秉著使工作流程最優(yōu)化的精神芹枷,下面是一個Sass mixin,我們可以創(chuàng)建一組基礎(chǔ)的鏈接。

在mixin背后的想法是在討論中沒有聲明缺省莲趣。所以鸳慈,我們是被動的,去聲明鏈接的4個階段妖爷。

:focus 和:active通常都是一塊聲明的蝶涩,如果你想要分開理朋,也可以分開絮识。注意一點:mixin是可以應(yīng)用于任何HTML元素中的,而不只是links嗽上。

結(jié)構(gòu)性偽類:

結(jié)構(gòu)性偽類以文件樹或者dom 樹種的傳統(tǒng)信息為目標次舌,它不可以用其他類型的選擇器或者配合器所代替。

::FIRST-LETTER

First-letter是選擇一行文本中的第一個字母兽愤,如果一個元素包含在這一行的前面彼念,例如圖片、視頻或者表格浅萧,那么首字母不會受影響并且可以被選擇出來逐沙。

它的這個特性可以用于段落當(dāng)中,例如洼畅,無需借助圖片或外部性能就增強排版的美觀度吩案。

::FIRST-LINE

Firs-line 是用于定位元素中的第一行,它只在塊級元素中起作用帝簇。

當(dāng)用于段落的時候徘郭,只有第一行會有樣式,即使文本會轉(zhuǎn)行丧肴。

::SELECTION

:selection 是用于定義文本中被強調(diào)出來的那部分的樣式的残揉。

::PLACEHOLDER

:placeholder 是利用HTML中的placeholder 特性來定位用于造型元素中的占位符文本。

It can also be written as ::input-placeholder, which is actually the syntax used in CSS.

它也可以寫成 ::input-placeholder芋浮,這實際上是CSS中的句法抱环。

總結(jié)

CSS中的偽類和偽元素是不是很有用?他們的確給人們帶來了滿足感纸巷,但是這也是一個網(wǎng)絡(luò)設(shè)計者和開發(fā)者的生活镇草。

請確保徹底測試徹底,但是真正應(yīng)用偽類和偽元素還有很長的路要走何暇。希望你能從這篇文章中有所收獲陶夜!同時不要忘記給它創(chuàng)建書簽哦。

----

文/切版網(wǎng)(www.qieban.cn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裆站,一起剝皮案震驚了整個濱河市条辟,隨后出現(xiàn)的幾起案子黔夭,更是在濱河造成了極大的恐慌,老刑警劉巖羽嫡,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本姥,死亡現(xiàn)場離奇詭異,居然都是意外死亡杭棵,警方通過查閱死者的電腦和手機婚惫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魂爪,“玉大人先舷,你說我怎么就攤上這事∽沂蹋” “怎么了蒋川?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撩笆。 經(jīng)常有香客問我捺球,道長,這世上最難降的妖魔是什么夕冲? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任氮兵,我火速辦了婚禮,結(jié)果婚禮上歹鱼,老公的妹妹穿的比我還像新娘泣栈。我一直安慰自己,他們只是感情好醉冤,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布秩霍。 她就那樣靜靜地躺著,像睡著了一般蚁阳。 火紅的嫁衣襯著肌膚如雪铃绒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天螺捐,我揣著相機與錄音颠悬,去河邊找鬼。 笑死定血,一個胖子當(dāng)著我的面吹牛赔癌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澜沟,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灾票,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茫虽?” 一聲冷哼從身側(cè)響起刊苍,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤既们,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后正什,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啥纸,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年婴氮,在試婚紗的時候發(fā)現(xiàn)自己被綠了斯棒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡主经,死狀恐怖荣暮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旨怠,我是刑警寧澤渠驼,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站鉴腻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏百揭。R本人自食惡果不足惜爽哎,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望器一。 院中可真熱鬧课锌,春花似錦、人聲如沸祈秕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽请毛。三九已至志鞍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間方仿,已是汗流浹背固棚。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留仙蚜,地道東北人此洲。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像委粉,于是被迫代替她去往敵國和親呜师。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容