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