裡面結合了CSS的before & after及許多語法,畫出各種不同的icon。但由於畫icon這個技巧太困難了,所以本篇只能就before & after這兩個比較少人會用到的功能介紹一下(虛弱)。
首先,先來介紹一下before & after的用法:
在目標元素的最前方/最後方放置額外的CSS元素。要注意的是最前方/最後方的意思,就直接用程式碼來看一下這是什麼意思吧。我們的CSS長的這樣:
p.box {
width: 300px;
border: solid 1px blue;
padding: 20px;
}
p.box:before {
content: "before";
border: solid 1px blue;
padding: 2px;
margin: 0 10px 0 0;
}
And HTML:
<div class="box">原始元素</div>
而出來的結果會是這樣:原始元素
有注意到其實before產生出來的元素,還是被包在<p>中間嗎?也因此你會看到box這個class的背景屬性一樣套用到:before元素之內。他們仍然都是屬於同一個元素,只是產生在元素內的最前方/最後方。這些產生出來的元素一樣可以套用各式各樣的CSS。而before, after裡面一定要有一個叫做content的屬性,可以是文字(如前例),也可以是圖像、超連結:
p:before {
content: url(image.jpg);
}
a:after {
content: attr(href);
}
PS: attr(href)是取得選取元素的href屬性,在本例就是取得a的href屬性,詳細用法可以見此。瀏覽器支援:
Before, after這兩個是CSS2.1中就有的功能,因此在瀏覽器的支援上算是滿廣泛的- Chrome 2+,
- Firefox 3.5+ (3.0 部分支援),
- Safari 1.3+,
- Opera 9.2+,
- IE8+ (也算部份,有點小問題),
- 大部分行動裝置瀏覽器
TIPS:
- 由於before, after是屬於pseudo-element,他本身不屬於DOM,因此在瀏覽器的DOM檢視中是看不到的 (不過firebug在1.8中已加入對pseudo-element的支援)。他們可以提供一些額外的效果,但是如果大量使用的話有可能造成debug上的問題,這點要多加注意。
- 這裡有非常多的應用,有不少實用的效果。
沒有留言:
張貼留言