整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          決戰“金三銀四”,中高級Web前端大廠面試秘籍:CS

          決戰“金三銀四”,中高級Web前端大廠面試秘籍:CSS篇

          又到了一年一度的“金三銀四的季節了”。不過恐怕大家都有感覺,當下,正面臨著近幾年來的最嚴重的互聯網寒冬,因此今天的“金三銀四”肯定又是一場更為慘烈的江湖廝殺。

          為了提升在廝殺中的“生存率”,讓我們從面經開始如果吧。這將是一個長篇系列。這篇文章讓我們先從CSS開始。

          CSS

          1. 盒模型

          頁面渲染時,dom 元素所采用的 布局模型??赏ㄟ^box-sizing進行設置。根據計算寬高的區域可分為:

          • content-box (W3C 標準盒模型)
          • border-box (IE 盒模型)
          • padding-box
          • margin-box

          2. BFC

          塊級格式化上下文,是一個獨立的渲染區域,讓處于 BFC 內部的元素與外部的元素相互隔離,使內外元素的定位不會相互影響。

          IE下為 Layout,可通過 zoom:1 觸發

          • 觸發條件:
          • 根元素
          • positon: absolute/fixed
          • display: inline-block / table
          • float 元素
          • ovevflow !==visible
          • 規則:
          • 屬于同一個 BFC 的兩個相鄰 Box 垂直排列
          • 屬于同一個 BFC 的兩個相鄰 Box 的 margin 會發生重疊
          • BFC 中子元素不會超出他的包含塊
          • BFC 的區域不會與 float 的元素區域重疊
          • 計算 BFC 的高度時,浮動子元素也參與計算
          • 文字層不會被浮動層覆蓋,環繞于周圍
          • 應用:
          • 阻止margin重疊
          • 可以包含浮動元素 —— 清除內部浮動(清除浮動的原理是兩個div都位于同一個 BFC 區域之中)
          • 自適應兩欄布局
          • 可以阻止元素被浮動元素覆蓋

          3.層疊上下文

          元素提升為一個比較特殊的圖層,在三維空間中 (z軸) 高出普通元素一等。

          • 觸發條件
          • 根層疊上下文(html)
          • position
          • css3屬性
          • flex
          • transform
          • opacity
          • filter
          • will-change
          • -webkit-overflow-scrolling
          • 層疊等級:層疊上下文在z軸上的排序
          • 在同一層疊上下文中,層疊等級才有意義
          • z-index的優先級最高(從高往低排,順序如下:)
          • z-index正直
          • z-index 0 / auto
          • 行內元素
          • 浮動元素
          • 塊級元素
          • z-index為負
          • background / border

          4. 居中布局

          • 水平居中
          • 行內元素: text-align: center
          • 塊級元素: margin: 0 auto
          • absolute + transform
          • flex + justify-content: center
          • 垂直居中
          • line-height: height
          • absolute + transform
          • flex + align-items: center
          • table
          • 水平垂直居中
          • absolute + transform
          • flex + justify-content + align-items

          5. 選擇器優先級

          • !important > 行內樣式 > #id > .class > tag > * > 繼承 > 默認
          • 選擇器 從右往左 解析

          6.去除浮動影響,防止父級高度塌陷

          • 通過增加尾元素清除浮動
          • :after /
          • : clear: both
          • 創建父級 BFC
          • 父級設置高度

          7.link 與 @import 的區別

          • link功能較多,可以定義 RSS,定義 Rel 等作用,而@import只能用于加載 css
          • 當解析到link時,頁面會同步加載所引的 css,而@import所引用的 css 會等到頁面加載完才被加載
          • @import需要 IE5 以上才能使用
          • link可以使用 js 動態引入,@import不行

          8. CSS預處理器(Sass/Less/Postcss)

          CSS預處理器的原理: 是將類 CSS 語言通過 Webpack 編譯 轉成瀏覽器可讀的真正 CSS。在這層編譯之上,便可以賦予 CSS 更多更強大的功能,常用功能:

          • 嵌套
          • 變量
          • 循環語句
          • 條件語句
          • 自動前綴
          • 單位轉換
          • mixin復用

          面試中一般不會重點考察該點,一般介紹下自己在實戰項目中的經驗即可~

          9.CSS動畫

          • transition: 過渡動畫
          • transition-property: 屬性
          • transition-duration: 間隔
          • transition-timing-function: 曲線
          • transition-delay: 延遲
          • 常用鉤子: transitionend
          • animation / keyframes
          • animation-name: 動畫名稱,對應@keyframes
          • animation-duration: 間隔
          • animation-timing-function: 曲線
          • animation-delay: 延遲
          • animation-iteration-count: 次數
          • infinite: 循環動畫
          • animation-direction: 方向
          • alternate: 反向播放
          • animation-fill-mode: 靜止模式
          • forwards: 停止時,保留最后一幀
          • backwards: 停止時,回到第一幀
          • both: 同時運用 forwards / backwards
          • 常用鉤子: animationend
          • 動畫屬性: 盡量使用動畫屬性進行動畫,能擁有較好的性能表現
          • translate
          • scale
          • rotate
          • skew
          • opacity
          • color

          總結

          通常,CSS 并不是重點的考察領域,但這其實是由于現在國內業界對 CSS 的專注不夠導致的,真正精通并專注于 CSS 的團隊和人才并不多。因此如果能在 CSS 領域有自己的見解和經驗,反而會為相當的加分和脫穎而出。

          TML基本結構
          基本文件格式:一般寫的代碼需要存儲在文件中,比如html代碼存儲在.html文件中
          什么是HTML標簽:HTML標簽也稱為HTML標記,由開始標簽和結束標簽組成,用于表現結構化的內容,將內容構造成為一個完整的網頁。

          HTML標簽組成
          雙標簽:是指由開始標簽和結束標簽組成
          單標簽:是指沒有結束標簽的標簽,由一個標簽構成即為開始也是結束
          理解:開始標簽是被括號包圍的元素名,結束標簽是被括號包圍的斜杠和元素名,如<h1></h1><b></b> 注意:有些HTML元素沒有結束標簽,比如<br/>

          HTML詳細說明
          html:告訴頁面這是一個HTML文檔,并聲明這個網頁是面向那種語言的用戶lang=”zh-CN” <!DOCTYPE html>
          文檔聲明:位于文檔的首航,告知瀏覽器文檔使用哪種HTML或XHTML規范。讓瀏覽器通過正確的方式解析我們的網頁,使網頁能正常顯示。<!DOCTYPE html>
          head標簽:就是一個網頁的頭,頭部中的內容一般存放描述文檔的信息 <head>
          body:就是一個身體,一般來說 body里面的內容要顯示出來<body>


          <html>頁面基礎元素
          簡介:HTML標簽也稱為HTML標記,由開始標簽和結束標簽組成,用于表現結構化的內容,將內容構造成為一個完整的網頁
          規范:1.HTML標簽是由尖括號包圍的關鍵詞,比如<html>
          2.HTML標簽通常是成對出現的,比如<b>和</b>
          3.HTML不區別大小寫(建議使用小寫)
          4.HTML可以嵌套,但是不允許交叉嵌套。正確<b><i>內容<i></b> 錯誤 <b><i>內容</b> <i>

          <head>元素
          簡介:是所有頭部元素的容器。
          能包含哪些:<title><base><link><mate><script><style>
          連接樣式表:<link>元素
          規定呈現樣式:<style>元素
          指定字符集:<mate>元素,關鍵詞 name,content
          本質:優化頁面,利于搜索,設置字符集,防止亂碼,引外部樣式方便,規定呈現樣式。

          <title>元素
          簡介:標簽定義文檔的標題。
          用途:定義瀏覽器工具欄中的標題,提供頁面被添加到收藏夾時顯示的標題,顯示在搜索引擎結果中的頁面標題。

          name 元信息元素名稱屬性
          簡介:name屬性用來指定文檔中附加信息的名稱,通常用keywords來定義關鍵字
          用法:<mate name=”信息名稱”/>
          理解:在<mate>元素中,名稱必須對應有相關的值才能生效

          content 元信息元素的值
          簡介:用來指定文檔中附加信息的值
          搭配:content屬性是與name屬性成對出現
          用法:<mate name=”信息名稱” content=”附加信息的值” />

          6. Doctype作?? 嚴格模式與混雜模式如何區分?它們有何意義?

          • ??被加載的時, link 會同時被加載,? @imort ??被加載的時, link 會同時被加 載,? @import 引?的 CSS 會等到??被加載完再加載 import 只在 IE5 以上才能識 別,? link XHTML 標簽,?兼容問題 link ?式的樣式的權重 ?于 @import 的權重
          • <!DOCITYPE>聲明位于?檔中的最前?,處于標簽之前。告知瀏覽器的解析 器, ?什么?檔類型 規范來解析這個?檔
          • 嚴格模式的排版和 JS 運作模式是 以該瀏覽器?持的最?標準運?
          • 在混雜模式中,??以寬松的向后兼容的?式顯示。模擬?式瀏覽器的?為以防?站點? 法?作。 DOCTYPE 不存在或格式不正確會導致?檔以混雜模式呈現

          17. ?內元素有哪些?塊級元素有哪些? 空(void)元素有那些??內元 素和塊級元素有什么區別?

          • ?內元素有: 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>

          • ?內元素不可以設置寬?,不獨占??
          • 塊級元素可以設置寬?,獨占??

          18. HTML全局屬性(global attribute)有哪些

          • class :為元素設置類標識
          • data-* : 為元素增加?定義屬性
          • draggable : 設置元素是否可拖拽
          • id : 元素 id ,?檔內唯?
          • lang : 元素內容的的語?
          • style : ?內 css 樣式
          • title : 元素相關的建議信息

          19. Canvas和SVG有什么區別?

          • svg 繪制出來的每?個圖形的元素都是獨?的 DOM 節點,能夠?便的綁定事件或?來修 改。 canvas 輸出的是?整幅畫布
          • svg 輸出的圖形是?量圖形,后期可以修改參數來?由放?縮?,不會失真和鋸?。?canvas 輸出標量畫布,就像?張圖??樣,放?會失真或者鋸?

          20. HTML5 為什么只需要寫

          • HTML5 不基于 SGML ,因此不需要對 DTD 進?引?,但是需要 doctype 來規范瀏覽器 的?為
          • ?HTML4.01 基于 SGML ,所以需要對 DTD 進?引?,才能告知瀏覽器?檔所使?的?檔 類型

          主站蜘蛛池模板: 国产亚洲日韩一区二区三区| 精品福利视频一区二区三区| 无码中文字幕一区二区三区| 在线免费一区二区| 无码国产精品一区二区免费式影视 | www一区二区www免费| 无码精品黑人一区二区三区| 日本精品一区二区三区四区| 成人在线一区二区| 国产乱码精品一区二区三区中文| 色偷偷一区二区无码视频| 一区二区三区免费精品视频| 亚洲爆乳精品无码一区二区| 无码av免费一区二区三区试看| 国产观看精品一区二区三区| 日本一区视频在线播放| 日韩十八禁一区二区久久| 日本视频一区在线观看免费| 无码日韩精品一区二区免费暖暖| 中文字幕色AV一区二区三区| 岛国精品一区免费视频在线观看| 国产精品被窝福利一区 | 亚洲午夜日韩高清一区 | 国产一区二区三区免费观看在线| 久久精品中文字幕一区| 精品一区二区三区无码视频| 精品在线一区二区三区| 日本高清无卡码一区二区久久| 久久无码人妻精品一区二区三区| 变态调教一区二区三区| 国产一区二区在线观看app| 久久精品国产亚洲一区二区| 少妇精品无码一区二区三区| 日韩在线一区二区| 国产在线观看精品一区二区三区91| 国产在线观看91精品一区| 中文字幕aⅴ人妻一区二区| 日韩一区精品视频一区二区| 在线观看精品视频一区二区三区| 波霸影院一区二区| 久久无码人妻一区二区三区午夜 |