CSS 偽元素

CSS 偽元素


CSS偽元素是用來加入一些選擇器的特殊效果。


語法

偽元素的語法:

selector:pseudo-element {property:value;}

CSS類別也可以使用偽元素:

selector.class:pseudo-element {property:value;}


:first-line 偽元素

"first-line" 偽元素用於為文字的首行設定特殊樣式。

在下面的範例中,瀏覽器會根據"first-line" 偽元素中的樣式對p 元素的第一行文字進行格式化:

          <!DOCTYPE html>
<html>
<head>
    <style>
        p:first-line
        {
            color:#ff0000;
            font-variant:small-caps;
        }
    </style>
</head>

<body>
<p>您可以使用:线伪元素添加特殊效果给第一行文本。</p>
</body>
</html>

執行程序試試


注意:"first-line" 偽元素只能用於區塊級元素。

注意:  下面的屬性可套用於"first-line" 偽元素:

  • font properties
  • color properties
  • background properties
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear

#:first-letter 偽元素

"first-letter" 偽元素用於向文字的首字母設定特殊樣式:

實例

     <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
p:first-letter 
{
	color:#ff0000;
	font-size:xx-large;
}
</style>
</head>

<body>
<p>You can use the :first-letter pseudo-element to add a special effect to the first character of a text!</p>
</body>
</html>

##執行程式嘗試


注意: "first-letter" 偽元素只能用於區塊級元素。

注意: 下面的屬性可套用於"first-letter" 偽元素: 

    font properties
  • color properties
  • background properties
  • margin properties
  • padding properties
  • border properties
  • text-decoration
  • vertical-align (only if "float" is "none")
  • text-transform
  • #line-height
  • float
  • clear

#偽元素與CSS類別

偽元素可以結合CSS類別: 

p.article:first-letter {color:#ff0000;}

<p class="article">A paragraph in an article</p>
上面的範例會使所有class 為article 的段落的首字母變成紅色。


Multiple Pseudo-elements

可以結合多個偽元素來使用。

在下面的例子中,段落的第一個字母將顯示為紅色,其字體大小為 xx-large。第一行中的其餘文字將為藍色,並以小型大寫字母顯示。

段落中的其餘文字將以預設字體大小和顏色來顯示:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
p:first-letter
{
	color:#ff0000;
	font-size:xx-large;
}
p:first-line 
{
	color:#0000ff;
	font-variant:small-caps;
}
</style>
</head>

<body>
<p>You can combine the :first-letter and :first-line pseudo-elements to add a special effect to the first letter and the first line of a text!</p>
</body>
</html>

執行程式嘗試

#

CSS - :before 偽元素

":before" 偽元素可以在元素的內容前面插入新內容。

下面的範例在每個<h1>元素前面插入一幅圖片:

#實例

       <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文网(php.cn)</title>
    <style>
        h1:before {content:url(https://img.php.cn/upload/course/000/000/006/5809800b44336872.jpg);}
    </style>
</head>

<body>
<h1>This is a heading</h1>
<p>The :before pseudo-element inserts content before an element.</p>
<h1>This is a heading</h1>
<p><b>注意:</b>仅当 !DOCTYPE 已经声明 IE8 支持这个内容属性</p>
</body>
</html>

運行程式嘗試一下


CSS - :after 偽元素

":after" 偽元素可以在元素的內容之後插入新內容。

下面的範例在每個<h1> 元素後面插入一幅圖片:

實例

       <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文网(php.cn)</title>
    <style>
        h1:after {content:url(https://img.php.cn/upload/course/000/000/006/5809800b44336872.jpg);}
    </style>
</head>

<body>
<h1>This is a heading</h1>
<p>The :after pseudo-element inserts content after an element.</p>
<h1>This is a heading</h1>
<p><b>注意:</b>仅当!DOCTYPE 已经声明 IE8支持这个内容属性.</p>
</body>
</html>

執行程式嘗試


所有CSS偽類別/元素

選擇器範例範例說明
#:linka:link選擇所有未造訪連結
:visiteda: visited選擇所有造訪過的連結
:activea:active選擇正在活動連結
:hovera:hover把滑鼠放在連結上的狀態
:focus input:focus選擇元素輸入後具有焦點
#:first-letterp:first-letter #選擇每個

元素的第一個字母

:first-linep:first-line#選擇每個

元素的第一行

:first-childp:first-child選擇器符合屬於任意元素的第一個子元素的<]p> 元素
:beforep:before在每個

元素之前插入內容

:afterp:after在每個

元素之後插入內容

:lang(language)#p:lang(it)

元素的lang屬性選擇一個開始值



#
繼續學習
||
<!DOCTYPE html> <html> <head> <style> p:first-line { color:#ff0000; font-variant:small-caps; } </style> </head> <body> <p>您可以使用:线伪元素添加特殊效果的第一行文本。</p> </body> </html>