替換元素的概念及計算規(guī)則
通過修改某個屬性值呈現(xiàn)的內(nèi)容就可以被替換的元素就稱為“替換元素”。
替換元素除了內(nèi)容可替換這一特性以外,還有以下特性:
1.內(nèi)容的外觀不受頁面上的 CSS 的影響:用專業(yè)的話講就是在樣式表現(xiàn)在 CSS 作用域之外。如何更改替換元素本身的外觀需要類似 appearance 屬性,或者瀏覽器自身暴露的一些樣式接口。
2.有自己的尺寸:在 Web 中,很多替換元素在沒有明確尺寸設定的情況下,其默認的尺寸(不包括邊框)是 300 像素 ×150 像素,如
在很多 CSS 屬性上有自己的一套表現(xiàn)規(guī)則:比較具有代表性的就是 vertical-align 屬性,對于替換元素和非替換元素,vertical-align 屬性值的解釋是不一樣的。比方說 vertical-align 的默認值的 baseline,很簡單的屬性值,基線之意,被定義為字符 x 的下邊緣,而替換元素的基線卻被硬生生定義成了元素的下邊緣。
所有的替換元素都是內(nèi)聯(lián)水平元素:也就是替換元素和替換元素、替換元素和文字都是可以在一行顯示的。但是,替換元素默認的 display 值卻是不一樣的,有的是 inline,有的是 inline-block。
替換元素的尺寸從內(nèi)而外分為三類:
1.固有尺寸: 指的是替換內(nèi)容原本的尺寸。例如,圖片、視頻作為一個獨立文件存在的時候,都是有著自己的寬度和高度的。
2.HTML 尺寸: 只能通過 HTML 原生屬性改變,這些 HTML 原生屬性包括的 width 和 height 屬性、的 size 屬性。
3.CSS 尺寸: 特指可以通過 CSS 的 width 和 height 或者 max-width/min-width 和 max-height/min-height 設置的尺寸,對應盒尺寸中的 content box。
這三層結(jié)構(gòu)的計算規(guī)則具體如下: (1)如果沒有 CSS 尺寸和 HTML 尺寸,則使用固有尺寸作為最終的寬高。 (2)如果沒有 CSS 尺寸,則使用 HTML 尺寸作為最終的寬高。 (3)如果有 CSS 尺寸,則最終尺寸由 CSS 屬性決定。 (4)如果“固有尺寸”含有固有的寬高比例,同時僅設置了寬度或僅設置了高度,則元素依然按照固有的寬高比例顯示。 (5)如果上面的條件都不符合,則最終寬度表現(xiàn)為 300 像素,高度為 150 像素。 (6)內(nèi)聯(lián)替換元素和塊級替換元素使用上面同一套尺寸計算規(guī)則。