
面試官問你<img>
是什么元素時你怎么回答
寫這篇文章源自我之前的一次面試,題目便是問img標簽屬於塊級元素還是行內元素,當時想都沒想就說了是行內(inline)元素,面試官追問為什么能夠設置
<img />
標簽的寬和高,當時腦子突然一懵,發現這是自己技術上的一個空白,所以有了這篇文章。
閱讀本文您將收獲
<img />
標簽的基本使用- MDN關於元素的定義
- 特殊的可替換元素
<img />
標簽的基本使用
瀏覽器支持
- 所有主流瀏覽器都支持
<img>
標簽
標簽定義及使用說明
<img>
標簽定義 HTML 頁面中的圖像<img>
標簽有兩個必需的屬性:src 和 alt- 強烈推薦在開發中每個圖像中都使用 alt 屬性。這樣即使圖像無法顯示,用戶還是可以看到關於丟失了什么東西的一些信息。而且對於殘疾人來說,alt 屬性通常是他們了解圖像內容的唯一方式
<img />
究竟是什么元素
<img />
是行內元素還是塊級元素?
<img />
標簽沒有獨占一行,所以是行內元素,這沒啥問題
既然是行內元素為什么能夠設置寬高呢?
- 這個問題就要引申出下面部分了,
<img />
標簽屬於替換元素,具有內置的寬高屬性,所以可以設置,具體解釋看下面。
元素的定義
從元素本身的特點來講,可以分為不可替換元素和替換元素
元素相關的MDN解釋
不可替換元素
(X)HTML
的大多數元素是不可替換元素,即其內容直接表現給用戶端(例如瀏覽器)- 如:
<h1>我是標題</h1>
可替換元素
- 瀏覽器根據元素的標簽和屬性,來決定元素的具體顯示內容
- 例如瀏覽器會根據
<img>
標簽的src屬性的值來讀取圖片信息並顯示出來,而如果查看(X)HTML代碼,則看不到圖片的實際內容;又例如根據<input>
標簽的type屬性來決定是顯示輸入框,還是單選按鈕等 - (X)HTML中的
<img>、<input>、<textarea>、<select>、<object>
都是替換元素。這些元素往往沒有實際的內容,即是一個空元素 - 如:
<img src="tigger.jpg"/>
、<input type="submit" name="Submit" value="提交"/>
- 可替換元素的性質同設置了display:inline-block的元素一致
特殊的可替換元素
<img>
屬於可替換元素<img>
同時具有行內元素,行內塊,和塊級元素的特性- 替換元素一般有內在尺寸,所以具有
width
和height
,可以設定- 例如你不指定
<img>
的width
和height
時,就按其內在尺寸顯示,也就是圖片被保存的時候的寬度和高度
- 例如你不指定
- 對於表單元素,瀏覽器也有默認的樣式,包括寬度和高度
<img>、<input>
屬於行內替換元素。height/width/padding/margin
均可用。效果等於塊元素
寫在最后
-
如果你覺得這篇文章對你有益,煩請點贊以及分享給更多需要的人!
-
歡迎關注微信公眾號【全棧道路】,獲取更多科技相關知識及免費書籍。