1 . 網(wǎng)頁亂碼的問題的產(chǎn)生,及解決
- 產(chǎn)生原因:編寫網(wǎng)頁代碼時保存的編碼和瀏覽器解析時的解碼格式不匹配。
- 錯誤方式:
1 .<head>里未添加確定的編碼方式如<meta charset=“utf-8”>
2 . 瀏覽器端未選擇正確的解碼格式。 - 解決辦法:
1 . 一般情況下用<meta>標簽聲明即可,實驗中發(fā)現(xiàn)在sublime中 不能簡單地添加<meta charset="GBK">而是應該安裝插件解決。
2 . 在選項中選擇對應的解碼格式。
2 . 顏色的寫法;紅色、 綠色、藍色、白色、黑色的表示? 透明黑色如何表示?#ccc的顏色, #eee的顏色? #333的顏色?
- 三種顏色表示
1 . 16進制表示,以“#”開頭。
2 . rgb(x,x,x)(rgba的a表示透明度)
3 . 一些顏色可以用對應的英文
紅:#ff0000 | #f00 | #RGB(255,0,0)| #red
綠:#00ff00 | #0f0 | #RGB(0,255,0)| #green
藍:#0000ff | #00f | #RGB(0,0,255)| #blue
白:#ffffff |#fff | #RGB(255,255,255) | #white
黑:#000000| #000 | #RGB(0,0,0)| #black
- 透明黑色: rgba(0,0,0,0)
rgba中的a代表的是透明度,例子:rgba(255,255,255,0)表示白色完全透明(1為完全不透明),此為CSS3中的新樣式。
#ccc:表示中等灰色
#eee:表示淡灰色
#333:表示濃灰色
3 .<!doctype html>的作用
<!DOCTYPE>聲明不是 HTML 標簽而是指示 web 瀏覽器關于頁面使用哪個 HTML 版本進行編寫的指令。它必須是 HTML 文檔的第一行,位于 <html> 標簽之前。它和HTML 4.01有三種 <!DOCTYPE> 聲明不同,在 HTML5 中只有一種<!DOCTYPE html>。它沒有結束標簽,對大小寫也不敏感,必須始終向 HTML 文檔添加 <!DOCTYPE> 聲明,這樣瀏覽器才能獲知文檔類型。如果html中沒有加上doctype 可能在不同瀏覽器出現(xiàn)bug. 所以html加上doctype是至關重要的
4 . 嚴格模式和混雜模式指什么
混雜模式(怪異模式)和嚴格模式(標準模式)是瀏覽器解析CSS時的兩種模式。
早期的瀏覽器在實現(xiàn)CSS機制時,為了保證自己的網(wǎng)站在不同的瀏覽器中都能正確展現(xiàn),開發(fā)者不得不依據(jù)各個瀏覽器的自身的規(guī)范來使用CSS。因此大部分網(wǎng)站的CSS實現(xiàn)并未符合W3C的標準。然而隨著標準一致性變得越來越重要,瀏覽器開發(fā)商不得不面臨一個艱難的抉擇:逐漸遵循W3C的標準是前進的方向。但是改變現(xiàn)有CSS的實現(xiàn),完整去遵循標準,會使許多網(wǎng)站或多或少受到破壞。如果瀏覽器突然以正確的方式解析現(xiàn)存的CSS,陳舊的網(wǎng)站顯示必然受到影響。因此立即遵循標準會產(chǎn)生問題,然而忽略標準則又會維持瀏覽器競爭時所產(chǎn)生的混亂。因此所有的瀏覽器提供了兩種模式:
- 嚴格模式:指聲明了文檔類型的模式,也就是在HTML頁面最上面加上了<!doctype html>(html5的聲明),并且頁面以最高標準進行顯示;
- 混雜模式(怪異模式):指未聲明文檔類型的模式,也就是沒加<!doctype html>,并且標準不嚴,好處是可以向老版本的瀏覽器進行兼容;
5 . meta 的作用,常見的值:
- <meta>標簽位于文檔頭部<head>區(qū),通常用來為搜索引擎robots定義頁面主題,或者是定義用戶瀏覽器上的 cookie;它可以用于鑒別作者,設定頁面格式,標注內(nèi)容提要和關鍵字;還可以設置頁面使其可以根據(jù)你定義的時間間隔刷新自己,以及設置RASC內(nèi)容等級等。
- meta標簽共有兩個屬性,它們分別是http-equiv屬性和name屬性。name 屬性主要用于描述網(wǎng)頁,對應于content(網(wǎng)頁內(nèi)容),以便于搜索引擎機器人查找、分類。http-equiv用以說明主頁制作所方法。
name屬性的對應值有:
- content,content中的內(nèi)容主要是便于搜索引擎機器人查找信息和分類信息用的。
- Keywords(關鍵字),keywords用來告訴搜索引擎你網(wǎng)頁的關鍵字是什么。
- description(網(wǎng)站內(nèi)容描述),description用來告訴搜索引擎你的網(wǎng)站主要內(nèi)容。
- robots(機器人向?qū)?,robots用來告訴搜索機器人哪些頁面需要索引,哪些頁面不需要索引。
- author(作者),標注網(wǎng)頁的作者
- meta標簽的generator的信息參數(shù),代表說明網(wǎng)站的采用的什么軟件制作。
- meta標簽的COPYRIGHT的信息參數(shù),代表說明網(wǎng)站版權信息。
- revisit-after代表網(wǎng)站重訪,7days代表7天,依此類推。
http-equiv屬性的對應值有:
- Expires(期限),可以用于設定網(wǎng)頁的到期時間。一旦網(wǎng)頁過期,必須到服務器上重新傳輸。
- Pragma(cache模式),禁止瀏覽器從本地計算機的緩存中訪問頁面內(nèi)容。
- Refresh(刷新),自動刷新并指向新頁面。
- Set-Cookie(cookie設定),如果網(wǎng)頁過期,那么存盤的cookie將被刪除。
- Window-target(顯示窗口的設定),強制頁面在當前窗口以獨立頁面顯示。
- content-Type(顯示字符集的設定),設定頁面使用的字符集。
- content-Language(顯示語言的設定)
- Cache-Control指定請求和響應遵循的緩存機制。
- imagetoolbar指定是否顯示圖片工具欄,當為false代表不顯示,當為true代表顯示。
- Content-Script-Type,W3C網(wǎng)頁規(guī)范,指明頁面中腳本的類型。
6 . <meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1"有什么作用
- X-UA-Compatible是IE8的一個專有<meta>屬性,用來指定IE8瀏覽器去模擬某個特定版本的IE瀏覽器的渲染方式。谷歌內(nèi)嵌瀏覽器框架GFC:可以讓用戶的IE瀏覽器外觀不變,但用戶在瀏覽網(wǎng)頁時,實際上使用的是Google Chrome瀏覽器內(nèi)核,而且支持IE6、7、8等多個版本的IE瀏覽器。
- 此標記的作用是:在開發(fā)時指定頁面默認首先使用GCF進行渲染,如果未安裝GCF,看是否安裝ie8,如果是,使用最高版本IE內(nèi)核進行渲染。如果兩個條件都不滿足,此條標記無效。
參考:神奇的content="IE=edge,chrome=1"的meta標簽
7 . 常見的瀏覽器有哪些,什么內(nèi)核
瀏覽器用的內(nèi)核,一般不外乎微軟的IE 內(nèi)核和webkit內(nèi)核。所謂內(nèi)核,就是常駐內(nèi)存、能夠快速響應的那一部分核心代碼,非內(nèi)核代碼都是要用到時再調(diào)入內(nèi)存并執(zhí)行的。webkit內(nèi)核更小巧快速,但兼容性不如IE內(nèi)核。所以有些瀏覽器是用的雙內(nèi)核,可以在高速模式和兼容模式間切換。
-
Trident內(nèi)核代表產(chǎn)品Internet Explorer,又稱其為IE內(nèi)核。
Trident(又稱為MSHTML),是微軟開發(fā)的一種排版引擎。使用Trident渲染引擎的瀏覽器包括:IE、傲游、世界之窗瀏覽器、Avant、騰訊TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。 -
Gecko內(nèi)核代表作品Mozilla
FirefoxGecko是一套開放源代碼的、以C++編寫的網(wǎng)頁排版引擎。Gecko是最流行的排版引擎之一,僅次于Trident。使用它的最著名瀏覽器有Firefox、Netscape6至9。 -
WebKit內(nèi)核代表作品Safari、Chromewebkit
是一個開源項目,包含了來自KDE項目和蘋果公司的一些組件,主要用于Mac OS系統(tǒng),它的特點在于源碼結構清晰、渲染速度極快。缺點是對網(wǎng)頁代碼的兼容性不高,導致一些編寫不標準的網(wǎng)頁無法正常顯示。主要代表作品有Safari和Google的瀏覽器Chrome。 -
Presto內(nèi)核代表作品OperaPresto
是由Opera Software開發(fā)的瀏覽器排版引擎,供Opera 7.0及以上使用。它取代了舊版Opera 4至6版本使用的Elektra排版引擎,包括加入動態(tài)功能,例如網(wǎng)頁或其部分可隨著DOM及Script語法的事件而重新排版。
參考:瀏覽器內(nèi)核歷史
- 學習參考
- 一些標簽屬性的作用可以參考bootstrap編碼規(guī)范中的 HTML 部分
- 瀏覽器亂碼參考聊一聊編碼與亂碼