80%的前端會答錯的問題:是什么元素?

2021-02-19 web前端學習圈

前言

某天晚上,和幾個朋友去擼串,突然就聊到了面試,都在感嘆現在的面試題太變態了,其中一個突然很神秘的問我:「你寫前端這麼久了,那你知道 <img> 是什么元素嗎?」

於是我結合平時寫頁面的經驗,脫口答道:「應該是內聯元素吧。」但說出來就後悔了,因為肯定沒那麼簡單。

果然,他像「非洲大山」穆託姆博那樣對我搖了搖指頭。

於是我回去就查了一下,發現答案還不是那麼明朗,以下是百度和谷歌的結果:

但通過圖中可以發現,都提到了一個詞:替換。於是我去了更權威的 MDN web docs,尋找替換元素 的定義。


正文什麼是可替換元素?

在 CSS 中,可替換元素(replaced element)的展現效果不是由 CSS 來控制的。這些元素是一種外部對象,它們外觀的渲染,是獨立於 CSS 的。

簡單來說,它們的內容不受當前文檔的樣式的影響。CSS 可以影響可替換元素的位置,但不會影響到可替換元素自身的內容。某些可替換元素,例如 <iframe> 元素,可能具有自己的樣式表,但它們不會繼承父文檔的樣式。

其他的可替換元素1. 典型的可替換元素

<iframe>

<video>

<embed>

<img>

2. 僅在特定情況下被作為可替換元素處理

<option>

<audio>

<canvas>

<object>

<applet>

3. 特殊的 <input>

HTML 規範說明了 <input> 元素可替換,因為 "image" 類型的 <input> 元素就像 <img> 一樣被替換。但是其他形式的控制元素,包括其他類型的 <input> 元素,被明確地列為非可替換元素(non-replaced elements)。

4. CSS 屬性中的 content

用 CSS content 屬性插入的對象是匿名的可替換元素。它們並不存在於 HTML 標記中,因此是「匿名的」。

標籤 <img> 的權威定義

這裡還是要引用 MDN 的解釋:

<img> 是一個可替換元素。它的 display 屬性的默認值是 inline,但是它的默認解析度是由被嵌入的圖片的原始寬高來確定的,使得它就像 inline-block 一樣。你可以為  設置 border/border-radius、padding/margin、width、height 等等的 CSS 屬性。

<img> 沒有基線(baseline),這意味著,當在一個行內格式的上下文(an inline formatting context)中使用 vertical-align: baseline 時,圖像的底部將會與容器的文字基線對齊。

CSS 在某些情況下會對可替換元素做一些特殊處理,比如計算外邊距(margin)和一些 auto 的具體值。這就是為什麼插入圖片的時候,還同時需要設置一些 CSS 屬性,否則總會出現一些你意料之外的表現。


結尾

在起標題的時候很糾結,因為也許會有很多讀者能回答上來,或許是我孤陋寡聞了。但我問了幾個(前)同事、朋友,他們都沒有很完整的回答出來,所以最後還是決定使用這個標題,畢竟符合「二八定律」,如果有標題黨的嫌疑,還請各位見諒。

但是,寫頁面這麼久,包括平時的交流中,還真沒深入討論過這個問題,也可能是看某本書時提到過,但印象不深吧,直到被當做面試題來問。

這裡再次暴露了一個現象級問題:面試到底應該問什麼?

「面試造火箭,進去切圖片」是近年前端面試的痛點,甚至去年面試過一家,筆試題裡面居然有軟體工程題和項目管理題,然後面試官還各種裝X,說他很看中基礎,公司是某個集團旗下的子公司,然後就他不知道哪個網站 copy 的智商題大談自己的理解(好像是什麼獨木橋、兩個手電筒,幾個人,每個人過橋時間不一樣,沒有光照就 GG,求最佳過橋策略)。然後我心想:「我就是來面試前端的,跟我扯那麼多有的沒的是在幹啥?還扯到項目管理,到底是招程式設計師還是招項目經理?」環顧四周,其實也就是個工廠改造的創業基地,面試的地方還堆了各種雜物……真是廟小妖風大,池淺王八多,拜拜您吶。

個人覺得,如果是招聘有經驗的開發崗,應該多問問項目經驗以及遇到問題的解決思路,這種沒法靠背面試題來忽悠,而不是翻故紙堆,問「回」字有幾種寫法這種「孔乙己」式問題。

這類問題,看過就知道,沒看就不知道,對項目的幫助微乎其微,除非面試的是架構師、算法崗這類需要很深的理論研究的。但據我觀察,市場上絕大多數的前端,招進來就是寫頁面(除了大廠),而且在團隊中也是很卑微的存在,重要性遠比不上後端(這就是現狀,因為很多領導、總監都是後端出身,對前端不那麼重視)。

所以,面試的時候,少一些套路,多一些真誠不好嗎?

最後,還是要引用一下 Linus 大神的名言:「屁話少說,放碼過來。

我是布拉德特皮,一個只能大器晚成的落魄前端

源自:https://juejin.im/post/5e25491f51882536c964ef2f

聲明:文章著作權歸作者所有,如有侵權,請聯繫小編刪除。

相關焦點

  • Web前端面試官會問什麼,不懂性能優化的前端不是好前端
    一般來說,HR面試官會拋出的問題主要有以下這些:1、進行一下自我介紹;2、簡單說一下對面試公司的了解;3、談一下對應聘崗位的看法;4、針對崗位,簡單考察一下求職者的崗位技能;5、談一下上份工作職責內容及工作結果;6、說一下目前薪資要求;7、談一下離開上家公司原因以上關於HR問的問題結束以後
  • 前端面試題(理論知識+HTML+CSS+JavaScript)襲來,請接招!【附答案】
    針對伺服器的優化、擁抱最新前端技術。1.18、你在現在的團隊處於什麼樣的角色,起到了什麼明顯的作用?1.19、你的優點是什麼?缺點是什麼?1.20、如何管理前端團隊?1.21、最近在學什麼?能談談你未來3,5年給自己的規劃嗎?1.22、平時如何管理你的項目?a.
  • 前端工作面試經典問題(超級全)
    本文包含了一些用於考查候選者的前端面試問題。不建議對單個候選者問及每個問題 (那需要好幾個小時)。
  • 2019 前端面試題匯總(主要為 Vue)
    因此當Model中的數據改變時會觸發View層的刷新,View中由於用戶交互操作而改變的數據也會在Model中同步。這種模式實現了Model和View的數據自動同步,因此開發者只需要專注對數據的維護操作即可,而不需要自己操作dom。2. Vue 有哪些指令?v-html、v-show、v-if、v-for等等。3. v-if 和 v-show 有什麼區別?
  • 詳細的網易前端秘籍—如何準備面試
    第二階段---美工階段,這個時候就有專門的人來前端代碼了,這個階段的布局主要是DIV+CSS布局,但是呢有一個問題,就是不夠語義化。第三個階段-->> 前端階段,也就是利用具有語義的標籤,比如p,h1,h2,article,header,nav,main,aside,footer這些標籤,使用這些正確的標籤,可以表達正確的內容,也利於開發和維護。
  • 面試問答24|答題時發現自己答錯了怎麼處理比較好?
    那麼這樣的話呢,也就相當於如果答錯了,要不要從來呢?我覺得還是儘量分情況來,一個情況就是如果你發現自己答錯了,而且這個錯是比較嚴重的,甚至是原則性的,然後呢?也會影響你後面進一步答題的,那我如果覺得是這種情況的話呢?
  • 前端新手教程!如何快速入門web前端
    最近收到一些的私信問我,自己想要學習前端,該如何學習?學習到什麼程度才可以工作?
  • 學歷低參加Web前端培訓,靠什麼和別人競爭?
    現在很多想要入行IT的小夥伴都開始學習IT開發技術,Web前端作為IT
  • 這個Github項目,搞定前端開發所有React 面試題
    重磅乾貨,第一時間送達隨著JQuery的逐漸衰落離場,如今的前端開發框架界前三已被:Vue,React,Angular 牢牢佔據,Vue,React,Angular三巨頭也是我們前端開發工程師必須要學習的內容之一,三大前端框架相關問題在面試中常常會著重被面試官提問到。
  • 11 - 前端開發 - CSS 選擇器
    div~p 選擇 div 元素後面的所有兄弟元素 p屬性選擇器[attribute] 選擇具有attribute屬性的元素。[attribute=value] 選擇具有 attribute 屬性且屬性值等於 value 的元素。[attribute~=value] 選擇具有 attribute 屬性且屬性值為一用空格分隔的字詞表,其中一個等於 value 的元素。
  • 求職 | 一篇非常不錯的前端面試文章
    下面是作者理出的一個思路:如果對方有github帳號,我們會儘可能的去了解TA在開源項目上的動態和他的開源項目。我們也會從中挑出一些切入點,通過交流他做這個項目的出發點也能夠更好的了解面試者的設計思路,也可以初步的去判斷該人是不是適合團隊。如果雙方交流順暢,接下來會直接進行到代碼等一些基礎問題上來。
  • 成功面試八部曲:解決你80%的面試問題
    什麼是「面試的本質?」「怎樣應對,才能讓面試回答更有力,佔據先機?」常言道:百聞不如一「見」。面試,作為一種人才測評工具,我們每一位職場人都不陌生。隨著人力資源管理的日趨專業化,面試的理論和方法都在不斷發展,具體表現在:面試形式的豐富性,面試測評的多樣性、面試問題的彈性化與面試考官的專業性。從2019年開始,求職市場的競爭激烈性與大廠名企的「一言難進」就更為凸顯,加之疫情席捲,可謂雪上加霜。
  • Excel中的"萬能函數",解決工作中80%的常見問題
    ,比如第一個區域選擇了6個單元格,第二個區域也必須選擇6個單元格,否則會返回錯誤值參數圖如下參數這麼單一,具體怎麼用呢,讓我來實際操作下,如下圖要求總銷售額Sumproduct函數中的參數分別是單價列和售出列,我們可以看作是對應元素相乘之後再求和。
  • 一個合格的前端工程師簡歷應該是怎樣的
    >九成的前端簡歷裡的「技能」部分幾乎都是一樣的,都差不多把前端用到的技術羅列一遍,這些單純的羅列只會顯得冗長沒有邏輯,可信度也大大降低。簡歷一定要讓不懂前端的HR看得懂!!!簡歷一定要讓不懂前端的HR看得懂!!!簡歷一定要讓不懂前端的HR看得懂!!!
  • 90個前端開發面試必問基礎大總結
    什麼是回流(重排),什麼情況下會觸發回流•當元素的尺寸或者位置發生了變化,就需要重新計算渲染樹,這就是回流•DOM元素的幾何屬性(width/height/padding/margin/border)發生變化時會觸發回流•DOM元素移動或增加會觸發回流•讀寫offset/scroll/client等屬性時會觸發回流•調用window.getComputedStyle會觸發回流4.
  • 一場感覺身體被掏空的前端面試
    來自領英獵頭的勾搭當然,機會偶爾也會光顧沒有什麼準備的人,比如說我。去年底,正當我困頓在「前端疲勞 」的苦海裡不能自拔的時候,無意間收到了一封來自領英獵頭的站內信,標題很醒目:「Shawn(我的英文名)+LinkedIn = Magic!
  • 2021新一輪的前端面試題
    不知道今年是什麼原因,感覺春招來的特別早,本周一趕剛開始上班就有一大批的簡歷來襲,競爭激烈的面試也就此展開了。在此之際,為了能幫助大家找到一個理想的工作,我們在此開始會連續的發一段時間的面試題。在時間比較充裕時候也會發一些面試技巧和面試心得之類的,現在這些公眾號裡已經都有了,雖然是去年的但是「換湯不換藥」,說不定也有能幫助到你的。話不多說,先來看下本期的前端面試題匯總吧!
  • 前端工程師的工資有多少,你真的了解嗎?
    就目前來說,WEB前端工程師的整體趨勢是越來越好的,近些年來,前端技術發展越來越快,前端工程師的技術能力也越來越被認可,不再是被調侃的對象!個人能力這一點恐怕不用我說了吧,你能做什麼事拿多少錢,肯定是你的能力起重要作用!都做一樣的事,你做的更漂亮;別人做不了的事,你能做;別人遇到問題,你能快速幫別人解決。
  • Python工程師比前端工程師更好招?
    實話實說,Python工程師的招聘並不容易,相對於其他主流語言來說。原因大家也都知道,一是崗位少,所謂坑少,蘿蔔就少,也不是沒有道理;二是從學校的教育來說Python大部分計算機專業的畢業生可能都沒聽過,更別說會用了,因此也沒人學習,並且靠這個吃飯。不過現在情況似乎不同了,隨著機器學習之風吹來,將易學、易用、具有豐富庫(機器學習相關)的Python吹到了主流的位置。
  • 6 年前端遭遇職業瓶頸,加班有用嗎?
    01加班真的能解決問題?在前端圈摸爬滾打了十年,見過很多人進來,也送過很多人離開,大家也挺不容易的。前幾天在一個前端交流群裡,看到兩個小夥伴聊到了工作瓶頸,就讓我感觸很深。平時遇到問題的時候,大家都會開玩笑地說「這個問題不難解決,加個班就好了」。