搜尋
首頁web前端css教學什麼是css繼承

什麼是css繼承

Apr 02, 2021 pm 03:30 PM

繼承是一種規則,它允許樣式不僅套用於某個特定html標籤元素,還可套用於其後代元素。 CSS繼承是指設定父級的CSS樣式,父級及以下的子級元素都具有此屬性。 CSS繼承的作用:為父元素設定一些屬性,子元素也可以使用。

什麼是css繼承

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

CSS繼承

繼承是一種規則,它允許樣式不僅套用於某個特定html標籤元素,而且套用於其後代。

CSS繼承可定義為特定的css屬性向下傳遞到子孫元素,就是指被包在內部的標籤將擁有外部標籤的樣式,即子元素可以繼承父元素的屬性。

繼承性的作用:為父元素設定一些屬性,子元素也可以使用。

例如下面的程式碼,div包含2個p標籤,1個span標籤,當給div設定字體顏色為紅色時,他的子標籤會繼承父元素的屬性,因而會顯示紅色。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        div {
            color: red;
        }
    </style>
</head>
<body>
    <div>
        <p>苹果</p>
        <p>香蕉</p>
        <span>葡萄</span>
    </div>
</body>
</html>

什麼是css繼承

當然了,上述例子中我們的屬性是可以被繼承的,但是並不是所有屬性都可以被繼承的,那麼css有哪些屬性可以繼承呢?下面我們來總結一下。

css有哪些屬性可以繼承?

1、css中有繼承性的屬性之字體屬性中的:

font:字體。 font-family:規定元素的字體。 font-weight:設定字體的粗細。

font-size:設定字體的尺寸。 font-style:定義字體的風格。

font-variant:設定小型大寫字母的字體顯示文本,這意味著所有的小寫字母均會被轉換為大寫,但是所有使用小型大寫字體的字母與其余文本相比,其字體尺寸更小。

font-stretch:對目前的 font-family 進行伸縮變形。所有主流瀏覽器都不支援。

font-size-adjust:為某個元素規定一個 aspect 值,這樣就可以保持首選字體的 x-height。

2、css中有繼承性的屬性之文字屬性中的:

text-indent:文字縮排。 text-align:文字水平對齊。 line-height:行高。 word-spacing:增加或減少字間的空白(即字間隔)。

letter-spacing:增加或減少字元間的空白(字元間距)。 text-transform:控製文字大小寫。 direction:規定文本的書寫方向。

color:文字顏色

3、css中有繼承性的屬性之元素可見性:

visibility:規定元素是否可見。

4、css中有繼承性的屬性之表格版面屬性:

caption-side:設定表格標題的位置。 border-collapse:設定是否將表格邊框折為單一邊框。

border-spacing:設定分隔單元格邊框的距離。 empty-cells:設定是否顯示表格中的空白儲存格。

table-layout:設定顯示單元、行和列的演算法。

5、css中有繼承性的屬性之列表佈局屬性:

list-style-type:修改用於清單項目的標誌類型。 list-style-image:對各標誌使用一個影像。

list-style-position:可以確定標誌出現在清單項目內容之外還是內容內部。

list-style:簡寫列表樣式,用於把所有用於列表的屬性設定在一個聲明中。

6、css中有繼承性的屬性之生成內容屬性:

quotes:設定嵌套引用的引號類型。

7、css中有繼承性的屬性之遊標屬性:

cursor:規定要顯示的遊標的類型(形狀)

8、css中有繼承性的屬性之頁面樣式屬性:

page:規定元素應該被顯示的頁面特定類型。 page-break-inside:設定在表格元素內部避免進行分頁的分頁行為。

windows:設定當元素內部發生分頁時必須在頁面頂部保留的最少行數。

orphans:設定當元素內部發生分頁時必須在頁面底部保留的最少行數。

9、css中有繼承性的屬性之聲音樣式屬性

speak:設定或擷取聲音是否給定。 speak-punctuation:設定或檢索標點符號如何發音。

speak-numeral:設定或檢索數字如何發音。 speak-header:設定或檢索表格頭與其後面的一系列儲存格發生多少次關係。

speech-rate:設定或檢索發音速度。 volume:設定或檢索音量。

voice-family:設定或檢索目前聲音類型。 pitch:設定或檢索音高。

pitch-range:設定或檢索聲音的平滑程度。 stress:和pitch-range相似。設定或檢索目前聲音波形的最高峰值。

richness:设置或检索当前声音的音色。azimuth:设置或检索当前声音的音场角度。

elevation:设置或检索当前声音的音源仰角。

10、所有元素可以继承的属性:visibility、cursor

11、内联元素可以继承的属性:

(1)字体系列属性

(2)除text-indent、text-align之外的文本系列属性

12、块级元素可以继承的属性:text-indent、text-align

(学习视频分享:css视频教程

多种样式混合应用

既然有了继承性,那么在样式表中的应用上可能会有些读者搞不清,多个样式表同时应用到一个对象上会发生什么情形呢?先举个简单的例子:

 样式定义:

.apple{color:red;}H1{color:yellow;}

 应用举例代码:

<h1 id="这儿的苹果好红啊">这儿的苹果好红啊</h1>

应用举例效果:因为选择符H1和.apple都匹配上面的H1元素,那么到底浏览器会应用哪一个呢?通过在浏览器中观察,我们发现这段文字应用了.apple这个样式,所以它显示的是红色。这是因为两条规则的特殊性不一样,CSS规则必须这样进行处理。

样式表中的特殊性描述了不同规则的相对权重,它的基本规则是:

  • 统计选择符中的ID属性个数。 

  • 统计选择符中的CLASS属性个数。 

  • 统计选择符中的HTML标记名格式。 

最后,按正确的顺序写出三个数字,不要加空格或逗号,得到一个三位数。( 注意,你需要将数字转换成一个以三个数字结尾的更大的数)。相应于选择符的最终数字列表可以很容易确定较高数字特性凌驾于较低数字的。

以下是一个按特性分类的选择符的列表:

H1 {color:blue;}                        特性值为:001
P EM {color:purple;}                    特性值为:002
.apple {red;}                           特性值为:010 
P.bright {color:yellow;}                特性值为:011
P.bright EM.dark {color:brown;}         特性值为:022
#id316 {color:yellow}                   特性值为:100

从上表我们可以看出#id316具有更高的特殊性,因而它有更高的权重。当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。

CSS继承的优先级问题

上面我们讨论了CSS的继承性和特殊性,在特殊性的框架下,被继承的特性值为0,这就意味着任何显示声明的规则将会覆盖其继承样式。因此,不管一条规则具有多高的权重,如果没有其他规则能应用于这个继承元素,那么它也只是个被继承的规则而已,举例说明。

样式定义:

BODY {background:black;}
LI {color:gray;}
UL.white {color:white}

应用举例代码:

<ul>
  <li>举例列表一</li>
  <li>举例列表二</li>
  <li>举例列表三</li>
  <li>举例列表四</li>
</ul>

有些读者可能认为除包含.white类的列表项显示为白色外,其余所有的列表项都应该是灰色的。然而情况并非如此。

 为什么会出现这样的情况呢?因为带选择符LI的显式声明的权值比从UL.white规则那里继承过来的权值要大,所以每个列表项都是灰色的。

 可能有些地方不是很好理解,大家多思考一下就会明白,平时在应用样式表的时候多留意思考一下。

 下面我们再来看一个例子,若给定如下所示的标记,则EM强调文字将会是灰色的,而非黑色,因为EM规则的权值要大于从H1元素继承来的权值:

样式定义: 

H1#id316 {color:black;}                 特性值为:101
EM {color:gray;}                        特性值为:1

应用举例代码:

<h1 id="深入探讨-EM-CSS的继承性-EM">深入探讨<EM>CSS的继承性</EM></h1>

这是因为第二条EM规则的特性值(1)要比被继承的特性值(0)要大,事实上规定H1#id316的原始特性值(101)对其继承值没有影响,仍旧为0。

小技巧:

如果想让H1始终为黑色,而EM文字在其他情况下红色,那么下面的样式表设置就是一个很好的方法:

H1,H1 EM {color:black;}             特性值为:1,2
EM {color:red;}                      特性值为:1

给定这个规则后,除在H1元素内的任何EM文字就都是红色,而H1内的EM文字仍旧为黑色,由于其选择符分组,在第一条规则中就有两条有效的规则(一条是对H1的,另一条是对H1 EM的)也就有两个特性值——每条规则一个。

上面我们讨论了多个样式规则同时应用于同一对象时,哪个规则会被最终应用的一些情况,可能有些细心的读者会说,那STYLE元素呢?对啊,HTML代码中可以直接应用内联样式STYLE的嘛。那么它的特性值如何呢?

回答是这样的:带有STYLE的元素在CSS1下其特性值为100,尽管类似于#ID316这样的ID选择符的特性值也为100,但在实际应用中,STYLE这一权值会更高一些,因为STYLE元素的值看起来要比多数普通规则的权值大。所以我们可以看出内联样式具有高的特性值,具体的例子我们就不举了,大家可以自己试试。

人为定义CSS继承优先级

在制作网页的过程中,我们可能想要设置某个规则比其他的规则更重要,CSS中允许这样设置,它们被称为重要规则(important rule)。这是根据其声明的方式和它们的自然属性来命名的。通过在一条规则的分号前插入!important这样一个短语来标记一条重要规则,比如说:

p.apple {color:#red !important; background:white;}

颜色值#red被标记为!important,而背景色white未被标记,如果需要二条规则都是重要的话,那么每条规则都需要标上!important。

正确地放置!important的位置是很重要的,否则整条规则将为无效。!important总是放在规则声明的最后,在分号之前。

标记为!important的规则具有最高的权值,也就是说他没有具体的特性值,但是比其他的权值都要大。需要注意的是,虽然制作者定义的样式比用户定义的样式具有更高权值时,但!important规则恰恰相反:重要的用户定义规则要比制作者定义的样式具有更高权值,即使是标记为!important的重要规则也是如此。

看了这么多文字介绍后,我们来举个例子看一下:

样式定义:

h1 {color:gray !important;}

应用举例代码:

<h1 id="看这儿">看这儿!</h1>

应用举例效果:

!important规则会覆盖内联STYLE属性的内容,所以结果文字是灰色的而不是黑色的。

还有最后一种需要考虑的情况:继承值总是具有特性值0的特点,即使是从带有!important的规则继承的值也是如此,在匹配重要规则的元素之外,重要性也会随之消失,这点是需要我们特别注意的!

更多编程相关知识,请访问:编程视频!!

以上是什麼是css繼承的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
@rules具有多少特異性,例如@keyframes和@media?@rules具有多少特異性,例如@keyframes和@media?Apr 18, 2025 am 11:34 AM

前幾天我得到了這個問題。我的第一個想法是:奇怪的問題!特異性是關於選擇者的,而在符號不是選擇器,那麼...無關緊要?

您可以嵌套@Media和@support查詢嗎?您可以嵌套@Media和@support查詢嗎?Apr 18, 2025 am 11:32 AM

是的,您可以,而且它並不重要。不需要CSS預處理器。它在常規CSS中起作用。

快速吞噬緩存破壞快速吞噬緩存破壞Apr 18, 2025 am 11:23 AM

您應該肯定會在CSS和JavaScript(以及圖像和字體以及其他內容)等資產上設置遙遠的高速緩存標頭。告訴瀏覽器

尋找可以監視CSS質量和復雜性的堆棧尋找可以監視CSS質量和復雜性的堆棧Apr 18, 2025 am 11:22 AM

許多開發人員寫瞭如何維護CSS代碼庫的文章,但並沒有很多關於如何測量該代碼庫質量的文章。當然,我們有

數據學家用於建議不執行值的值數據學家用於建議不執行值的值Apr 18, 2025 am 11:08 AM

您是否曾經有一種需要接受簡短而任意的文本的表格?喜歡名字或其他。那完全是用的。有很多

蘇黎世的最初會議蘇黎世的最初會議Apr 18, 2025 am 11:03 AM

我很高興能前往瑞士蘇黎世參加前界(Love the Name and URL!)。我以前從未去過瑞士,所以我很興奮

使用CloudFlare工人建立全棧無服務器應用程序使用CloudFlare工人建立全棧無服務器應用程序Apr 18, 2025 am 10:58 AM

我在軟件開發方面最喜歡的發展之一是無服務器的出現。作為一個傾向於陷入細節的開發人員

在NUXT應用程序中創建動態路由在NUXT應用程序中創建動態路由Apr 18, 2025 am 10:53 AM

在這篇文章中,我們將使用我構建和部署的電子商務商店演示來進行Netlify,以展示如何為傳入數據製作動態路線。這是一個公平的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器