前端的面試和學習都是不可或缺的事情,在這裏收集一些高頻面試題,供本身如今和之後查閱和查缺補漏的同時,也但願對小夥伴有所幫助。javascript
前端HTML+CSS筆試題面試題
前端JS筆試題面試題
前端Vue筆試題面試題
前端小程序筆試題面試題css
一、用正確的標籤作正確的事情!
二、HTML
語義化就是讓頁面的內容結構化,便於對瀏覽器、搜索引擎解析;
三、在沒有樣式CSS
狀況下也以一種文檔格式顯示,而且是容易閱讀的。
四、搜索引擎的爬蟲依賴於標記來肯定上下文和各個關鍵字的權重,利於 SEO
。
五、使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解html
HTML5
如今已經不是 SGML
的子集,主要是關於圖像,位置,存儲,多任務等功能的增長前端
canvas
video
和 audio
元素localStorage
長期存儲數據,瀏覽器關閉後數據不丟失sessionStorage
的數據在瀏覽器關閉後自動刪除article
、footer
、header
、nav
、section
calendar
、date
、time
、email
、url
、search
webworker
、 websocket
、 Geolocation
移除的元素:html5
basefont
、big
、center
、font
、s
、strike
、 tt、u
frame
、frameset
、noframes
支持HTML5
新標籤:java
IE8/IE7/IE6
支持經過document.createElement
方法產生的標籤HTML5
新標籤html5shim
alt
是圖片加載失敗時,顯示在網頁上的替代文字;title
是鼠標放上面時顯示的文字。alt
是img
必要的屬性,而title
不是。url
到顯示頁面的步驟URL
交給DNS
域名解析,找到真實IP
,向服務器發起請求;HTML
、JS
、CSS
、圖象等);HTML
、JS
、CSS
等)進行語法解析,創建相應的內部數據結構(如HTML
的DOM
);class
:爲元素設置類標識data-*
: 爲元素增長自定義屬性draggable
: 設置元素是否可拖拽id
: 元素id,文檔內惟一lang
: 元素內容的的語言style
: 行內css樣式title
: 元素相關的建議信息主要分紅兩部分:渲染引擎(layout engineer
或Rendering Engine
)和JS
引擎web
渲染引擎:負責取得網頁的內容(HTML
、XML
、圖像等等)、整理訊息(例如加入CSS
等),以及計算網頁的顯示方式,而後會輸出至顯示器或打印機。瀏覽器的內核的不一樣對於網頁的語法解釋會有不一樣,因此渲染的效果也不相同。全部網頁瀏覽器、電子郵件客戶端以及其它須要編輯、顯示網絡內容的應用程序都須要內核面試
JS
引擎則:解析和執行javascript
來實現網頁的動態效果算法
最開始渲染引擎和JS
引擎並無區分的很明確,後來JS
引擎愈來愈獨立,內核就傾向於只指渲染引擎canvas
cookies
,sessionStorage
和 localStorage
的區別?cookie
是網站爲了標示用戶身份而儲存在用戶本地終端(Client Side
)上的數據(一般通過加密)
cookie
數據始終在同源的http
請求中攜帶(即便不須要),記會在瀏覽器和服務器間來回傳遞
sessionStorage
和localStorage
不會自動把數據發給服務器,僅在本地保存
存儲大小:
cookie
數據大小不能超過4k
sessionStorage
和localStorage
雖然也有存儲大小的限制,但比cookie
大得多,能夠達到5M
或更大 有期時間:
localStorage
存儲持久數據,瀏覽器關閉後數據不丟失除非主動刪除數據 sessionStorage
數據在當前瀏覽器窗口關閉後自動刪除 cookie
設置的cookie
過時時間以前一直有效,即便窗口或瀏覽器關閉
a b span img input select strong
div ul ol li dl dt dd h1 h2 h3 h4… p
<br> <hr> <img> <input> <link> <meta>
svg
border-radius
js
實現 須要求一個點在不在圓上簡單算法、獲取鼠標座標等等1XX
:信息狀態碼2XX
:成功狀態碼3XX
:重定向4XX
:客戶端錯誤5XX
: 服務器錯誤漸進加強:針對低版本瀏覽器進行構建頁面,保證最基本的功能,而後再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。
優雅降級:一開始就構建完整的功能,而後再針對低版本瀏覽器進行兼容。
一、使用CSS3
代碼代替JS
動畫(儘量避免重繪重排以及迴流)
二、頁面中空的href
和 src
會阻塞頁面其餘資源的加載 (阻塞下載進程)
三、用innerHTML
代替DOM
操做,減小DOM
操做次數,優化javascript
性能
四、當須要設置的樣式不少時設置className
而不是直接操做style
五、少用全局變量、緩存DOM
節點查找的結果。減小IO
讀取操做
六、圖片預加載,將樣式表放在頂部,將腳本放在底部 加上時間戳
一、減小HTTP
請求:合併文件、CSS
精靈、inline Image
二、將樣式表放到頁面頂部
三、不使用CSS
表達式
四、使用<link>
不使用@import
五、將腳本放到頁面底部
六、將javascript
和css
從外部引入
七、壓縮javascript
和css
盒模型分爲兩類: IE盒模型和標準盒模型。 二者的區別在於:
IE
盒模型的width/height = content + border + padding
width/height = content
!important > id > class > tag; !important
比 內聯優先級高css
選擇器border-radius
text-shadow
transform
CSS3新增僞類有那些?
:after
在元素以前添加內容,也能夠用來作清除浮動。:before
在元素以後添加內容。:enabled
已啓用的表單元素。:disabled
已禁用的表單元素。:checked
單選框或複選框被選中。通配符:*
ID選擇器:#ID
類選擇器:.class
元素選擇器:p、a 等
後代選擇器:p span、div a 等
僞類選擇器:a:hover 等
屬性選擇器:input[type="text"] 等
複製代碼
link
是HTML
方式,@import
是CSS
方式link
最大限度支持並行下載,@import
過多嵌套致使串行下載,出現FOUC
(文檔樣式短暫失效)link
能夠經過rel="alternate stylesheet"
指定候選樣式@import
,可使用@import
對老瀏覽器隱藏樣式@import
必須在樣式規則以前,能夠在css
文件中引用其餘文件link
優於@import
BFC
有什麼用什麼是BFC
?
BFC
格式化上下文,它是一個獨立的渲染區域,讓處於 BFC
內部的元素和外部的元素相互隔離,使內外元素的定位不會相互影響如何產生BFC
?
display: inline-block
position: absolute/fixed
BFC做用
解決上外邊距重疊;重疊的兩個box都開啓bfc;
解決浮動引發高度塌陷;容器盒子開啓bfc
解決文字環繞圖片;左邊圖片div,右邊文字容器p,將p容器開啓bfc
複製代碼
position: absolute
絕對定位:是相對於元素最近的已定位的祖先元素
position: relative
相對定位:相對定位是相對於元素在文檔中的初始位置
display:inline-block
何時不會顯示間隙?margin
負值font-size:0
letter-spacing
word-spacing
div
定義height
div
標籤clear:both
div
定義僞類:after
和zoom
div
定義overflow:hidden
div
也浮動,須要定義寬度br
標籤clear:both
CSS
初始化每每會出現瀏覽器之間的頁面顯示差別。SEO
有必定的影響,但魚和熊掌不可兼得,但力求影響最小的狀況下初始化思路:
margin
撐開<div>
包含,而後靠負margin
造成bfc
flex
position
有哪些值?有什麼做用?static
。默認值,不脫離文檔流,top
,right
,bottom
,left
等屬性不生效。relative
。不脫離文檔流,依據自身位置進行偏離,當子元素設置absolute
,將依據它進行偏離。absolute
。脫離文檔流,依據top,right,bottom,left
等屬性在正常文檔流中偏移位置。fixed
。經過瀏覽器窗口進行定位,出現滾動條的時候,不會隨之滾動。height
和line-height
設置同一高度。position+margin
:設置父元素:position: relative;
,子元素height: 100px;position:absolute;top: 50%; margin: -50px 0 0 0;
(定高)position+transform
:設置父元素position:relative
,子元素:position: absolute;top: 50%;transform: translate(0, -50%);
(不定高)display:flex;align-items: center;
(不定高)text-align:center
margin
爲auto
;position
爲relative
,元素設left:0;right:0;margin:auto;
flex-box
佈局,指定justify-content
屬性爲center
display
設置爲tabel-ceil
display: flex //設置Flex模式
flex-direction: column //決定元素是橫排仍是豎着排
flex-wrap: wrap //決定元素換行格式
justify-content: space-between //同一排下對齊方式,空格如何隔開各個元素
align-items: center //同一排下元素如何對齊
align-content: space-between //多行對齊方式
複製代碼
stylus/sass/less
區別Scss
和LESS
語法較爲嚴謹,LESS
要求必定要使用大括號「{}」,Scss
和Stylus
能夠經過縮進表示層次與嵌套關係Scss
無全局變量的概念,LESS
和Stylus
有相似於其它語言的做用域概念Sass
是基於Ruby
語言的,而LESS
和Stylus
能夠基於NodeJS NPM
下載相應庫後進行編譯;css
的content
屬性專門應用在 before/after
僞元素上,用於來插入生成內容。最多見的應用是利用僞類清除浮動。
css
壓縮與合併、Gzip
壓縮css
文件放在head
裏、不要用@import
CSS3
中提出的三個屬性:transition、transform、animation
transition
:定義了元素在變化過程當中是怎麼樣的,包含transition-property、transition-duration、transition-timing-function、transition-delay
。transform
:定義元素的變化結果,包含rotate、scale、skew、translate
。animation
:動畫定義了動做的每一幀(@keyframes
)有什麼效果,包括animation-name,animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction