1.@import和link的區別?
> 區別:
> 1、從屬關系:link是html的標簽,不僅可以加載 CSS 文件,還可以定義 RSS、rel 連接屬性等;而@import是css的語法,只有導入樣式表的作用。
> 2、加載順序:頁面被加載時,link會和html同時被加載而;@import引入的 CSS 將在頁面加載完畢后被加載。
> 3、兼容性:@import是 CSS2.1 才有的語法,所以只能在 IE5以上 才能識別;而link是 HTML 標簽,所以不存在兼容性問題。
> 4、DOM:javascript只能控制dom去改變link標簽引入的樣式,而@import的樣式不是dom可以控制的。
> 5、link方式的樣式權重高于@import的權重。
> 總結:
> @import是依賴css的,存在一定的兼容問題,并且根據瀏覽器渲染機制來說,他在dom樹渲染完成后才會渲染,并且不能被js動態修改。相比之下link兼容性較好,且dom元素的樣式可以被js動態修改,又因為link的權重高于@import,所以 @import適用于引入公共基礎樣式或第三方樣式,link適用于自己寫的且需要動態修改的樣式。
2. 你知道哪些垂直居中水平方案,他們各有什么優缺點?
> 想裝逼的話就去看這篇文章 [完美實現CSS垂直居中的11種方法](https://www.cnblogs.com/ypha/p/13957673.html)
> 實際絕對定位+transform、flex、line-height、使用 display:table 和 vertical-align這幾種回答已經足夠了。區別無非就是兼容性、和適用定高、不定高之類的。
3.為什么實際開發有些字體不能完全居中,特別是移動端?
> 設置基準線;有些字體設計就那吊樣設置基準線還是不行,需要hack處理。
- 前言
- 工作中的一些記錄
- 破解快手直播間的webSocket的連接
- 快手「反」反爬蟲的研究記錄
- HTML AND CSS
- 遇到的一些還行的css筆試題
- css常見面試題
- JavaScript 深度剖析
- ES6到ESNext新特性
- 關于http與緩存
- 關于頁面性能
- 關于瀏覽器的重排(reflow、layout)與重繪
- 手寫函數節流
- 手寫promise
- 手寫函數防抖
- 手寫圖片懶加載
- 手寫jsonp
- 手寫深拷貝
- 手寫new
- 數據結構和算法
- 前言
- 時間復雜度
- 棧
- 隊列
- 集合
- 字典
- 鏈表
- 樹
- 圖
- 堆
- 排序
- 搜索
- Webpack
- Webpack原理與實踐
- Vue
- Vuejs的Virtual Dom的源碼實現
- minVue
- Vuex實現原理
- 一道關于diff算法的面試題
- Vue2源碼筆記:源碼目錄設計
- vue-router源碼分析(v4.x)
- React及周邊
- 深入理解redux(一步步實現一個 redux)
- React常見面試題匯總
- Taro、小程序等
- TypeScript
- CI/CD
- docker踩坑筆記
- jenkins
- 最后