例
以下示例將在每個鏈接后的括號內加上網址:
a:after
{
content: " (" attr(href) ")";
}
屬性定義及使用說明
ontent 屬性與 :before 及 :after 偽元素配合使用,來插入生成內容。
默認值: | normal |
---|---|
繼承: | no |
版本: | CSS2 |
JavaScript 語法: | object.style.content="url(beep.wav)" |
瀏覽器支持
所有主流瀏覽器都支持Content屬性。
注意: IE8只有指定!DOCTYPE才支持Content屬性。
Content屬性值
值 | 說明 |
---|---|
none | 設置Content,如果指定成Nothing |
normal | 設置content,如果指定的話,正常,默認是"none"(該是nothing) |
counter | 設定計數器內容 |
attr(attribute) | 設置Content作為選擇器的屬性之一。 |
string | 設置Content到你指定的文本 |
open-quote | 設置Content是開口引號 |
close-quote | 設置Content是閉合引號 |
no-open-quote | 如果指定,移除內容的開始引號 |
no-close-quote | 如果指定,移除內容的閉合引號 |
url(url) | 設置某種媒體(圖像,聲音,視頻等內容) |
inherit | 指定的content屬性的值,應該從父元素繼承 |
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
ss3中出現了 ":before",":after"偽類,
你可以這樣寫:
h1:after{
content:'h1后插入的文本';
...}
這兩個選擇器的作用以及效果,這里就不在介紹了;主要說一下上面提到的一個css屬性【content】用來和:after及:before偽元素一起使用,在對象前或后顯示內容。
content的取值:
normal:默認值。表現與none值相同
none:不生成任何值。<attr>:插入標簽屬性值<url>:使用指定的絕對或相對地址插入一個外部資源(圖像,聲頻,視頻或瀏覽器支持的其他任何資源)<string>:插入字符串
counter(name):使用已命名的計數器
counter(name,list-style-type):使用已命名的計數器并遵從指定的list-style-type屬性
counters(name,string):使用所有已命名的計數器
counters(name,string,list-style-type):使用所有已命名的計數器并遵從指定的list-style-type屬性
no-close-quote:并不插入quotes屬性的后標記。但增加其嵌套級別
no-open-quote:并不插入quotes屬性的前標記。但減少其嵌套級別
close-quote:插入quotes屬性的后標記
open-quote:插入quotes屬性的前標記
這里比較不好理解的取值就是:counter(name)這些;
下面主要總結一下這塊,最后會給出各個取值的demo,
比如我有如下html結構:
<ul>
<li>這個是有序列表</li>
<li>這個是有序列表</li>
<li>這個是有序列表</li>
<li>這個是有序列表</li>
<li>這個是有序列表</li></ul>
我要在每個li的后面加上當前li【index】值:
ul li{
counter-increment:index;
}
ul li:after{
content:'統計:'counter(index);
display:block;
line-height:35px;
}
解釋:
count(name)這里的name,必須要提前指定好,否則所有的值都將是0;
count(name,list-style-type)這里的list-style-type就是css中list-style-type屬性的取值;
下面給出完整DEMO
<!DOCTYPE html><html><head><meta charset="utf-8"><title>CSS content</title><meta name="author" content="phpstudy.net"><meta name="copyright" content="www.phpstudy.net"><style>
.string p:after {
margin-left: -16px;
background: #fff;
content: "支持";
color: #f00;}
.attr p:after {
content: attr(title);}
.url p:before {
content: url(https://pic.cnblogs.com/avatar/779447/20160817152433.png);
display: block;}
.test ol {
margin: 16px 0;
padding: 0;
list-style: none;}
.counter1 li {
counter-increment: testname;}
.counter1 li:before {
content: counter(testname)":";
color: #f00;
font-family: georgia,serif,sans-serif;}
.counter2 li {
counter-increment: testname2;}
.counter2 li:before {
content: counter(testname2,lower-roman)":";
color: #f00;
font-family: georgia,serif,sans-serif;}
.counter3 ol ol {
margin: 0 0 0 28px;}
.counter3 li {
padding: 2px 0;
counter-increment: testname3;}
.counter3 li:before {
content: counter(testname3,float)":";
color: #f00;
font-family: georgia,serif,sans-serif;}
.counter3 li li {
counter-increment: testname4;}
.counter3 li li:before {
content: counter(testname3,decimal)"."counter(testname4,decimal)":";}
.counter3 li li li {
counter-increment: testname5;}
.counter3 li li li:before {
content: counter(testname3,decimal)"."counter(testname4,decimal)"."counter(testname5,decimal)":";}</style></head><body><ul>
<li>
<strong>string:</strong>
<p>你的瀏覽器是否支持content屬性:否</p>
</li>
<li>
<strong>attr:</strong>
<p title="如果你看到我則說明你目前使用的瀏覽器支持content屬性"></p>
</li>
<li>
<strong>url():</strong>
<p>如果你看到我的頭像圖片則說明你目前使用的瀏覽器支持content屬性</p>
</li>
<li>
<strong>counter(name):</strong>
<ol>
<li>列表項</li>
<li>列表項</li>
<li>列表項</li>
</ol>
</li>
<li>
<strong>counter(name,list-style-type):</strong>
<ol>
<li>列表項</li>
<li>列表項</li>
<li>列表項</li>
</ol>
</li>
<li>
<strong>counter(name)拓展應用:</strong>
<ol>
<li>列表項
<ol>
<li>列表項
<ol>
<li>列表項</li>
<li>列表項</li>
</ol>
</li>
<li>列表項</li>
</ol>
</li>
<li>列表項
<ol>
<li>列表項</li>
<li>列表項</li>
</ol>
</li>
<li>列表項
<ol>
<li>列表項</li>
<li>列表項</li>
</ol>
</li>
</ol>
</li></ul></body></html>
content和attr屬性用的不是很多,但是它們能在頁面下面悄悄的使用CSS來生成內容,下面讓我們看看content和attr的用法相互配合產生神奇效果的
基本content用法
content屬性能讓程序員使用CSS往頁面元素里填寫內容:
.myDiv:after { content: "我是一個使用*content*屬性生產的靜態文字"; }
注意,如果想讓偽元素:after絕對定位,必須對div設置position:relative
content和attr配合使用
content使用attr來從頁面元素中動態的獲取內容:
attr屬性通常和自定義屬性data-配合使用,因為傳統的其它屬性雖然也能存值,但通常不適合存放表達性文字。
content里的字符串連接操作
還需要用JS里的字符串嗎?答案是不需要了,CSS3里就能完成這些,是不是很神奇!attr的動態生成頁面內容的能力著實是一件讓人興奮的事情。實際上可以用它配合content對頁面的很多其他元素和屬性進行操作。
切版 qieban(.cn)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。