面試八股---HTML

面試八股

1、HTML

1.1 src和href的區別

src 用于替換當前元素,href 用于在當前文檔和引用資源之間確立聯系。

核心區別在于 href 關聯的資源(主要是 CSS)是用于描述頁面外觀的,瀏覽器可以先生成內容再應用樣式,因此可以并行下載不阻塞渲染。

src 嵌入的資源(腳本、圖片、iframe)是頁面內容或行為本身的一部分,其加載和執行/渲染直接影響頁面的結構和顯示,因此瀏覽器需要等待它們完成以確保頁面正確構建和顯示,這通常涉及到暫停解析或阻塞渲染直到資源可用。

1.2 html語義化的理解

HTML語義化強調根據內容的功能和意義選擇合適的標簽

(1)提升代碼可讀性和可維護性

  • 語義化標簽使代碼更直觀,便于開發者快速理解頁面的結構和功能。
  • 在團隊協作中,語義化代碼可以減少溝通成本,降低維護難度。

(2)優化搜索引擎優化(SEO)

  • 搜索引擎爬蟲通過分析HTML標簽來理解頁面內容。例如,使用 <article> 標簽包裝文章內容,能讓搜索引擎明確知道這是文章,而不是廣告或導航部分。
  • 語義化標簽幫助爬蟲更準確地抓取和索引頁面內容,從而提升網頁在搜索結果中的排名。

1.3 DOCTYPE(?檔類型) 的作?

<!DOCTYPE html>

告訴瀏覽器(解析器)應該以什么樣(html或xhtml)的文檔類型定義來解析文檔

<!doctype html> 的作用就是讓瀏覽器進入標準模式,使用最新的 HTML5 標準來解析渲染頁面;如果不寫,瀏覽器就會進入混雜模式,我們需要避免此類情況發生。

瀏覽器渲染頁面的兩種模式(可通過document.compatMode獲取,比如):

  • CSS1Compat:標準模式,默認模式,瀏覽器使用W3C的標準解析渲染頁面。在標準模式中,瀏覽器以其支持的最高標準呈現頁面
  • BackCompat:怪異模式(混雜模式),瀏覽器使用自己的怪異模式解析渲染頁面。在怪異模式中,頁面以一種比較寬松的向后兼容的方式顯示。

區分:網頁中的DTD,直接影響到使用的是嚴格模式還是混雜模式,可以說DTD的使用與這兩種方式的區別息息相關。有 URI 的過渡 DTD ——嚴格模式;沒有 URI 的過渡 DTD ——混雜模式

1.4 script標簽中defer和async的區別

他們都是異步加載外部的JS腳本文件,它們都不會阻塞頁面的解析

屬性下載方式執行時機執行順序是否阻塞頁面解析
defer異步下載頁面解析完成后,DOMContentLoaded事件之前按照腳本在文檔中的順序不阻塞
async異步下載腳本下載完成后立即執行取決于下載速度,無固定順序不阻塞

總結:

  • **執行順序:**多個帶async屬性的標簽,不能保證加載的順序(取決于下載速度,無固定順序);多個帶defer屬性的標簽,按照加載順序執行;

  • 腳本是否并行執行

    async屬性:腳本下載和 HTML 解析同時進行,一旦下載好,不管 HTML 解析到哪了,都會阻斷并立刻執行腳本。

    defer屬性:加載后續文檔的過程和 JS 腳本的加載(此時僅加載不執行)是并行進行的(異步),JS 腳本需要等到文檔所有元素解析完成之后才執行,DOMContentLoaded 事件觸發執行之前。

1.5 常用的meta標簽

meta 標簽由 namecontent 屬性定義,用來描述網頁文檔的屬性,比如網頁的作者,網頁描述,關鍵詞等

 <meta charset="UTF-8">

用來描述HTML文檔的編碼類型

<meta name="keywords" content="關鍵詞" />

keywords,頁面關鍵詞:

<meta name="description" content="頁面描述內容" />

description,頁面描述:

<meta http-equiv="refresh" content="0;url=" />

refresh,頁面重定向和刷新:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

viewport,適配移動端,可以控制視口的大小和比例:

其中,content 參數有以下幾種:

  • width viewport :寬度(數值/device-width)
  • height viewport :高度(數值/device-height)
  • initial-scale :初始縮放比例
  • maximum-scale :最大縮放比例
  • minimum-scale :最小縮放比例
  • user-scalable :是否允許用戶縮放(yes/no)

搜索引擎索引方式:

<meta name="robots" content="index,follow" />

其中,content 參數有以下幾種:

  • all:文件將被檢索,且頁面上的鏈接可以被查詢;
  • none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
  • index:文件將被檢索;
  • follow:頁面上的鏈接可以被查詢;
  • noindex:文件將不被檢索;
  • nofollow:頁面上的鏈接不可以被查詢。

1.6 HTML5有哪些更新

1. 語義化標簽
  • header:定義文檔的頁眉(頭部);
  • nav:定義導航鏈接的部分;
  • footer:定義文檔或節的頁腳(底部);
  • article:定義文章內容;
  • section:定義文檔中的節(section、區段);
  • aside:定義其所處內容之外的內容(側邊);
2. 媒體標簽
  • audio:音頻
    • controls 控制面板
    • autoplay 自動播放
    • loop=‘true’ 循環播放
  • video視頻
    • poster:指定視頻還沒有完全下載完畢,或者用戶還沒有點擊播放前顯示的封面。默認顯示當前視頻文件的第一針畫面,當然通過poster也可以自己指定。
    • controls 控制面板
    • width
    • height
  • source標簽:兼容不同的瀏覽器,可以通過source來指定視頻源。
3. 表單
  • 表單類型:email、number、url、range
  • **表單屬性:**placeholder、autofocus、required、pattern
  • 表單屬性:
    • oninput 每當input里的輸入框內容發生變化都會觸發此事件。
    • oninvalid 當驗證不通過時觸發此事件。
4.進度條、度量器:

progress:meter屬性:用來顯示剩余容量或剩余庫存

meter屬性:用來顯示剩余容量或剩余庫存

5.DOM查詢操作:
  • document.querySelector()
  • document.querySelectorAll()

它們選擇的對象可以是標簽,可以是類(需要加點),可以是ID(需要加#)

6. Web存儲

HTML5 提供了兩種在客戶端存儲數據的新方法:

  • localStorage - 沒有時間限制的數據存儲
  • sessionStorage - 針對一個 session 的數據存儲
7. 其他
  • 拖放:拖放是一種常見的特性,即抓取對象以后拖到另一個位置。設置元素可拖放:

  • 畫布(canvas ): canvas 元素使用 JavaScript 在網頁上繪制圖像。畫布是一個矩形區域,可以控制其每一像素。canvas 擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

  • SVG:SVG 指可伸縮矢量圖形,用于定義用于網絡的基于矢量的圖形,使用 XML 格式定義圖形,圖像在放大或改變尺寸的情況下其圖形質量不會有損失,它是萬維網聯盟的標準

  • 地理定位:Geolocation(地理定位)用于定位用戶的位置。‘

1.7 img的srcset屬性的作??

srcset屬性用于設置不同屏幕密度下,img 會自動加載不同的圖片。

1.8 行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?

  • 行內元素有:a b span img input select strong
  • 塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4 h5 h6 p

空元素,即沒有內容的HTML元素。空元素是在開始標簽中關閉的,也就是空元素沒有閉合標簽:

  • 常見的有:<br><hr><img><input><link><meta>

1.9 對 web worker 的理解

JavaScript 是單線程的,這意味著所有任務都在主線程上執行。如果遇到計算密集型任務(如大數據處理、復雜算法等),主線程可能會被阻塞,導致頁面卡頓甚至無響應。為了解決這個問題,HTML5 引入了 Web Worker 技術,它允許在后臺線程中執行腳本,從而避免阻塞用戶界面12。簡單來說,Web Worker 為 JavaScript 創造了多線程環境,主線程可以創建 Worker 線程,將任務分配給 Worker 運行。Worker 線程在后臺運行,主線程和 Worker 線程互不干擾,直到 Worker 完成任務并將結果返回給主線程

1.10 HTML5的離線儲存怎么使用,它的工作原理是什么

Web 應用程序在沒有網絡連接的情況下繼續運行,從而提高用戶體驗和應用的可用性。

Service Worker 是 HTML5 引入的一種運行在瀏覽器后臺的腳本,可以攔截網絡請求并緩存資源,從而實現離線訪問。

  • 攔截請求:Service Worker 可以攔截頁面的所有網絡請求。
  • 緩存資源:使用 Cache API 將資源緩存到本地。
  • 離線訪問:當用戶離線時,Service Worker 從緩存中返回資源。

1.11 title與h1的區別、b與strong的區別、i與em的區別?

  • strong標簽有語義,是起到加重語氣的效果,而b標簽是沒有的,b標簽只是一個簡單加粗標簽。
  • title屬性只表示是個標題,H1則表示層次明確的標題,對頁面信息的抓取有很大的影響
  • i內容展示為斜體,em表示強調的文本

1.12 iframe 有那些優點和缺點?

創建包含另外一個文檔的內聯框架(即行內框架)

優點:

  • 用來加載速度較慢的內容(如廣告)
  • 可以使腳本可以并行下載
  • 可以實現跨子域通信

缺點:

  • iframe 會阻塞主頁面的 onload 事件
  • 無法被一些搜索引擎索識別
  • 會產生很多頁面,不容易管理

1.13 label 的作用是什么?如何使用

label標簽來定義表單控件的關系:當用戶選擇label標簽時,瀏覽器會自動將焦點轉到和label標簽相關的表單控件上,還可以提供文本標簽。

<label for="mobile">Number:</label>
<input type="text" id="mobile"/><label>Date:<input type="text"/></label>

1.14 Canvas和SVG的區別

(1)繪圖方式
  • Canvas
    基于像素繪制,通過 JavaScript API 控制每個像素點的顏色和位置。適合需要頻繁重繪的場景,如動畫、游戲等。
  • SVG
    基于矢量繪制,通過 XML 標簽描述圖形。例如,一個圓形可以通過 <circle> 標簽定義。適合需要清晰縮放的圖形,如圖標、圖表等。
(2)DOM 支持
  • Canvas
    繪制后的圖形是靜態的像素圖,無法直接綁定事件或修改樣式。如果需要交互,必須通過 JavaScript 重新繪制。
  • SVG
    每個 SVG 圖形元素都是 DOM 節點,可以直接綁定事件(如點擊、懸停),也可以通過 CSS 或 JavaScript 動態修改樣式。
(3)縮放與清晰度
  • Canvas
    放大后可能失真,因為它是基于像素繪制的,類似于位圖。適合不需要頻繁縮放的動態場景58。
  • SVG
    可以無限縮放而不失真,因為它是基于矢量的。適合需要高分辨率顯示的場景,如圖標、地圖等。
(4)性能表現
  • Canvas
    在處理大量圖形或復雜動畫時性能更優,因為它是直接操作像素,避免了 DOM 操作的開銷。
  • SVG
    在圖形較少且需要交互的場景中性能更優,但大量圖形或復雜動畫可能導致性能下降。

1.15 head 標簽有什么作用,其中什么標簽必不可少?

標簽用于定義文檔的頭部,它是所有頭部元素的容器。

文檔的頭部描述了文檔的各種屬性和信息,包括文檔的標題、在 Web 中的位置以及和其他文檔的關系等。

其中 定義文檔的標題,它是 head 部分中唯一必需的元素。

1.16 瀏覽器亂碼的原因是什么?如何解決?

產生亂碼的原因:

  • 核心問題在于編碼不統一。無論是網頁文件本身、HTML聲明、數據庫存儲,還是瀏覽器識別,只要其中任意兩個環節的編碼不一致(比如一個是GBK,另一個是UTF-8),就可能導致亂碼。

解決辦法:

  • 統一編碼: 確保從編輯器、HTML聲明、數據庫到傳輸的整個流程都使用同一種編碼(推薦UTF-8)。
  • 轉碼處理: 如果編碼不一致是客觀存在的,需要在程序層面進行編碼轉換。
  • 手動調整: 如果瀏覽器顯示亂碼,可以手動在瀏覽器設置中切換編碼格式。

1.17 漸進增強和優雅降級之間的區別

1)漸進增強(progressive enhancement):先確保網站在所有瀏覽器中都能提供最基本的內容和功能。再針對支持更高級功能的瀏覽器逐步添加增強的視覺效果和交互功能

(2)優雅降級 graceful degradation: 一開始就構建完整的功能,然后再針對低版本的瀏覽器進行兼容

漸進增強和優雅降級都是處理瀏覽器兼容性的有效策略,但它們的設計思路和側重點不同。漸進增強更注重“從基礎到增強”,適合需要長期維護和擴展的項目;而優雅降級更注重“從復雜到簡化”,適合目標用戶主要使用現代瀏覽器的情況。根據項目需求選擇合適的策略,可以更好地平衡用戶體驗和開發效率。

1.18 說一下 HTML5 drag API

  • dragstart:事件主體是被拖放元素,在開始拖放被拖放元素時觸發。
  • darg:事件主體是被拖放元素,在正在拖放被拖放元素時觸發。
  • dragenter:事件主體是目標元素,在被拖放元素進入某元素時觸發。
  • dragover:事件主體是目標元素,在被拖放在某元素內移動時觸發。
  • dragleave:事件主體是目標元素,在被拖放元素移出目標元素是觸發。
  • drop:事件主體是目標元素,在目標元素完全接受被拖放元素時觸發。
  • dragend:事件主體是被拖放元素,在整個拖放操作結束時觸發。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89203.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89203.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89203.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

氣候智能體:AI如何重構人類應對氣候危機的決策體系?

前言 前些天發現了一個巨牛的人工智能免費學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站 《氣候智能體&#xff1a;AI如何重構人類應對氣候危機的決策體系&#xff1f;》 展開全景式論述。文章結合2025年最新技術突破與…

UITableView的位置向下偏移, contentInsetAdjustmentBehavior使用詳情

一.contentInsetAdjustmentBehavior 作用: 在iOS 11及以后&#xff0c;蘋果引入了安全區域&#xff08;Safe Area&#xff09;的概念,當UITableView的frame超出了安全區域,系統會自定調整SafeAreaInsets的值,它可以自動調整內容的內邊距&#xff0c;使得內容不會被導航欄遮擋。…

騰訊云RayData全新推出“行業解決方案模板”,一鍵快捷制作3D數據可視化作品

點擊藍字? 關注我們 本文共計958字 預計閱讀時長3分鐘 騰訊云RayData Plus是一款專注于高視效的3D數據可視化的實時渲染工具。 功能全面&#xff1a;提供了三維、二維、動畫、數據、交互邏輯等各類能力&#xff1b; 零代碼制作&#xff1a;靈活的節點式創作&#xff0c;即便沒…

深度解析基于貝葉斯的垃圾郵件分類

貝葉斯垃圾郵件分類的核心邏輯是基于貝葉斯定理&#xff0c;利用郵件中的特征&#xff08;通常是單詞&#xff09;來計算該郵件屬于“垃圾郵件”或“非垃圾郵件”的概率&#xff0c;并根據概率大小進行分類。它是一種樸素貝葉斯分類器&#xff0c;因其假設特征&#xff08;單詞…

WPF 3D 開發全攻略:實現3D模型創建、旋轉、平移、縮放

&#x1f3ae; WPF 3D 入門實戰&#xff1a;從零打造一個可交互的立方體模型 標題&#xff1a; &#x1f680;《WPF 3D 開發全攻略&#xff1a;實現旋轉、平移、縮放與法線顯示》 &#x1f4a1; 引言 在現代圖形應用中&#xff0c;3D 可視化已經成為不可或缺的一部分。WPF 提供…

Ruby 安裝使用教程

一、Ruby 簡介 Ruby 是一種簡單快捷的面向對象腳本語言&#xff0c;以優雅、簡潔、易讀著稱。它常被用于 Web 開發&#xff08;如 Ruby on Rails 框架&#xff09;、自動化腳本、DevOps、命令行工具等領域。 二、Ruby 安裝教程 2.1 支持平臺 Ruby 支持跨平臺運行&#xff0c…

python | numpy小記(五):理解 NumPy 中的 `np.arccos`:反余弦函數

python | numpy小記&#xff08;五&#xff09;&#xff1a;理解 NumPy 中的 np.arccos&#xff1a;反余弦函數 一、函數簽名與核心參數二、數學定義與取值范圍三、基礎使用示例四、與 Python 內建 math.acos 的對比五、常見問題與注意事項六、典型應用場景1. 三維向量夾角計算…

華為云Flexus+DeepSeek征文 | 華為云ModelArts與Reor的完美結合:創建高效本地AI筆記環境

華為云FlexusDeepSeek征文 | 華為云ModelArts與Reor的完美結合&#xff1a;創建高效本地AI筆記環境 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、Reor介紹Reor簡介Reor主要特點 三、安裝Reor工具下載Reor軟件安裝Reor工具 四、開…

【啟發式算法】Dynamic A*(D*)算法詳細介紹(Python)

&#x1f4e2;本篇文章是博主人工智能&#xff08;AI&#xff09;領域學習時&#xff0c;用于個人學習、研究或者欣賞使用&#xff0c;并基于博主對相關等領域的一些理解而記錄的學習摘錄和筆記&#xff0c;若有不當和侵權之處&#xff0c;指出后將會立即改正&#xff0c;還望諒…

報告怎么寫

替代方案&#xff08;按場景選擇&#xff09; 崗前準備階段 ? "熟悉業務流程/系統操作" ? "掌握XX工具/平臺的核心功能" ? "完成上崗前技術對接" 知識轉化場景 ? "梳理產品知識體系" ? "轉化技術文檔為實操方案" ? &…

大模型——怎么讓 AI 寫出好看有設計感的網頁

大模型——怎么讓 AI 寫出好看有設計感的網頁 你讓 AI 給你寫的網頁大概都是這樣的: 或者這樣: 好點的時候能這樣: 但都不夠高級,尤其是那個像引用一樣的邊框,太 AI 了。 今天教大家一個小技巧,寫出下面這樣的網頁: 或者這樣的

【Torch】nn.Linear算法詳解

1. 定義 nn.Linear 是 PyTorch 中最基礎的全連接&#xff08;fully‐connected&#xff09;線性層&#xff0c;也稱仿射變換層&#xff08;affine layer&#xff09;。它對輸入張量做一次線性變換&#xff1a; output x W T b \text{output} x W^{T} b outputxWTb 其中&a…

ZGC收集器

ZGC收集器 歡迎來到我的博客&#xff1a;TWind的博客 我的CSDN:&#xff1a;Thanwind-CSDN博客 我的掘金&#xff1a;Thanwinde 的個人主頁 0.前言 ZGC收集器完全可以說是Java收集器的一個跨時代的收集器&#xff0c;他真正意義上實現了停頓時間在10ms以內并且幾乎全時段都是…

隧道技術篇2frp代理nps代理shisel代理

FRP代理 1.實現湖北內網控制北京的內網C2上線 2.實現湖北內網探針北京內網 信息收集 &#xff08;socks建立和端口映射&#xff09; 1.連接47.98.210.85 7000端口服務端 2.嘗試將服務端的6666轉到127.0.0.1 5555采用tcp協議&#xff0c;備注名proxies serverAddr"47.98…

[Python 基礎課程]PyCharm 的安裝

Python 的編輯器目前主流的有 PyCharm 和 Vscode。 PyCharm 是 Python 目前最主流、最常用、最推薦的 Python 編輯器。 https://www.jetbrains.com/pycharm/ PyCharm 有社區版和專業版&#xff0c;可以根據自己的需要下載對應的版本。社區版是收費的&#xff0c;對于初學者或…

Spread Ribbon 工具欄控件:在WinForms中高效編輯Spread工作簿

引言 在數據密集型應用中&#xff0c;電子表格功能是提升用戶體驗的關鍵要素。GrapeCity Spread.NET V17 推出的獨立 Ribbon工具欄控件&#xff0c;為WinForms開發者提供了與Excel高度一致的UI交互體驗。通過集成此控件&#xff0c;用戶可直觀地進行數據編輯、格式調整等操作&…

leedcode:找到字符串中所有字母異位詞

問題&#xff1a;給定兩個字符串 s 和 p&#xff0c;找到 s 中所有 p 的 異位詞 的子串&#xff0c;返回這些子串的起始索引。不考慮答案輸出的順序。 package com.text;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;…

華為云Flexus+DeepSeek征文|基于華為云 Flexus Dify平臺開發AI Agent的詳細流程

目錄 一、Dify 應用開發平臺 1.1 什么是 Dify&#xff1f; 1.2 Dify 平臺優勢 二、構建 AI Agent 2.1 創建智能客服助手 2.2 配置 LLM組件 三、訪問智能應用 3.1 應用發布 3.2 智能對話 四、API 調用智能客服助手 4.1 配置 API 訪問接口 4.2 調用智能客服助手API …

【知識圖譜構建系列7】:結果評價(1)

文章目錄 前言前情提要三元組提取結果評價腳本代碼分析幾分鐘后前言 翻了一下記錄,發現咱的知識圖譜構建已經接近10天沒有搞了。時間也是過得真快啊。但這畢竟是咱未來產生論文的主要陣地,所以得趕緊把節奏給拾起來哈~ 前情提要 我們已經可以在mistral模型的基礎上,跑通提…

BT下載工具 qBittorrent v5.1.1.10,便攜無廣告,BT下載速度翻倍

[軟件名稱]: BT下載工具 qBittorrent v5.1.1.10 [軟件大小]: 15.9 MB [下載通道]: 夸克盤 | 迅雷盤 軟件介紹 &#x1f525;《qBittorrent增強版》v5.1.1.10便攜版&#xff5c;BT下載神器&#xff0c;速度與隱私兼得&#x1f310; ? 核心優勢&#xff1a; ? 無視版權限制…