css博大精深,不少屬性,每每都是看似熟悉,可是彷佛又不能將其特性和用法完整地說出來。css
content屬性,的確是很眼熟,也許不少童鞋和我同樣,和它初次見面,是在清除浮動的時候:html
.clearfix:after{
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden
}
複製代碼
如上所示,content 屬性與 :before 及 :after 僞元素配合使用,並能夠接受一個字符串做爲值。bash
然而,除了字符串以外,還能接受什麼樣的值呢?學習
content 屬性與 :before 及 :after 僞元素配合使用,來插入生成內容。google
該屬性用於定義元素以前或以後放置的生成內容。默認是行內內容,不過能夠用屬性 display 控制。url
參考:w3schoolspa
none、normal、inherit、string、url()、attr()、[no-]open-quote、[no-]close-quote、counter[s]ssr
其中none、normal、inherit這三個和大多數屬性相似,故不作介紹。code
string是常見的,上面清除浮動的例子,就是其中之一。orm
url的用法,和background屬性有點相似,能夠接受一個圖片url。不同的是,content屬性沒法控制圖片的大小。
<div class="logo">Google</div>
.logo:before{
content: url(https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png);
}
複製代碼
attr,顧名思義,就是將content內容設置爲對應元素的某一屬性。
<p>
<span data-text='半'>半</span>
<span data-text='邊'>邊</span>
<span data-text='效'>效</span>
<span data-text='果'>果</span>
</p>
span{
font-size: 100px;
font-weight: bold;
position: relative;
color: #000;
}
span:before{
content: attr(data-text);
color: #F00;
position: absolute;
left: 0;
top: 0;
width: 50%;
overflow: hidden;
}
複製代碼
[no-]open-quote、[no-]close-quote,這四個值,經常使用於給元素先後加上引號,配合quotes 屬性一塊兒使用。
<p>魯迅曾經說過: <span>能用CSS解決的問題就不要使用JS。<span>呵呵,誰說的?<span class="no-quote">呵呵,誰說的?</span></span></span></p>
span {
quotes: '「' '」' '‘' '’' '"' '"';
}
span:before {
content: open-quote;
}
span:after {
content: close-quote;
}
.no-quote:after{
content: no-close-quote;
}
複製代碼
其中,quotes屬性定義要使用的引號。兩兩一組,前兩個值規定第一級引用嵌套,後兩個值規定下一級引號嵌套。如此類推。
須要注意的是,只有當僞元素:before設置content的值爲open-quote纔會有效果。
這是一個很強大的東西,不妨先來體驗一下其強大的力量,查看示例
與其搭配使用的,還有counter-reset、counter-increment兩個屬性。
用來標識計數器的做用域,值包括兩部分:第一部分爲計數器的名字;第二部分爲計數器的起始值,默認爲0。此外,counter-reset還能夠同時聲明多個計數器
counter-reset: n 0
counter-reset: n 2
counter-reset: n 0 m 0 p 0
複製代碼
用來代表計數器實際用到的範圍,值包括兩部分:第一部分爲計數器的名字;第二部分爲計數器的遞增的值,默認爲1。如:
counter-increment: n 2
counter-increment: n -1 /*遞減*/
複製代碼
那counter和counters有什麼不同呢?
counter方法能夠接收兩個參數。第一個是計數器的名字,必填;第二個是計數器的樣式,也就是list-style-type,其支持的關鍵字值,就是list-style-type支持的那些值,好比disc | circle | square之類等等。
content: counter(n)
content: counter(m, circle)
複製代碼
counters方法主要用於嵌套計數,能夠接收三個參數。第一個是計數器的名字,必填;第二個是字符串,用於嵌套計數的分隔符,如1.1中的「.」;第三個參數是計數器的樣式,與counter同樣。其中,前兩個參數爲必填
content: counters(n, '-');
複製代碼
說了這麼多,仍是查看示例吧
實在不得不感嘆css的博大精深!
以上爲我的學習總結,若有錯漏,歡迎指正。