Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
積跬步無以至千里,下面的內容是對網上原有的前端面試題集及答案進行了全面修訂之后給出的負責任的題目和答案。原來的題目中有很多重復題目和無價值的題目,還有不少的參考答案也是錯誤的。修改后的前端面試題集去掉了過時的技術和框架,補充了現代前端開發所需的相關知識,包括HTML5、CSS3、JavaScript最新特性和最佳實踐、響應式設計、前端性能優化、前端框架等內容。同時,修改后的題目集還對常見的面試算法題和設計模式等進行了深入剖析,相信對準備前端工程師職位的候選人一定有所幫助。
這里會不斷收集和更新web前端相關的面試題,目前已收集100題。
轉發本文+關注+私信【學習】獲取以下完整面試PDF
SS
Web前端面試題及答案
本周面試題及答案題分享,請注意收藏喲~
Q:
Px 、em 、 rem、的區別?
A:
像素px是相對于顯示器屏幕分辨率而言的。
em指的是一個字體的大小,它會繼承父級元素的字體大小,因此并不是一個固定的值。
rem是CSS3新增的一個相對單位,相對的只是HTML根元素。
Q:
BFC 是什么? 在什么時候會觸發? 觸發方式有哪些?
A:
BFC:塊級格式化上下文,它是一塊獨立的區域,它決定了區域內部的塊級元素怎么布局,并且內部的布局不影響外部
觸發:· float的值不為none;· overflow的值不為visible;·
display的值為inline-block、table-cell、table-caption;· position的值為absolute或fixed;
Q:
css3新增屬性?
A:
新增選擇器如:nth-child(), :not()等
其他:圓角radius 多列布局column 陰影和反射:shadow\reflect 文本特效text-shadow 文本渲染:text-decoration 線性漸變:gradient
Q:
如何設置陰影? 有哪些值?
A:
box-shadow: 10px 10px 5px #888888;
box-shadow: 水平 垂直 距離 尺寸 color inset 后面4個可選
Q:
relative和absolute分別是相對于誰進行定位的?
A:
relative 生成相對定位的元素,相對于其自身在普通流中的位置進行定位。
absolute 生成絕對定位的元素,相對于其向上查找第一個不為 static 定位的其他定位祖先元素進行定位。
Q:
介紹一下box-sizing,常用的屬性有哪些?分別有什么作用?
A:
box-sizing: content-box|border-box|inherit;
content-box:在寬度和高度之外繪制元素的內邊距和邊框。常規
border-box:為元素指定的任何內邊距和邊框都將在已設定的寬度和高度內進行繪制
Inherit:規定應從父元素繼承 box-sizing 屬性的值。
Q:
div+css的布局較table布局有什么優點?
A:
1.符合W3C標準,代碼結構清晰明了,結構、樣式和行為分離,帶來足夠好的可維護性。
2.布局精準,網站版面布局修改簡單。
3.加快了頁面的加載速度(最重要的)(在IE中要將整個table加載完了才顯示內容)。
4.節約站點所占的空間和站點的流量。
5.用只包含結構化內容的HTML代替嵌套的標簽,
6.提高搜索引擎對網頁的搜索效率。
往期回顧
Review of previous periods
●科普| 那些年,我們錯過的Web前端成長之路
●初級前端工程師面試指南——先從做題開始!
●Web| 關于HTML的面試題了解一下!(內含福利)
大家如果覺得這些面試題太少太簡單,
或者對以上問題答案有疑問!
那可以私信發送【微信】加朗妹兒微信溝通喲
備注“面試題”
即可免費獲得更多面試題及答案喲~
法
用兩個空格來代替制表符(tab) -- 這是唯一能保證在所有環境下獲得一致展現的方法。
嵌套元素應當縮進一次(即兩個空格)。
對于屬性的定義,確保全部使用雙引號,絕不要使用單引號。
不要在自閉合(self-closing)元素的尾部添加斜線 -- HTML5 規范中明確說明這是可選的。
不要省略可選的結束標簽(closing tag)(例如,</li>
或 </body>
)。
實例:
<!DOCTYPE html><html>
HTML5 doctype
為每個 HTML 頁面的第一行添加標準模式(standard mode)的聲明,這樣能夠確保在每個瀏覽器中擁有一致的展現。
實例:
<!DOCTYPE html><html>
語言屬性
根據 HTML5 規范:
強烈建議為 html 根元素指定 lang 屬性,從而為文檔設置正確的語言。這將有助于語音合成工具確定其所應該采用的發音,有助于翻譯工具確定其翻譯時所應遵守的規則等等。
lang
屬性的知識可以從 此規范 中了解。
這里列出了語言代碼表。
<html lang="zh-CN">
IE 兼容模式
IE 支持通過特定的 <meta>
標簽來確定繪制當前頁面所應該采用的 IE 版本。除非有強烈的特殊需求,否則最好是設置為 edge mode,從而通知 IE 采用其所支持的最新的模式。
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
字符編碼
通過明確聲明字符編碼,能夠確保瀏覽器快速并容易的判斷頁面內容的渲染方式。這樣做的好處是,可以避免在 HTML 中使用字符實體標記(character entity),從而全部與文檔編碼一致(一般采用 UTF-8 編碼)。
<head>
引入 CSS 和 JavaScript 文件
根據 HTML5 規范,在引入 CSS 和 JavaScript 文件時一般不需要指定 type
屬性,因為 text/css
和 text/javascript
分別是它們的默認值。
HTML5 spec links
Using link
Using style
Using script
<!-- External CSS --><link rel="stylesheet" href="code-guide.css"><!-- In-document CSS --><style>
實用為王
盡量遵循 HTML 標準和語義,但是不要以犧牲實用性為代價。任何時候都要盡量使用最少的標簽并保持最小的復雜度。
屬性順序
HTML 屬性應當按照以下給出的順序依次排列,確保代碼的易讀性。
class
id
, name
data-*
src
, for
, type
, href
title
, alt
aria-*
, role
class 用于標識高度可復用組件,因此應該排在首位。id 用于標識具體組件,應當謹慎使用(例如,頁面內的書簽),因此排在第二位。
<a class="..." id="..." data-modal="toggle" href="#">
布爾(boolean)型屬性
布爾型屬性可以在聲明時不賦值。XHTML 規范要求為其賦值,但是 HTML5 規范不需要。
更多信息請參考 WhatWG section on boolean attributes:
元素的布爾型屬性如果有值,就是 true,如果沒有值,就是 false。
如果一定要為其賦值的話,請參考 WhatWG 規范:
如果屬性存在,其值必須是空字符串或 [...] 屬性的規范名稱,并且不要在首尾添加空白符。
簡單來說,就是不用賦值。
<input type="text" disabled><input type="checkbox" value="1" checked><select>
減少標簽的數量
編寫 HTML 代碼時,盡量避免多余的父元素。很多時候,這需要迭代和重構來實現。請看下面的案例:
<!-- Not so great --><span class="avatar">
JavaScript 生成的標簽
通過 JavaScript 生成的標簽讓內容變得不易查找、編輯,并且降低性能。能避免時盡量避免。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。