上一篇說了替換元素和非替換元素,接著這篇想要整理和比較inline-block、inline和block。
定義
inline-block:
inline-block 結合了 inline 和 block 元素的特性。它既能在同一行內排列,但同時也有 block 元素的盒模型屬性,例如可以設定寬度和高度。
inline:
inline 元素通常不會自動斷行,它們會縮小以容納內容,直到不再能夠容納為止,然後換行。這些元素的寬度預設為其內容的寬度,高度通常由內容的字體大小和行高確定。常見的 inline 元素包括 a、span 和 **strong**等。
block:
block 通常會自動斷行,每個 block 元素都會開始新的一行。這些元素的寬度默認為父元素的整個寬度,高度可以自動根據內容調整,或者可以設置固定高度。常見的 block 元素包括 div、**p**和 h1。
inline-block和block的差異
斷行(效果見附圖):
block:會自動斷行,每個 block 元素都會開始新的一行。inline-block:不會自動斷行,它們可以在同一行上排列,直到滿足容器的寬度,然後才會換行。

寬度和高度:
block:寬度默認為父元素的整個寬度,高度可以自動根據內容調整,或者可以設置固定高度。inline-block:寬度默認為其內容所需的寬度,高度可以自動根據內容調整,或也可以設置固定高度。元素間空白處理:
block:block 元素之間通常存在一個新行(它們之間有個預設的垂直空間)。inline-block:inline-block 元素之間不會自動插入新行,它們之間的空間取決於父元素的字間距(letter-spacing)和單詞間距(word-spacing)等 CSS 屬性。inline-block和inline的差異
inline:不會自動斷行,它們會縮小以容納內容,直到不再能夠容納為止,然後換行。inline-block:不會自動斷行,它們可以在同一行上排列,直到不再能夠容納為止,然後換行。inline:寬度預設為其內容的寬度,高度通常由內容的字體大小和行高確定。inline-block:元素的寬度和高度可以自行設定為固定值,也可以根據內容自動調整。inline:inline 元素的上下邊距 margin 和 padding 會影響其他元素的垂直排列,但不會影響水平排列。inline-block:inline-block 元素的邊距和填充會影響其他元素的垂直和水平排列。以上範例codepen:https://codepen.io/rochelwang1205/pen/GRPMKpP
參考資料: