content 是一個可以用來無中生有的 CSS 屬性,這邊先來看一個簡單的例子:
.content::before{
content: "大家好";
}
.content::after{
content: "紅色死神";
}
這邊我們使用 ::before 跟 ::after,照字面看大概可以知道我們就是在指定的選擇器前後加上東西,而加上的就是我們自訂的文字內容,結果如下:
content 可以使用的值有以下幾種,不過我們也可以使用空的內容再去依據我們的需求生成 UI:
1. 文字
2. unicode
3. attr
4. url
5. counter 函數
6. css變數
2. unicode
剛才我們看過純文字了,接下來看 unicode,unicode 是瀏覽器內建的特殊符號,比如說這邊我們就用 \2103 來自動產生攝氏溫度的單位:
3. attr
<div class="content" data-weather="多雲時晴">現在天氣: </div>
再利用 css 去拿 data 裡的值
.content::after{
content: attr(data-weather);
}
結果如下:
4. url
url 可以直接去拿一個線上的內容,比如說圖片的網址
5. counter 函數
counter 是一個有趣的東西,我們必須先認識這些跟 counter 有關的屬性,也就是 counter-reset 跟 counter-increment
counter-reset: 自訂一個要當 counter 的變數,後面可以帶預設的值
counter-increment: 要如何累進,可填正數或負數
利用這個我們來把列表前面加上數字:
<div class="wrap"><div>蘋果</div><div>香蕉</div><div>柳丁</div></div>.wrap{
counter-reset: count;
}
.wrap div::before{
counter-increment:count;
content:counter(count) '. ';
}
6. CSS 變數
這裡我們把第一個範例的名字變成 css 的變數,用法如下:
還有一個很經典的就是利用 content 製作 clearfix,就是利用空的內容來產出 clear: both 的內容。
用 css 的 content 大多會搭配偽元素,用得好的話是可以讓你的 css 變得更有彈性,有興趣的朋友可以玩玩看。