首頁 > 娛樂

一文分析前端面試中的圖片懶載入問題,快來看看吧~

由 小白前端圈 發表于 娛樂2023-01-09

簡介兩者區別如下:src:全稱_source_,它通常用於img、video、audio、script元素,透過src指向請求外部資源的來源地址,指向的內容會嵌入到文件中當前標籤所在位置,在請求src資源時,它會將資源下載並應用到文件內,比如說

html由什麼解釋執行

嗨!大家好!我是前端小白,一隻治療系前端碼猿,小白學前端,從這開始,和我一起與程式碼對話,傾聽它們心底的呼聲,期待著大家的點贊與關注➕,我們一起學前端吧。

最近整理了一些前端高頻面試題,分享給大家,如有問題歡迎留言指正,面試專欄我會長期更新,歡迎大家點贊、收藏,感謝!

一文分析前端面試中的圖片懶載入問題,快來看看吧~

1。 什麼是 _DOCTYPE_, 有何作用?

Doctype

是HTML5的文件宣告,透過它可以告訴瀏覽器,使用哪一個HTML版本標準解析文件。在瀏覽器發展的過程中,HTML出現過很多版本,不同的版本之間格式書寫上略有差異。如果沒有事先告訴瀏覽器,那麼瀏覽器就不知道文件解析標準是什麼?此時,大部分瀏覽器將開啟最大相容模式來解析網頁,我們一般稱為

怪異模式

,這不僅會降低解析效率,而且會在解析過程中產生一些難以預知的`bug`,所以文件宣告是必須的。

一文分析前端面試中的圖片懶載入問題,快來看看吧~

2。 說說對 _html_ 語義化的理解

HTML標籤的語義化,簡單來說,就是用正確的標籤做正確的事情,給某塊內容用上一個最恰當最合適的標籤,使頁面有良好的結構,頁面元素有含義,無論是誰都能看懂這塊內容是什麼。

語義化的優點如下:

在沒有CSS樣式情況下也能夠讓頁面呈現出清晰的結構

有利於SEO和搜尋引擎建立良好的溝通,有助於爬蟲抓取更多的有效資訊,爬蟲是依賴於標籤來確定上下文和各個關鍵字的權重

方便團隊開發和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化

3。 _src_ 和 _href_ 的區別

src和href都是HTML中特定元素的屬性,都可以用來引入外部的資源。兩者區別如下:

src:全稱_source_,它通常用於img、video、audio、script元素,透過src指向請求外部資源的來源地址,指向的內容會嵌入到文件中當前標籤所在位置,在請求src資源時,它會將資源下載並應用到文件內,比如說:js指令碼、img圖片、frame等元素。當瀏覽器解析到該元素時,會暫停其它資源下載,直到將該資源載入、編譯、執行完畢。這也是為什麼將js指令碼放在底部而不是頭部的原因。

href:全稱_hyper reference_,意味著超連結,指向網路資源,當瀏覽器識別到它指向的⽂件時,就會並⾏下載資源,不會停⽌對當前⽂檔的處理,通常用於a、link元素。

4。 _title_ 與 _h1_ 的區別、_b_ 與 _strong_ 的區別、_i_ 與 _em_ 的區別?

_title_ 屬性表示網頁的標題,_h1_ 元素則表示層次明確的頁面內容標題,對頁面資訊的抓取也有很大的影響

_strong_ 是標明重點內容,有語氣加強的含義,使用閱讀裝置閱讀網路時:strong會重讀,而_b_是展示強調內容

_i_ 是_italic_(斜體)的簡寫,是早期的斜體元素,表示內容展示為斜體,而 _em_ 是_emphasize_(強調)的簡寫,表示強調的文字

5。 什麼是嚴格模式與混雜模式?

嚴格模式:是以瀏覽器支援的最高標準執行

混雜模式:頁面以寬鬆向下相容的方式顯示,模擬老式瀏覽器的行為

一文分析前端面試中的圖片懶載入問題,快來看看吧~

6。 前端頁面有哪三層構成,分別是什麼?

構成:`

結構層

`、`

表示層

`、`

行為層

`

1。 結構層(structural layer)

結構層類似於蓋房子需要打地基以及房子的懸樑框架,它是由HTML超文字標記語言來建立的,也就是頁面中的各種標籤,在結構層中儲存了使用者可以看到的所有內容,比如說:一段文字、一張圖片、一段影片等等

2。 表示層(presentation layer)

表示層是由CSS負責建立,它的作用是如何顯示有關內容,學名:`層疊樣式表`,也就相當於裝修房子,看你要什麼風格的,田園的、中式的、地中海的,總之CSS都能辦妥

3。 行為層(behaviorlayer)

行為層表示網頁內容跟使用者之間產生互動性,簡單來說就是使用者操作了網頁,網頁給使用者一個反饋,這是`JavaScript`和`DOM`主宰的領域

7。 iframe的作用以及優缺點

iframe也稱作嵌入式框架,嵌入式框架和框架網頁類似,它可以把一個網頁的框架和內容嵌入到現有的網頁中。

優點:

可以用來處理載入緩慢的內容,比如:廣告

缺點:

iframe會阻塞主頁面的On​load事件

iframe和主頁面共享連線池,而瀏覽器對相同域的連線有限制,所以會影響頁面的並行載入。但是可以透過JS動態給ifame新增src屬性值來解決這個問題,當然也可以解決iframe會阻塞主頁面的On​load事件的問題

會產生很多頁面,不易管理

瀏覽器的後退按鈕沒有作用

無法被一些搜尋引擎識別

8。 img上 title 與 alt

alt:全稱`alternate`,切換的意思,如果無法顯示影象,瀏覽器將顯示alt指定的內容

title:當滑鼠移動到元素上時顯示title的內容

區別:

一般當滑鼠滑動到元素身上的時候顯示`title`,而`alt`是img標籤特有的屬性,是圖片內容的等價描述,用於圖片無法載入時顯示,這樣使用者還能看到關於丟失了什麼東西的一些資訊,相對來說比較友好。

9。 H5和HTML5區別

H5是一個產品名詞,包含了最新的HTML5、CSS3、ES6等新技術來製作的應用

HTML5是一個技術名詞,指的就是第五代HTML

10。 行內元素和塊級元素分別有哪些?有何區別?怎樣轉換?

常見的塊級元素:`p、div、form、ul、li、ol、table、h1、h2、h3、h4、h5、h6、dl、dt、dd`

常見的行級元素:`span、a、img、button、input、select`

塊級元素:

總是在新行上開始,就是每個塊級元素獨佔一行,預設從上到下排列

寬度缺少時是它的容器的100%,除非設定一個寬度

高度、行高以及外邊距和內邊距都是可以設定的

塊級元素可以容納其它行級元素和塊級元素

行內元素:

和其它元素都會在一行顯示

高、行高以及外邊距和內邊距可以設定

寬度就是文字或者圖片的寬度,不能改變

行級元素只能容納文字或者其它行內元素

使用行內元素需要注意的是:

行內元素設定寬度`width`無效

行內元素設定`height`無效,但是可以透過`line-height`來設定

設定`margin`只有左右有效,上下無效

設定`padding`只有左右有效,上下無效

可以透過`

一文分析前端面試中的圖片懶載入問題,快來看看吧~

`屬性對行內元素和塊級元素進行切換(主要看第 `2、3、4`三個值):

11。 label的作用是什麼?是怎麼用的?

`label`元素不會向用戶呈現任何特殊效果,但是,它為滑鼠使用者改進了可用性,當我們在label元素內點選文字時就會觸發此控制元件。也就是說,當用戶選擇該標籤時,瀏覽器就會自動將焦點轉到和標籤相關的表單控制元件上。最常用label的地方就是表單中的性別單選框了,當點選文字時也能夠自動聚焦繫結的表單控制元件。

12。 對於Web標準以及W3C的理解

`Web標準`簡單來說可以分為結構、表現、行為。其中結構是由HTML各種標籤組成,簡單來說就是body裡面寫入標籤是為了頁面的結構。表現指的是CSS層疊樣式表,透過CSS可以讓我們的頁面結構標籤更具美感。行為指的是頁面和使用者具有一定的互動,這部分主要由JS組成

`W3C`,全稱:world wide web consortium是一個制定各種標準的非盈利性組織,也叫全球資訊網聯盟,標準包括HTML、CSS、ECMAScript等等,web標準的制定有很多好處,比如說:

可以統一開發流程,統一使用標準化開發工具(VSCode、WebStorm、Sublime),方便多人協作

學習成本降低,只需要學習標準就行,否則就要學習各個瀏覽器廠商標準

跨平臺,方便遷移都不同裝置

降低程式碼維護成本

13。 Quirks(怪癖)模式是什麼?它和Standards(標準)有什麼區別?

頁面如果寫了DTD,就意味著這個頁面採用對CSS支援更好的佈局,而如果沒有,則採用相容之前的佈局方式,這就是Quirks模式,有時候也叫怪癖模式、詭異模式、怪異模式。

區別:總體會有佈局、樣式解析、指令碼執行三個方面區別,這裡列舉一些比較常見的區別:

`盒模型`:在W3C標準中,如果設定一個元素的寬度和高度,指的是元素內容的寬度和高度,然而在Quirks模式下,IE的寬度和高度還包含了padding和border

`設定行內元素的高寬`:在Standards模式下,給行內元素設定width和height都不會生效,而在Quriks模式下會生效

`用margin:0 auto設定水平居中`:在Standards模式下,設定margin:0 auto;可以使元素水平居中,但是在Quriks模式下失效

`設定百分比高度`:在Standards模式下,元素的高度是由包含的內容決定的,如果父元素沒有設定百分比的高度,子元素設定百分比的高度是無效的

14。 知道什麼是微格式嗎?談談理解,在前端構建中應該考慮微格式嗎?

所謂的微格式是建立在已有的、被廣泛採用的標準基礎之上的一組簡單的、開放的資料格式。

具體表現是把語義嵌入到HTML中,以便有助於分離式開發,並透過制定一些簡單的約定,來兼顧HTML文件的人機可讀性,相當於對web網頁進行語義註解。

採用微格式的web頁面,在HTML文件中給一些標籤增加一些屬性,這些屬性對資訊的語義結構進行註解,有助於處理HTML文件的軟體,更好的理解HTML文件。當爬取web內容時,能夠更為準確地識別內容塊的語義,微格式可以對網站進行SEO最佳化。

一文分析前端面試中的圖片懶載入問題,快來看看吧~

15。 HTML5為什麼只需要寫`<!DOCTYPE html>`?

為什麼HTML5只需要寫一段:

<!DOCTYPE html>

而HTML4卻需要寫很長的一段

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4。01 Transitional//EN” “http://www。w3。org/TR/html4/loose。dtd”>

其實主要是因為HTML5不基於SGML,所以不需要引用DTD。在HTML4中,`<!DOCTYPE>`宣告引用DTD,因為HTML4基於SGML。DTD規定了標記語言的規則,這樣瀏覽器才能正確的呈現內容。

一文分析前端面試中的圖片懶載入問題,快來看看吧~

16。 HTML5新增了哪些新特性?移除了哪些元素?

HTML5主要是關於影象、位置、儲存、多工等功能的增加:

語義化標籤,如:article、footer、header、nav等

影片video、音訊audio

畫布canvas

表單控制元件,calemdar、date、time、email

地理

本地離線儲存,localStorage長期儲存資料,瀏覽器關閉後資料不丟失,sessionStorage的資料在瀏覽器關閉後自動刪除

拖拽釋放

移除的元素:

純表現的元素:`basefont、font、s、strike、tt、u、big、center`

對可選用性產生負面影響的元素:`frame、frameset、noframes`

17。 怎麼處理HTML5新標籤相容問題?

主要有兩種方式:

1。 實現標籤被識別:透過`document。createElement(tagName)`方法可以讓瀏覽器識別新的標籤,瀏覽器支援新標籤後。還可以為新標籤新增CSS樣式

2。 用JavaScript解決:使用HTML5的shim框架,在`head`標籤中呼叫以下程式碼:

<!——[if lt IE 9]>

<![endif]——>

一文分析前端面試中的圖片懶載入問題,快來看看吧~

18。 如何實現在一張圖片上的某個區域做到點選事件

我們可以透過圖片熱區技術:

1。 插入一張圖片,並設定好影象的有關引數,在``標記中設定引數`usemap=“#Map”`,以表示對影象地圖的引用。

2。 用``標記設定影象地圖的作用區域,並取名:Map;

3。 分別用``標記針對相應位置互粉出多個矩形作用區域,並設定好連結引數`href`

例:

一文分析前端面試中的圖片懶載入問題,快來看看吧~

“”

coords=“65,71,98,58,114,90,108,112,79,130,56,116,38,100,41,76,52,53,83,34,110,33,139,46,141,75,145,101,127,115,113,133,85,132,82,131,159,117” />

“”

19。 a元素除了用於導航外,還有什麼作用?

href屬性中的url可以是瀏覽器支援的任何協議,所以a標籤可以用來手機撥號`110`,也可以用來發送簡訊`110`,還有郵件等等

當然,a元素最常見的就是用來做_錨點_和 _下載檔案_。

錨點可以在點選時快速定位到一個頁面的某個位置,而下載的原理在於a標籤所對應的資源瀏覽器無法解析,於是瀏覽器會選擇將其下載下來。

20。 你知道SEO中的TDK嗎?

在SEO中,TDK其實就是`title`、`description`、`keywords`這三個標籤,title表示標題標籤,description是描述標籤,keywords是關鍵詞標籤

想了解更多精彩內容,快來關注小白前端圈

Tags:元素標籤瀏覽器頁面html