那些你所不知的CSS ::before 和::after 偽元素用法

CSS 有兩個(gè)說不上常用的偽類 :before 和 :after,偶爾會(huì)被人用來添加些自定義格式什么的,但是它們的功用不僅于此。前幾天發(fā)現(xiàn)了 Creative Link Effects 這個(gè)非常有意思的介紹創(chuàng)意鏈接特效的頁面,里面驚人的效果大量使用到的特性除了 transform 屬性進(jìn)行變形之外,就是接下來要介紹的這兩個(gè)偽元素了。
Creative Button Styles
一 基本語法
在了解進(jìn)階的應(yīng)用之前,先來了解一下語法規(guī)則。平常僅僅需要將這兩個(gè)偽元素用于添加一些自定義字符時(shí),只需使用偽類使用的單冒號(hào)寫法,以保證瀏覽器的兼容性:
- p:before {}
不過,在 CSS3 中為了區(qū)別偽元素和偽類為偽元素使用了雙冒號(hào),因此如果使用了 display 或者 width 等屬性時(shí)使得顯示脫離了原本元素后,建議按照標(biāo)準(zhǔn)雙寫。過于老的瀏覽器可能會(huì)存在支持問題,不過偽元素大多是配合 CSS3 使用,就無所謂向下兼容了:
- img::after {}
這兩個(gè)偽類下特有的屬性 content ,用于在 CSS 渲染中向元素邏輯上的頭部或尾部添加內(nèi)容。注意這些添加不會(huì)改變文檔內(nèi)容,不會(huì)出現(xiàn)在 DOM 中,不可復(fù)制,僅僅是在 CSS 渲染層加入。比較有用的是以下幾個(gè)值:
•[String] - 使用引號(hào)包括一段字符串,將會(huì)向元素內(nèi)容中添加字符串。示例:
- •a:after { content: "↗"; }
- •a:after { content:"(" attr(href) ")"; }
- •h1::before { content: url(logo.png); }
- h2:before { countercounter-increment: chapter; content: "Chapter " counter(chapter) ". " }
二 進(jìn)階技巧
清除浮動(dòng)是一個(gè)時(shí)常會(huì)遇到的問題,不少人的解決辦法是添加一個(gè)空的 div 應(yīng)用 clear:both; 屬性?,F(xiàn)在,無需增加沒有意義的元素,僅需要以下樣式即可在元素尾部自動(dòng)清除浮動(dòng):
- .clear-fix { *overflow: hidden; *zoom: 1; }
- .clear-fix:after { display: table; content: ""; width: 0; clear: both; }
許多人喜歡給 blockquote 引用段添加巨大的引號(hào)作為背景,這種時(shí)候我們就可以用 :before 來代替 background 了,即可以給背景留下空間,還可以直接使用文字而非圖片:
- blockquote::before {
- content: open-quote;
- position: absolute;
- z-index: -1;
- color: #DDD;
- font-size: 120px;
- font-family: serif;
- font-weight: bolder;
- }
三 特效妙用
除了簡(jiǎn)單的添加字符,配合 CSS 強(qiáng)大的定位和特效特性,完全可以達(dá)到給簡(jiǎn)單的元素另外附加最多兩個(gè)容器的效果。有一點(diǎn)需要注意的是,如果不需要內(nèi)容僅配合樣式屬性做出效果,內(nèi)容屬性也不能為空,即 content:”" 。否則,其他的樣式屬性一概不會(huì)生效。
懸浮出現(xiàn)方括號(hào)
鼠標(biāo)移上鏈接,出現(xiàn)方括號(hào):
- a {
- position: relative;
- display: inline-block;
- outline: none;
- text-decoration: none;
- color: #000;
- font-size: 32px;
- padding: 5px 10px;
- }
- a:hover::before, a:hover::after { position: absolute; }
- a:hover::before { content: "\5B"; left: -20px; }
- a:hover::after { content: "\5D"; rightright: -20px; }
同樣,我們只需要配合 display: block 和 position: absolute ,就可以將其當(dāng)成兩個(gè)容器,拼合成懸浮出現(xiàn)雙邊框的特效:
- a {
- position: relative;
- display: inline-block;
- outline: none;
- text-decoration: none;
- color: #000;
- font-size: 32px;
- padding: 0 10px;
- }
- /* 大框 */
- a:hover::before, a:hover::after {
- content: "";
- display: block;
- position: absolute;
- top: -15%%;
- left: -14%%;
- width: 120%;
- height: 120%;
- border-style: solid;
- border-width: 4px;
- border-color: #DDD;
- }
- /* 小框 */
- a:hover::after {
- top: 0%;
- left: 0%;
- width: 100%;
- height: 100%;
- border-width: 2px;
- }
以上這篇那些你所不知的CSS ::before 和::after 偽元素用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
原文地址:http://www.cnblogs.com/androidshouce/archive/2016/06/12/5576493.html
相關(guān)文章
- 本篇重點(diǎn)介紹CSS中的:befor、:after創(chuàng)建的偽元素幾種使用場(chǎng)景,如填充文本、作為iconfont、進(jìn)度線、時(shí)間線以及幾何圖形,感興趣的朋友一起看看吧2018-02-07
- before 和 after其實(shí)就是附著在元素前后的偽元素,說他是偽元素的意思就是,元素不是在DOM中生成的,而是在瀏覽器渲染引擎渲染CSS的時(shí)候畫上去的,這篇文章主要給大家介紹2017-09-18
利用CSS3偽元素實(shí)現(xiàn)逐漸發(fā)光的方格邊框
這篇文章主要給大家介紹了利用CSS3偽元素實(shí)現(xiàn)逐漸發(fā)光的方格邊框的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來2017-05-07css3+偽元素實(shí)現(xiàn)鼠標(biāo)移入時(shí)下劃線向兩邊展開的效果
這篇文章主要介紹了利用css3+偽元素實(shí)現(xiàn)鼠標(biāo)移入時(shí)下劃線向兩邊展開效果的相關(guān)資料,文中先進(jìn)行了詳細(xì)的介紹,方便大家理解,而后給出了完整的實(shí)例代碼讓大家可以參考學(xué)習(xí)2017-04-25利用CSS偽元素創(chuàng)建帶三角形的提示框的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄肅SS偽元素創(chuàng)建帶三角形的提示框的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-01- 本文講講述偽元素以及功能強(qiáng)大的Contet屬性,文章通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-18