刷前端面經筆記(七)
1.描述一下漸進增強和優雅降級
優雅降級( graceful degradation
):一開始就構建站點的完整功能,然後針對瀏覽器測試和修復。
漸進增強( progressive enhancement
):一開始只構建站點的最少特性,然後不斷針對各瀏覽器追加功能。
2.為什麼利用多個域名來請求網路資源會更有效?
動靜分離請求,使用不同的伺服器處理請求,提高效率;
突破瀏覽器的併發限制,同一時間針對同一域名下的請求有一定的數量限制。
節約主域名的連線數,從而提高客戶端網路頻寬的利用率,優化頁面響應。
3.HTML5有哪些新特性、移除了哪些元素?
1)繪畫標籤 canvas
;
2)用於媒介回放的 video
和 audio
元素;
3)本地離線儲存 localStorage
長期儲存資料,瀏覽器關閉後資料不丟失;
4) sessionStorage
的資料在瀏覽器關閉後自動刪除;
5)語義化更好的內容元素,比如 article
、 footer
、 header
、 nav
、 section
;
6)表單控制元件, calendar
、 data
、 time
、 email
、 url
、 search
;
7) webworker
、 websocket
、 Geolocation
;
移除的元素:
1)純表現的元素:basefont
、
big
、
center
、
font
、
s
、
strike
、
tt
2)對可用性產生負面影響的元素: frame
、 frameset
、 noframes
4.display:none;與visibility:hidden;的區別?
相同點:它們都能讓元素不可見‘
不同點:
display:none;
會讓元素完全從渲染樹中消失,渲染的時候不佔據任何空間;
visibility:hidden;
不會讓元素從渲染樹消失,渲染元素繼續佔據空間,只是內容不可見;
display:none;
是非繼承屬性,子孫節點的消失由於元素從渲染樹消失造成,通過修改子孫節點屬性無法顯示;
visibility:hodden;
是繼承屬性,子孫節點的消失由於繼承了hidden,通過設定 visibility:visible;
可以讓子孫節點顯示;
修改常規流中元素的 display
通常會造成文件重排。修改 visibility
屬性只會造成本元素的重繪;
讀屏器不會讀取 display:none;
元素內容;會讀取 visibility:hidden;
元素內容;
5.CSS去掉inline-block元素間隙的幾種方法?
間隙是怎麼來的:間隙是由換行或者回車導致的;只要把標籤寫成一行或者標籤沒有空格,就不會出現間隙;
去除方法:
方法一:
元素間的間隙出現的原因,是元素標籤之間的空格,把空格去掉間隙就會消失
<div class="itlike"> <span>lhh</span><span>lhh</span> </div>
方法二:
利用 HTML
註釋標籤
<div class="demo"> <span>lhh</span><!-- --><span>lhh</span> </div>
方法三:
取消標籤閉合
<div class="demo"> <span>lhh <span>lhh <span>lhh <span>lhh </div>
方法四:
在父容器上使用 font-size:0;
可以消除間隙
<div class="demo"> <span>lhh</span> <span>lhh</span> <span>lhh</span> <span>lhh</span> </div> .demo {font-size: 0;}
6.input標籤的type種類
button
、 checkbox
、 file
、 hidden
、 image
、 password
、 radio
、 reset
、 submit
、 text