1. 程式人生 > >為什麼有的行內元素可以設定寬高

為什麼有的行內元素可以設定寬高

今天偶爾在做一個錨點連線的時候,發現一個a元素是0x0的放在頁面。當然這樣做也是有目的的,不讓其看出頁面這個位置有什麼。

就好奇心的設定它的寬高,結果發現沒什麼用,只有轉化為塊元素才能起效。雖然這是一個剛開始工作時就知道的一些知識點,但是我當時就以為簡單就沒有去深入看看這些。現在遇到感覺挺神奇,所以就參考一些資料寫下這篇部落格。

html中有一類元素比較特殊,雖然他們屬於行內元素,但是他們是可以設定寬高的,如img|input|select|textarea|button|label等,他們被稱為可置換元素(Replaced element)。他們區別一般inline元素(相對而言,稱non-replaced element)是:這些元素擁有內在尺寸(intrinsic dimensions),他們可以設定width/height屬性。他們的性質同設定了display:inline-block的元素一致。

或許有朋友對非置換元素(non-replaced element)有點疑惑,稍微幫助大家理解一下。非置換元素,W3C 中沒有給出明確的定義,但我們從字面可以理解到,非置換元素對應著置換元素(replaced element),也就是說我們搞懂了置換元素的含義,就懂了非置換元素。置換元素,W3C中給出了定義:

    “An element that is outside the scope of the CSS formatter, such as an image, embedded document, or applet”

從定義中我們可以理解到,置換元素(replaced element)主要是指 img, input, textarea, select, object 等這類預設就有 CSS 格式化外表範圍的元素。進而可知,非置換元素(non-replaced element)就是除了 img, input, textarea, select, object 等置換元素以外的元素。

寫完也算是記錄一下,有些知識看似簡單,其實還是有很多道理在裡面的。參考部落格:點選開啟連結