摘要:內核原為,現為內核,等。但盒子的大小由這幾部分決定是一個屬性,與盒子模型有著密切聯系。
前言
貌似又到了一年一度跑路跳槽的時刻,由于個人的一些原因最近也參加了很多面試,發現有很多基礎性的東西掌握程度還是不夠,故此想總結一下最近面試遇到的問題以及個人認為比較重要的東西,留給自己消化,也分享給有需要的小伙伴
GitHub完整版面試題,歡迎小伙伴們star關注
如果文章中有出現紕漏、錯誤之處,還請看到的小伙伴多多指教,先行謝過
好了,廢話不多說,以下 ↓
HTML 1. Doctype作用,HTML5 為什么只需要寫doctype是一種標準通用標記語言的文檔類型聲明,目的是告訴標準通用標記語言解析器要使用什么樣的文檔類型定義(DTD)來解析文檔.聲明必須是HTML文檔的第一行,位于html標簽之前2. 行內元素有哪些,塊級元素有哪些,空(void)元素有那些HTML5不基于SGML,所以不需要引用DTD。在HTML5中只有一種
SGML: 標準通用標記語言,是現時常用的超文本格式的最高層次標準
行內元素:a span i img input select b 等
塊級元素:div ul ol li h1~h6 p table 等
空元素:br hr link 等
3. 簡述一下你對HTML語義化的理解簡單來說,就是合適的標簽做合適的事情,這樣具有以下好處:
有助于構架良好的HTML結構,有利于搜索引擎的建立索引、抓取,利于SEO
有利于不同設備的解析
有利于構建清晰的機構,有利于團隊的開發、維護
4. 常見的瀏覽器內核有哪些,介紹一下你對瀏覽器內核的理解Trident內核:IEGecko內核:NETSCAPE6及以上版本,火狐
Presto內核:Opera7及以上。[Opera內核原為:Presto,現為:Blink;]
Webkit內核:Safari,Chrome等。[Chrome的:Blink(WebKit的分支)]
瀏覽器內核又可以分成兩部分:渲染引擎和JS引擎。 渲染引擎主要負責取得網頁的內容、整理訊息、計算網頁的顯示方式等,JS引擎則是解析Javascript語言,執行javascript語言來實現網頁的動態效果。
5. html5有哪些新特性語義化標簽: header footer nav section article aside 等
增強型表單:date(從一個日期選擇器選擇一個日期) email(包含 e-mail 地址的輸入域) number(數值的輸入域) range(一定范圍內數字值的輸入域) search(用于搜索域) tel(定義輸入電話號碼字段) 等
視頻和音頻:audio video
Canvas繪圖 SVG繪圖
地理定位:Geolocation
拖放API:drag
web worker:是運行在后臺的 JavaScript,獨立于其他腳本,不會影響頁面的性能
web storage: localStorage sessionStorage
WebSocket: HTML5開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議
6. 描述一下 cookie,sessionStorage 和 localStorage 的區別特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
生命周期 | 可設置失效時間,沒有設置的話,默認是關閉瀏覽器后失效 | 除非被手動清除,否則將會永久保存 | 僅在當前網頁會話下有效,關閉頁面或瀏覽器后就會被清除 |
存放數據大小 | 4KB左右 | 可以保存5MB的信息 | |
http請求 | 每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題 | 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信 |
使用localStorage: localStorage.setItem(key,value)、localStorage.getItem(key)
websocket協議
webworker
多個標簽頁之間的通信
8. HTML5的離線存儲怎么使用,解釋一下工作原理HTML5的離線存儲
9. src與href的區別區別:src用于替代這個元素,而href用于建立這個標簽與外部資源之間的關系
瀏覽器加載到這里的時候,html的渲染和解析不會暫停,css文件的加載是同時進行的
當瀏覽器解析到這句代碼時,頁面的加載和解析都會暫停直到瀏覽器拿到并執行完這個js文件
10. 表單提交中Get和Post方式的區別Get一般用于從服務器上獲取數據,Post向服務器傳送數據
Get傳輸的數據是拼接在Url之后的,對用戶是可見的;Post的傳輸數據對用戶是不可見的
Get傳送的數據量較小,不能大于2KB。Post傳送的數據量較大,一般被默認為不受限制
Get安全性非常低,Post安全性較高
在FORM提交的時候,如果不指定Method,則默認為Get請求
CSS 1. css盒子模型,box-sizing屬性的理解css的盒模型由content(內容)、padding(內邊距)、border(邊框)、margin(外邊距)組成。但盒子的大小由content+padding+border這幾部分決定
box-sizing是一個CSS3屬性,與盒子模型有著密切聯系。即決定元素的寬高如何計算,box-sizing有三個屬性:
box-sizing: content-box|border-box|inherit:
content-box 使得元素的寬高即為內容區的寬高(默認模式)
border-box: 計算方式content + padding + border = 本身元素大小,即縮小了content大小
inherit 指定box-sizing屬性的值,應該從父元素繼承
2. 清除浮動,什么時候需要清除浮動,清除浮動都有哪些方法浮動的元素是脫離文檔標準流的,如果我們不清楚浮動,那么就會造成父元素高度塌陷,影響頁面布局。
清除浮動的方式:
為父元素設置高度
為父元素添加overflow:hidden
偽元素
.fix::after { content:""; display:block; clear:both; }
使用偽元素的好處:不增加冗余的DOM節點,符合語義化
overflow:hidden可以觸發BFC機制。BFC:塊級格式化上下文,創建了 BFC的元素就是一個獨立的盒子,它規定了內部如何布局,并且與這個獨立盒子里的布局不受外部影響,當然它也不會影響到外面的元素,計算BFC的高度時,浮動元素也參與計算3. 如何讓一個不定寬高的盒子水平垂直居中
定位的方式
.father { position: relative; } .son { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; }
css3屬性
.father { position: relative; } .son { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
flex布局
.father { display: flex; justify-content: center; align-items: center; }4. px和em和rem的區別
px: 像素,相對長度單位。像素px是相對于顯示器屏幕分辨率而言的5. position的值有哪些em的值并不是固定的,會繼承父級元素的字體大小,代表倍數
rem的值并不是固定的,始終是基于根元素 的,也代表倍數
static: 默認值。沒有定位,元素出現在正常的流中6. display:none與visibility:hidden的區別relative(相對定位):生成相對定位的元素,相對于其正常(原先本身)位置進行定位
absolute(絕對定位):生成絕對定位的元素,相對于static定位以外的第一個父元素進行定位
fixed(固定定位):生成絕對定位的元素,相對于瀏覽器窗口進行定位
區別 | display:none | visibility:hidden的 |
---|---|---|
是否占據空間 | 不占據任何空間,在文檔渲染時,該元素如同不存在(但依然存在文檔對象模型樹中) | 該元素空間依舊存在 |
是否渲染 | 會觸發reflow(回流),進行渲染 | 只會觸發repaint(重繪),因為沒有發現位置變化,不進行渲染 |
是否是繼承屬性 | 不是繼承屬性,元素及其子元素都會消失 | 是繼承屬性,若子元素使用了visibility:visible,則不繼承,這個子孫元素又會顯現出 |
link屬于XHTML標簽,@import完全是CSS提供的一種方式,只能加載CSS8. 什么是響應式設計,響應式設計的基本原理是什么加載順序的差別,當一個頁面被加載的時候,link引用的CSS會同時被加載,而@import引用的CSS 會等到頁面全部被下載完再被加載
兼容性的差別。由于@import是CSS2.1提出的所以老的瀏覽器不支持,而link標簽無此問題
當使用javascript控制dom去改變樣式的時候,只能使用link標簽,因為@import不是dom可以控制的
響應式網站設計是一個網站能夠兼容多個終端,而不是為每一個終端做一個特定的版本。基本原理是通過媒體查詢檢測不同的設備屏幕尺寸做處理9. 為什么要初始化CSS樣式
因為瀏覽器的兼容問題,不同瀏覽器對有些標簽的默認值是不同的,如果沒對 CSS 初始化往往會出現瀏覽器之間的頁面顯示差異10. CSS3有哪些新特性初始化樣式會對 SEO 有一定的影響
實現圓角border-radius,陰影box-shadow,邊框圖片border-image
對文字加特效text-shadow,強制文本換行word-wrap,線性漸變linear-gradient
實現旋轉transform:rotate(90deg),縮放scale(0.85,0.90),translate(0px,-30px)定位,傾斜skew(-9deg,0deg);
增加了更多的CSS選擇器、多背景、rgba()
唯一引入的偽元素是::selection;
實現媒體查詢@media,多欄布局flex
過渡transition 動畫animation
11. ::before 和 :after中雙冒號和單冒號有什么區別?解釋一下這2個偽元素的作用單冒號(:)用于CSS3偽類,雙冒號(::)用于CSS3偽元素。(偽元素由雙冒號和偽元素名稱組成),雙冒號是在當前規范中引入的,用于區分偽類和偽元素12. CSS優化、提高性能的方法有哪些
移除空的css規則(Remove empty rules)
正確使用display的屬性
不濫用浮動、web字體
不聲明過多的font-size
不在選擇符中使用ID標識符
遵守盒模型規則
盡量減少頁面重排、重繪
抽象提取公共樣式,減少代碼量
13. 重繪和回流重繪和回流
14. flex布局可以參考一下阮大大的文章 flex布局教程--阮一峰
15. css預處理器提供了一種css的書寫方式,常見的就是 SAAS文檔 和 LESS文檔
后記面試問題會不定時更新,后面也會抽時間總結一些javaScript、框架以及小程序方面的面試題,有需要的小伙伴可以點擊關注我哦,最后祝大家都能找到一份滿意的工作。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/117526.html
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...
摘要:一選擇器作用選擇器用于定位我們想要給予樣式的元素,但不只是在中,對的選擇器也是支持的,比如。在選被元素后插入內容其用法和特性與相似。所有偽元素選擇器在前端面試題偽類和偽元素擴展閱讀前端面試題清除浮動前端面試題塊格式化上下文 一、CSS選擇器作用 CSS 選擇器用于定位我們想要給予樣式的 HTML 元素,但不只是在 CSS 中,JavaScript 對 CSS 的選擇器也是支持的,比如 ...
摘要:一選擇器作用選擇器用于定位我們想要給予樣式的元素,但不只是在中,對的選擇器也是支持的,比如。在選被元素后插入內容其用法和特性與相似。所有偽元素選擇器在前端面試題偽類和偽元素擴展閱讀前端面試題清除浮動前端面試題塊格式化上下文 一、CSS選擇器作用 CSS 選擇器用于定位我們想要給予樣式的 HTML 元素,但不只是在 CSS 中,JavaScript 對 CSS 的選擇器也是支持的,比如 ...
摘要:一選擇器作用選擇器用于定位我們想要給予樣式的元素,但不只是在中,對的選擇器也是支持的,比如。在選被元素后插入內容其用法和特性與相似。所有偽元素選擇器在前端面試題偽類和偽元素擴展閱讀前端面試題清除浮動前端面試題塊格式化上下文 一、CSS選擇器作用 CSS 選擇器用于定位我們想要給予樣式的 HTML 元素,但不只是在 CSS 中,JavaScript 對 CSS 的選擇器也是支持的,比如 ...
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...
閱讀 1459·2021-09-30 09:57
閱讀 1466·2021-09-09 09:33
閱讀 2219·2021-09-04 16:40
閱讀 1792·2021-09-01 10:50
閱讀 3233·2021-09-01 10:31
閱讀 2539·2019-08-30 15:56
閱讀 2969·2019-08-30 15:44
閱讀 3474·2019-08-29 17:29