iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
2
Modern Web

菜鳥前端奮鬥史(欸?系列 第 13

Day13 「之前之後?什麼鬼?」 ─ ::before、::after 偽元素

  • 分享至 

  • xImage
  •  

大家好,台嘎厚
今天中部依舊空氣品質糟糕,滿滿大PM2.5,是個適合還債的日子 (什麼鬼

今次來接續上次的題目 ── 使用偽元素來清除浮動

但首先我們必須要先知道

偽元素是什麼?為什麼我們需要它?

根據 W3School 簡單暴逆又其實不是那麼好懂的解說來看
「CSS 偽元素用於向某些選擇器設置特殊效果。」
..
... 嗯,很好,依然不懂這是什麼鬼 (扔書

別擔心,這是正常現象

這邊簡單說一下我自己的理解好了
偽元素的好處在於它本身可以有 CSS 屬性,故可以影響畫面
但是它不是實際存在的 HTML 結構

舉例來說
若我們希望製作一個這樣的按鈕
https://ithelp.ithome.com.tw/upload/images/20180103/20107640jxKBte3rpw.png
就可以使用偽元素來達成效果囉!


凡事有個範例好理解,本次 demo 歡迎取用把玩
https://ithelp.ithome.com.tw/upload/images/20180103/20107640ThmurDu9Go.png
在這個範例中,我們可以看到左側的 HTML 中只有一個 div 元素
但是畫面上卻有三種色彩,以及不同的內容
這就是因為使用了偽元素來製造畫面的緣故

紅色部分的 code

.button::before{
  content: '我是before';
  display: block;
  position: absolute;
  top: 0;
  left: -50px;
  width: 50px;
  height: 80px;
  background-color: red;
}

藍色部分的 code

.button::after{
  content: '我是after';
  display: block;
  position: absolute;
  top: 0;
  right: -50px;
  width: 50px;
  height: 80px;
  background-color: #03f4f1;
}

 

解釋時間

content: '';
display: block;

這兩個屬性是為了讓 ::before、::after 具有實際佔位,才能顯示
而比較陌生的 positon(定位元素) 則是為了讓偽元素在我們想要的地方出現
這個部分應該會在下次的主題中更詳細提到 /images/emoticon/emoticon41.gif

回到原先使用偽元素來清除浮動的主題

若我們想要使用偽元素來清除浮動
則需要下以下的 code

想要被清除浮動的物件 or 其className::after{
  content: ""; 
  display: block; 
  height: 0; 
  visibility: hidden; 
  clear: both; 
}

這樣一來就大功告成囉!


補充資料


>>隊友任意門<<

我是小菜鳥阿陰,我們下次見!


上一篇
Day12 「版面用 float 怎麼不如預期?」 ─ 孩子,記得清除浮動呀
下一篇
Day14 「CSS3 讓畫面更精彩」 ─ 圓角、陰影、漸層效果
系列文
菜鳥前端奮鬥史(欸?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言