整合營銷服務商

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

          免費咨詢熱線:

          前端常見面試題總結-HTML篇

          、關于HTML語義化,你知道都有哪些標簽?

          語義化就是讓計算機能夠快速讀懂內容,高效的處理信息。搜索引擎只能通過標簽來判斷內容的語義,因為頁面的很大一部分流量來自搜索引擎,要使頁面盡可能地對搜索引擎友好,所以盡可能地使用語義化標簽,如:

          div是division分離,span是span范圍,table是表格,ol是orderList有序列表,ul是unorderList無序列表,li是list item列表選項,html5進一步推進web語義化的發展,使用了一些新的標簽有header、artical、address等。

          2、HTML標簽分類有哪些?都有啥特點?

          • 塊級標簽

          默認寬度是100%

          塊級標簽獨占一行

          塊級標簽可以使用height設置高度

          常見塊級標簽:div、p、h1~h6、ol、ul、table、form等等。

          • 行級標簽

          默認寬度由內容撐開

          行級標簽不會自動換行,從左到右一次排列

          行級標簽height設置高度失效,高度由內容撐開。

          常見行級標簽:span、a、br、strong、lable、i、em。

          • 行內塊標簽

          結合行級和塊級的優點

          可以設置元素的寬高

          還可以將多個元素顯示在一行從左到右一次排列。

          常見行內塊標簽:img、input。


          3、網頁編碼設置有幾種方式?

          Charset屬性規定HTML文檔的字符編碼,常見的屬性值有以下幾個:

          • UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。用在網頁上可以同一頁面顯示中文簡體繁體以及其他語言。
          • GBK是漢字編碼,是雙字節碼,可表示簡體和繁體字。
          • ISO8859-2字符集,也稱Latin-2,收集了東歐字符。


          4、HTML的框架優缺點有哪些?

          Html框架有iframe和frame兩個,將多個頁面通過一個瀏覽器窗口顯示。

          框架的優點:

          • 重載頁面時不需要重載整個頁面,只需要重載頁面中的一個框架頁,減少數據傳輸,加快網頁加載速度。
          • Iframe使用簡單不需要引入任何插件,主要用于不需要搜索引擎搜索的頁面。
          • 方便制作導航,多個頁面共用,方便開發和維護。

          缺點:

          • 會產生很多頁面,不容易管理。
          • 不方便打印,不能實現對frameset的打印。
          • 瀏覽器后退按鈕失效。
          • 不利于SEO優化,不能為每個頁面設置標題和關鍵字,影響搜索。
          • 多數小型移動設備無法完全顯示框架。
          • 多框架頁面會增加服務器的http請求。
          • H5已經拋棄該標簽。


          5、HTML5有哪些新特性,移除了哪些元素?

          H5新增了圖像、位置、存儲、多任務等功能。

          新增元素:

          • Canvas
          • video和audio元素
          • 本地離線緩存:localStorage長期存儲,瀏覽器關閉之后數據不丟失,sessionStorage的數據在瀏覽器關閉后自動刪除。
          • 語義化標簽:artical、footer、header、nav、section
          • 位置API:Geolocation
          • 表單控件:calendar、date、time、email、search、url
          • 新技術:web worker(運行在后臺的js,獨立于其他腳本,不影響頁面性能。可以在頁面繼續任何操作,此時web worker在后臺運行)、web socket
          • 拖放API:drag、drop

          移除元素:

          • 框架元素:frame、frameset、noframes。
          • 純表現元素:basefont、font、center、u、big、strike、tt

          Html5新增了 27 個元素,廢棄了 16 個元素,根據現有的標準規范,把 HTML5 的元素按優先級定義為結構性屬性、級塊性元素、行內語義性元素和交互性元素 4 大類。


          6、如何區分HTML和HTML5?

          DOCUMENT聲明方式是區分的重要元素。

          • Html聲明方式:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd”>
          • Html5聲明方式:<!DOCTYPE html>

          根據新增加的結構、功能來區分。H5有好多新增語義化標簽。


          7、H5文件離線存儲怎么使用,工作原理是什么?

          在線情況下,瀏覽器發現html頭部有manifest屬性,它會請求manifest文件,如果是第一次訪問那么瀏覽器就會根據manifest文件的內容下載相應的資源,并進行離線存儲。如果已經訪問過并且資源已經離線存儲了,那么瀏覽器就會使用離線的資源加載頁面。然后瀏覽器會對比新的manifest文件與舊的manifest文件,如果文件沒有改變,就不會有任何操作,如果文件改變了,那么就會重新下載資源,并進行離線緩存。

          頁面頭部加入manifest屬性。如:<html manifest="demo.appcache">

          在cache.manifest文件中編寫離線存儲的資源。


          8、Cookies,sessionStorage和localStorage的區別?

          共同點:都是保存在瀏覽器端,而且都是同源的。

          區別:

          • Cookies是為了標識用戶身份而存儲在用戶本地的數據,始終在同源http請求中攜帶,在瀏覽器與服務器間來回傳遞,而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。
          • 存儲大小差異。Cookie保存的數據很小,不能超過4k,而sessionStorage和localStorage保存數據大,可達到5M。
          • 存儲有效期不同。Cookie在設置的cookie過期前始終有效,而sessionStorage僅在瀏覽器關閉之前有效,localStorage始終有效,與瀏覽器窗口沒關系。
          • 作用域不同:cookie在所有同源窗口都是共享,sessionStorage不能在不同瀏覽器窗口上共享,localStorage在所有同源窗口都是共享的。


          9、title與h1的區別、b與strong的區別、i與em的區別?

          title屬性沒有明確意義,只表示標題,h1表示層次明確的標題,對頁面信息抓取也有很大的影響。

          strong標明重點內容,語氣加強含義,b表示無意義的視覺表示

          em表示強調文本,i是斜體,是無意義的視覺表示

          視覺樣式標簽:b、u、i、s

          語義樣式標簽:strong、em、ins、del、code


          10、viewport 所有屬性 ?

          viewport是用戶網頁的可視區域,使用meta設置viewport時有很多屬性,分別對以下各個屬性介紹

          • width :設置layout viewport的寬度,為一個正整數,或字符串'device-width';
          • initial-scale:設置頁面的初始縮放值,為一個數字,可以帶小數。
          • minimum-scale:允許用戶的最小縮放值,為一個數字,可以帶小數。
          • maximum-scale:允許用戶的最大縮放值,為一個數字,可以帶小數。
          • height:設置layout viewport的高度,這個屬性對我們并不重要,很少使用
          • user-scalable:是否允許用戶進行縮放,值為‘no’或者‘yes’。
          • target-densitydpi:值可以為一個數值或者 high-dpi 、 medium-dpi、 low-dpi、 device-dpi 這幾個字符串中的一個

          安卓中還支持:target-densitydpi,表示目標設備的密度等級,作用是決定css中的1px 代表多少物理像素。


          11、meta標簽的name屬性值?

          name屬性主要用于描述網頁,與之對應的屬性值為content,content中的內容主要是便于搜索機器人查找信息和分類信息用的。

          Meta標簽的name屬性語法格式是:

          <meta name=”參數”content=”具體的參數值”>

          Name主要有以下幾個參數:

          • Keywords(關鍵字):關鍵字用來告訴搜索引擎你網頁的關鍵字是什么。
          • Description(網站內容描述):描述用來瀏覽器你的網頁主要內容是什么。
          • Robots(機器人向導):robots用來搜索機器人哪些頁面需要索引,哪些頁面不需要索引。
          • Author(作者):添加網頁作者信息。

          Content的參數主要有name的參數來決定,如果是關鍵字的時候,多個關鍵字之間使用逗號隔開,一般使用5個關鍵字為宜;如果是描述的時候,描述長度一般控制在200字左右;如果是索引的時候,一般使用inde、noindex、none、all,默認是all。

          人在校生一枚,希望可以找到志同道合的小伙伴一起進步,不定期的更新自己的收獲,如果有大神的話可以指出我的不足,我用的是VS code軟件來寫代碼的

          什么是 HTML

          HTML 是個縮寫,全稱Hyper Text Markup Language,譯為超文本標記語言。它是一種標識性的語言。它包括一系列標簽.通過這些標簽可以將網絡上的文檔格式統一,使分散的Internet資源連接為一個邏輯整體。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說明文字,圖形、動畫、聲音、表格、鏈接等。

          HTML的結構

          • html的后綴名有兩種 一種是.html,另一種是.htm (兩種并無區別)
          • 快捷創建基本結構的方法:方法一:可以在開頭打一個“!”號,方法二:打一個html,智能提示會出現html:5 選中即可。

          HTML的頭部

          在<hard>頭部標簽中你可以 插入腳本(scripts),樣式文件(CSS),以及各種meta信息。可以添加在頭部區域的元素有:<title>,<style>,<meta>,<link>等等

          • ? <title>定義網頁標題</title>
          • <meta>元素:描述了一些基本的元數據,元數據不顯示在頁面上,但會被瀏覽器解析,<meta>通常用于指定網頁的描述,關鍵詞,作者。


          注釋快捷鍵:CTRL+? (注釋是不被運行的,作用就是幫助程序員記東西)

           <!--這是一個注釋-->

          HTML屬性

          • 通用屬性:幾乎所有元素都可以使用的屬性,例如 id、name、style等
          • 私有屬性:某個一個/類元素所具備的屬性
          • 事件屬性:為某個元素綁定事件(DOM學習)
          • 自定義屬性:開發者為某個元素設置的屬性,一般都是在前端框架中使用
          • 參考介紹https://developer.mozilla.org/zh-CN/

          HTML完整結構

           <!DOCTYPE html>
           <html lang="en">
           <head>
               <meta charset="UTF-8">
               <meta name="viewport" content="width=device-width, initial-scale=1.0">
               <title>Document</title>
          			<!--頭部,js和css寫在這里面-->
           </head>
           <body>
                 <!--內容主體-->
           </body>
           </html>


          可能我寫的會有些不清楚,到后面有代碼的時候就會清楚了

          .html5的新特性

          文件類型聲明(<!DOCTYPE>)僅有一型:<!DOCTYPE HTML>。
          新的解析順序:不再基于SGML。
          繪畫 canvas;
          用于媒介回放的 video 和 audio 元素;
          語意化更好的內容元素:article、footer、header、nav、section;
          表單控件:calendar、date、time、email、url、search;
          input元素的新類型:date, email, url等。
          新的技術: webworker, websocket, Geolocation;
          新的屬性:ping(用于a與area), charset(用于meta), async(用于script)。
          全域屬性:id, tabindex, repeat。
          新的全域屬性:contenteditable, contextmenu, draggable, dropzone, hidden, spellcheck。
          新應用程序接口:
          HTML Geolocation
          HTML Drag and Drop
          HTML Local Storage
          HTML Application Cache
          HTML Web Workers
          HTML SSE
          HTML Canvas/WebGL
          HTML Audio/Video
          移除的元素:
          純表現的元素:basefont,big,center,font, s,strike,tt,u;
          對可用性產生負面影響的元素:frame,frameset,naframes;

          2.什么是Retina 顯示屏,帶來了什么問題?

          retina:一種具備超高像素密度的液晶屏,同樣大小的屏幕上顯示的像素點由1個變為多個,如在同樣帶下的屏幕上,蘋果設備的retina顯示屏中,像素點1個變為4個

          在高清顯示屏中的位圖被放大,圖片會變得模糊,因此移動端的視覺稿通常會設計為傳統PC的2倍
          那么,前端的應對方案是:
          設計稿切出來的圖片長寬保證為偶數,并使用backgroud-size把圖片縮小為原來的1/2
          //例如圖片寬高為:200px*200px,那么寫法如下

          .css{width:100px;height:100px;background-size:100px 100px;}
          


          其它元素的取值為原來的1/2,例如視覺稿40px的字體,使用樣式的寫法為20px

          .css{font-size:20px}
          

          3.ios系統中元素被觸摸時產生的半透明灰色遮罩怎么去掉?

          ios用戶點擊一個鏈接,會出現一個半透明灰色遮罩, 如果想要禁用,可設置-webkit-tap-highlight-color的alpha值為0,也就是屬性值的最后一位設置為0.X就可以去除半透明灰色遮罩
          a,button,input,textarea{-webkit-tap-highlight-color: rgba(0,0,0,0.X)}

          4.部分android系統中元素被點擊時產生的邊框怎么去掉

          android用戶點擊一個鏈接,會出現一個邊框或者半透明灰色遮罩, 不同生產商定義出來額效果不一樣,可設置-webkit-tap-highlight-color的alpha值為0去除部分機器自帶的效果

           a,button,input,textarea{ 
                            -webkit-tap-highlight-color: rgba(0,0,0,0;) 
                            -webkit-user-modify:read-write-plaintext-only; 
                      } 
          

          -webkit-user-modify有個副作用,就是輸入法不再能夠輸入多個字符
          另外,有些機型去除不了,如小米2
          對于按鈕類還有個辦法,不使用a或者input標簽,直接用div標簽

          5.webkit表單元素的默認外觀怎么重置

          通用

          .css{-webkit-appearance:none;}
          

          偽元素改變number類型input框的默認樣式

          input[type=number]::-webkit-textfield-decoration-container { 
              background-color: transparent;    
          } 
          input[type=number]::-webkit-inner-spin-button { 
              -webkit-appearance: none; 
          }                      
          input[type=number]::-webkit-outer-spin-button { 
              -webkit-appearance: none; 
          }
          
          

          6.webkit表單輸入框placeholder的顏色值能改變么

          input::-webkit-input-placeholder{color:#AAAAAA;}
          input:focus::-webkit-input-placeholder{color:#EEEEEE;}
          

          7.禁止ios 長按時不觸發系統的菜單,禁止ios&android長按時下載圖片

          .css{-webkit-touch-callout: none}
          


          8.禁止ios和android用戶選中文字

          .css{-webkit-user-select:none}
          

          9.打電話發短信寫郵件怎么實現

          打電話:<a href="tel:0755-10086">打電話給:0755-10086</a>
          發短信,winphone系統無效 <a href="sms:10086">發短信給: 10086</a>
          寫郵件:<a href=“mailto:peun@foxmail.com">peun@foxmail.com</a>

          10.audio元素和video元素在ios和andriod中無法自動播放

          應對方案:觸屏即播

          $('html').one('touchstart',function(){
              audio.play()
          })
          

          11.閃屏怎么解決

          通過transform的3d屬性改去硬件加速可以解決閃屏問題
          開啟硬件加速
          1)解決頁面閃白
          2)保證動畫流暢

          .css { 
              -webkit-transform: translate3d(0, 0, 0); 
              -moz-transform: translate3d(0, 0, 0); 
              -ms-transform: translate3d(0, 0, 0); 
              transform: translate3d(0, 0, 0); 
          } 
          

          12.取消input在ios下,輸入的時候英文首字母的默認大寫

          <input autocapitalize="off" autocorrect="off" />
          


          13.android 上去掉語音輸入按鈕

          input::-webkit-input-speech-button {display: none}
          

          14.設計高性能CSS3動畫的幾個要素

          盡可能地使用合成屬性transform和opacity來設計CSS3動畫
          不使用position的left和top來定位
          利用translate3D開啟GPU加速

          15.fixed bug

          ios下fixed元素容易定位出錯,軟鍵盤彈出時,影響fixed元素定位
          android下fixed表現要比iOS更好,軟鍵盤彈出時,不會影響fixed元素定位
          ios4下不支持position:fixed
          解決方案
          可用isroll.js,暫無完美方案

          16.移動H5前端性能優化指南


          1)PC優化手段在Mobile側同樣適用
          2)在Mobile側我們提出三秒種渲染完成首屏指標
          3)基于第二點,首屏加載3秒完成或使用Loading
          4)基于聯通3G網絡平均338KB/s(2.71Mb/s),所以首屏資源不應超過1014KB
          5)Mobile側因手機配置原因,除加載外渲染速度也是優化重點
          6)基于第五點,要合理處理代碼減少渲染損耗
          7)基于第二、第五點,所有影響首屏加載和渲染的代碼應在處理邏輯中后置
          8)加載完成后用戶交互使用時也需注意性能

          優化指南

          [加載優化]

          加載過程是最為耗時的過程,可能會占到總耗時的80%時間,因此是優化的重點

          減少HTTP請求

          因為手機瀏覽器同時響應請求為4個請求(Android支持4個,iOS 5后可支持6個),所以要盡量減少頁面的請求數,首次加載同時請求數不能超過4個
          a) 合并CSS、JavaScript
          b) 合并小圖片,使用雪碧圖

          緩存

          使用緩存可以減少向服務器的請求數,節省加載時間,所以所有靜態資源都要在服務器端設置緩存,并且盡量使用長Cache(長Cache資源的更新可使用時間戳)
          a) 緩存一切可緩存的資源
          b) 使用長Cache(使用時間戳更新Cache)
          c) 使用外聯式引用CSS、JavaScript

          壓縮HTML、CSS、JavaScript

          減少資源大小可以加快網頁顯示速度,所以要對HTML、CSS、JavaScript等進行代碼壓縮,并在服務器端設置GZip
          a) 壓縮(例如,多余的空格、換行符和縮進)
          b) 啟用GZip

          無阻塞

          寫在HTML頭部的JavaScript(無異步),和寫在HTML標簽中的Style會阻塞頁面的渲染,因此CSS放在頁面頭部并使用Link方式引入,避免在HTML標簽中寫Style,JavaScript放在頁面尾
          部或使用異步方式加載

          使用首屏加載

          首屏的快速顯示,可以大大提升用戶對頁面速度的感知,因此應盡量針對首屏的快速顯示做優化

          按需加載

          將不影響首屏的資源和當前屏幕資源不用的資源放到用戶需要時才加載,可以大大提升重要資源的顯示速度和降低總體流量
          PS:按需加載會導致大量重繪,影響渲染性能
          a) LazyLoad
          b) 滾屏加載
          c) 通過Media Query加載

          預加載

          大型重資源頁面(如游戲)可使用增加Loading的方法,資源加載完成后再顯示頁面。但Loading時間過長,會造成用戶流失
          對用戶行為分析,可以在當前頁加載下一頁資源,提升速度
          a) 可感知Loading(如進入空間游戲的Loading)
          b) 不可感知的Loading(如提前加載下一頁)

          壓縮圖片

          圖片是最占流量的資源,因此盡量避免使用他,使用時選擇最合適的格式(實現需求的前提下,以大小判斷),合適的大小,然后使用智圖壓縮,同時在代碼中用Srcset來按需顯示
          PS:過度壓縮圖片大小影響圖片顯示效果
          a) 使用智圖( http://zhitu.isux.us/ )
          b) 使用其它方式代替圖片(1. 使用CSS3 2. 使用SVG 3. 使用IconFont)
          c) 使用Srcset
          d) 選擇合適的圖片(1. webP優于JPG 2. PNG8優于GIF)
          e) 選擇合適的大小(1. 首次加載不大于1014KB 2. 不寬于640(基于手機屏幕一般寬度))

          減少Cookie

          Cookie會影響加載速度,所以靜態資源域名不使用Cookie

          避免重定向

          重定向會影響加載速度,所以在服務器正確設置避免重定向

          異步加載第三方資源

          第三方資源不可控會影響頁面的加載和顯示,因此要異步加載第三方資源

          [腳本執行優化]


          處理不當會阻塞頁面加載、渲染,因此在使用時需當注意
          CSS寫在頭部,JavaScript寫在尾部或異步
          避免圖片和iFrame等的空Src
          空Src會重新加載當前頁面,影響速度和效率

          盡量避免重設圖片大小

          重設圖片大小是指在頁面、CSS、JavaScript等中多次重置圖片大小,多次重設圖片大小會引發圖片的多次重繪,影響性能

          圖片盡量避免使用DataURL

          DataURL圖片沒有使用圖片的壓縮算法文件會變大,并且要解碼后再渲染,加載慢耗時長

          [CSS優化]


          * 盡量避免寫在HTML標簽中寫Style屬性
          * 避免CSS表達式
          CSS表達式的執行需跳出CSS樹的渲染,因此請避免CSS表達式
          * 移除空的CSS規則
          空的CSS規則增加了CSS文件的大小,且影響CSS樹的執行,所以需移除空的CSS規則
          * 正確使用Display的屬性
          Display屬性會影響頁面的渲染,因此請合理使用
          a) display:inline后不應該再使用width、height、margin、padding以及float
          b) display:inline-block后不應該再使用float
          c) display:block后不應該再使用vertical-align
          d) display:table-*后不應該再使用margin或者float
          * 不濫用Float
          Float在渲染時計算量比較大,盡量減少使用
          * 不濫用Web字體
          Web字體需要下載,解析,重繪當前頁面,盡量減少使用
          * 不聲明過多的Font-size
          過多的Font-size引發CSS樹的效率
          * 值為0時不需要任何單位
          為了瀏覽器的兼容性和性能,值為0時不要帶單位
          * 標準化各種瀏覽器前綴
          a) 無前綴應放在最后
          b) CSS動畫只用 (-webkit- 無前綴)兩種即可
          c) 其它前綴為 -webkit- -moz- -ms- 無前綴 四種,(-o-Opera瀏覽器改用blink內核,所以淘汰)
          * 避免讓選擇符看起來像正則表達式 高級選擇器執行耗時長且不易讀懂,避免使用

          [JavaScript執行優化]


          * 減少重繪和回流
          a) 避免不必要的Dom操作
          b) 盡量改變Class而不是Style,使用classList代替className
          c) 避免使用document.write
          d) 減少drawImage
          * 緩存Dom選擇與計算
          每次Dom選擇都要計算,緩存他
          * 緩存列表.length
          每次.length都要計算,用一個變量保存這個值
          * 盡量使用事件代理,避免批量綁定事件
          * 盡量使用ID選擇器
          ID選擇器是最快的
          * TOUCH事件優化
          使用touchstart、touchend代替click,因快影響速度快。但應注意Touch響應過快,易引發誤操作

          [渲染優化]

          * HTML使用Viewport
          Viewport可以加速頁面的渲染,請使用以下代碼
          <meta name=”viewport” content=”width=device-width, initial-scale=1″>
          * 減少Dom節點
          Dom節點太多影響頁面的渲染,應盡量減少Dom節點
          * 動畫優化
          a) 盡量使用CSS3動畫
          b) 合理使用requestAnimationFrame動畫代替setTimeout
          c) 適當使用Canvas動畫 5個元素以內使用css動畫,5個以上使用Canvas動畫(iOS8可使用webGL)

          * 高頻事件優化
          Touchmove、Scroll 事件可導致多次渲染
          a) 使用requestAnimationFrame監聽幀變化,使得在正確的時間進行渲染
          b) 增加響應變化的時間間隔,減少重繪次數

          * GPU加速
          CSS中以下屬性(CSS3 transitions、CSS3 3D transforms、Opacity、Canvas、WebGL、Video)來觸發GPU渲染,請合理使用(PS:過渡使用會引發手機過耗電增加)

          17.CSS動畫與Canvas動畫性能優劣分析

          a、CSS動畫更為流暢、但內存占用過高,動畫元素在5個以內更為推薦;
          b、Canvas動畫存在丟幀現象,這一現象在android中低端手機中表現更為明顯;
          c、5個以內動畫元素,選用CSS動畫,80%的設備幀頻可達80以上。
          

          18.移動端怎么自適應?

          移動自適應的話一般我用的話就是rem,通過rem單位配合媒體查詢來完成幾個屏幕的適配,以iphone6位標準,向上適配plus,向下適配5,不做過多的適配,有時候有要求的話也用js來控制rem的大小達到適配效果,rem是相對單位,相對html元素的font-size值的屬性,比如font-size:100px; 的話1rem就得100px,這樣我子需要通過改變html的font-size就可以達到適配效果

          19.如何開啟gpu加速?

          為動畫DOM元素添加CSS3樣式-webkit-transform:transition3d(0,0,0)或-webkit-transform:translateZ(0);,這兩個屬性都會開啟GPU硬件加速模式,從而讓瀏覽器在渲染動畫時從CPU轉向GPU

          通過-webkit-transform:transition3d/translateZ開啟GPU硬件加速之后,有些時候可能會導致瀏覽器頻繁閃爍或抖動,可以嘗試以下辦法解決之:
          -webkit-backface-visibility:hidden;
          -webkit-perspective:1000;

          通過-webkit-transform:transition3d/translateZ開啟GPU硬件加速的適用范圍:
          使用很多大尺寸圖片(尤其是PNG24圖)進行動畫的頁面。
          頁面有很多大尺寸圖片并且進行了css縮放處理,頁面可以滾動時。
          使用background-size:cover設置大尺寸背景圖,并且頁面可以滾動時
          編寫大量DOM元素進行CSS3動畫時(transition/transform/keyframes/absTop&Left)
          使用很多PNG圖片拼接成CSS Sprite時

          20.物理1像素怎么實現

          可以使用after插入的形式將寬度設置為200%,然后通過css transfrom 的scale 縮放0.5倍;

          21.響應式布局的原理

          Meta標簽定義

          使用 viewport meta 標簽在手機瀏覽器上控制布局

          <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
          

          通過快捷方式打開時全屏顯示

          <meta name="apple-mobile-web-app-capable" content="yes" />
          

          隱藏狀態欄

          <meta name="apple-mobile-web-app-status-bar-style" content="blank" />
          iPhone會將看起來像電話號碼的數字添加電話連接,應當關閉
          <meta name="format-detection" content="telephone=no" />
          使用Media Queries適配對應樣式

          常用于布局的CSS Media Queries有以下幾種:

          設備類型(media type):

          all所有設備;
          screen 電腦顯示器;
          print打印用紙或打印預覽視圖;
          handheld便攜設備;
          tv電視機類型的設備;
          speech語意和音頻盒成器;
          braille盲人用點字法觸覺回饋設備;
          embossed盲文打印機;
          projection各種投影設備;
          tty使用固定密度字母柵格的媒介,比如電傳打字機和終端。

          設備特性(media feature):

          width瀏覽器寬度;
          height瀏覽器高度;
          device-width設備屏幕分辨率的寬度值;
          device-height設備屏幕分辨率的高度值;
          orientation瀏覽器窗口的方向縱向還是橫向,當窗口的高度值大于等于寬度時該特性值為portrait,否則為landscape;
          aspect-ratio比例值,瀏覽器的縱橫比;
          device-aspect-ratio比例值,屏幕的縱橫比。

          設置多種視圖寬度

          @media only screen and (min-width:768px)and(max-width:1024px){}
          @media only screen and (width:320px)and (width:768px){}
          

          百分比布局

          寬度不固定,可以使用百分比

          #head{width:100%;}
          #content{width:50%;}
          

          響應式圖片

          #wrap img{
            max-width:100%;
            height:auto;
          }
          

          字體設置

          一個響應式的字體應關聯它的父容器的寬度,這樣才能適應客戶端屏幕。css3引入了新的單位叫做rem,和em類似但對于Html元素,rem更方便使用。em是相對于根元素的,需重置根元素字體大小:

          html{font-size:100%;}
          

          完成后,可以定義響應式字體:

          @media (min-width:640px){body{font-size:1rem;}}
          @media (min-width:960px){body{font-size:1.2rem;}}
          @media (min-width:1200px){body{font-size:2rem;}}
          
          

          22.常見dpr

          ip6 2、ip6+ 3、nexus5 3

          23.移動端適配

          1) 自適應方式
          2) viewport方式
          3) rem方式
          4) scale()方式縮放

          24.常用meta

          IE相關

          避免IE使用兼容模式 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
          為不支持viewport的IE Mobile設定寬度 <meta name="MobileOptimized" content="320" />
          是否對手持設備友好 <meta name="HandheldFriendly" content="true" />

          UC瀏覽器

          強制豎屏 <meta name="screen-orientation" content="portrait" />
          強制全屏 <meta name="full-screen" content="yes" />
          應用模式 <meta name="browsermode" content="application" />

          X5瀏覽器

          強制豎屏 <meta name="x5-orientation" content="portrait" />
          強制全屏 <meta name="x5-fullscreen" content="yes" />
          應用模式 <meta name="x5-page-mode" content="app" />

          360

          開啟極速模式 <meta name="renderer" content="webkit" />

          iphone相關

          啟動webapp功能 刪除工具欄和菜單欄 <meta name="apple-mobile-web-app-capable" content="yes">
          控制狀態欄顏色 <meta name="apple-mobile-web-app-status-bar-style" content="black" />
          開啟號碼或郵箱檢測 <meta name="format-detection" content="telephone=no" />
          添加主屏幕icon <link rel="apple-touch-icon" href="touch-icon-iphone.png”>

          25.html5的新api

          重力感應 DeviceOrientation
          手機加速傳感器 DeviceMotion

          history 詳細

          以Pjax方式實現SPA history.pushState history.replaceState 解決ajax不能后退前進問題
          儲存
          客戶端儲存:localStorage sessionStorage>只存在一個會話周期內
          跨域
          postMessage

          26.你們怎么嵌套h5頁面的

          一般都是我前端這邊開發好h5頁面給安卓和ios一個地址,然后告訴他們我有哪些方法,然后在做一些安卓ios的接口調用,安卓和ios會吧他們的方法提供一個接口給我,我直接調用就好,一般都是調用一些分享,跳轉之類的方法

          27.webapp你主要做的是哪個模塊,是頁面布局做的多還是交互做的多

          webapp部分基本都是我自己負責開發,頁面交互都做,因為當時剛去公司的時候公司也剛往這個方向發展,讓我也一直就負責移動業務這塊的內容

          28.bootstrap用嗎?

          用,bootstrap組要就是用一些他的樣式組件,還有最強大的就是他的刪格化系統了,做響應式的網站,我們公司的官網就是用的bootstrap做的,后臺管理系統也是,當時也是我負責給我們公司的后臺分享如何使用bootstrap的


          主站蜘蛛池模板: 久久一区二区免费播放| 最新中文字幕一区二区乱码| 少妇激情一区二区三区视频| 夜精品a一区二区三区| 日本免费一区二区三区| 美女视频一区二区| 国产一区二区三区韩国女主播| 精彩视频一区二区三区| 亚洲国产欧美国产综合一区| 无码人妻少妇色欲AV一区二区| 久久一区二区三区99| 欧洲精品码一区二区三区免费看 | 日韩国产一区二区| 99久久无码一区人妻a黑| 亚洲国产一区在线| 亚洲天堂一区二区| 91视频一区二区| 精品一区二区三区免费毛片爱 | 国产成人精品无码一区二区三区 | 国产成人无码一区二区三区| 日本精品一区二区久久久| 日本精品高清一区二区2021| 无码人妻一区二区三区免费| 一区二区三区精密机械| 最新中文字幕一区二区乱码| 国模精品一区二区三区视频| 清纯唯美经典一区二区| 精品无码综合一区| 久久se精品一区精品二区| 久久精品亚洲一区二区| 麻豆一区二区在我观看| 国产精品香蕉一区二区三区| 国精产品一区一区三区MBA下载 | 亚洲乱码一区二区三区国产精品| 91视频国产一区| 福利一区在线视频| 久久久久99人妻一区二区三区| 视频在线一区二区三区| 国产免费私拍一区二区三区| 成人精品视频一区二区三区不卡| 好爽毛片一区二区三区四无码三飞|