1、HTML、XML、XHTML 有什么區別
HTML是超文本標記語言(Hyper Text Markup Language),是語法較為松散的、不嚴格的Web語言。比如大小寫混寫,編碼不規范。
XML是可擴展標識語言(The Extensible Markup Language),主要用于存儲數據和結構,重點是什么是數據,如何存放數據。XML 沒有預定義的標簽,是一種允許用戶對自己的標記語言進行定義的源語言。
XHTML是可擴展超文本標記語言(Extensible Hyper Text Markup Language),基于XML,作用與HTML類似,但語法更嚴格。
最主要的不同:
- XHTML 元素必須被正確地嵌套;
- XHTML 元素必須被關閉;
- XHTML 標簽名必須用小寫字母;
- XHTML 文檔必須擁有根元素;
2、怎樣理解 HTML 語義化
根據內容的結構化(內容語義化),選擇合適的標簽(代碼語義化)便于開發者閱讀和寫出更優雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。簡單來講是讓代碼更方便理解,更簡潔,脫離了CSS還能看懂頁面。
隨著互聯網的發展,WEB承載越來越多的信息(圖片,聲音,視頻等),人們開始用機器來處理網絡信息,就此誕生了搜索引擎。如此龐大及復雜的信息如何讓搜索引擎處理和挖掘,所以讓機器能夠更好地讀懂WEB上內容就變得越來越重要。
語義化可以帶來的好處:
-. 清晰的頁面結構:去掉或樣式丟失的時候,也能讓頁面呈現清晰的結構,增強頁面的可讀性。
-. 支持更多的設備:屏幕閱讀器(如果訪客有視障)會完全根據你的標記來“讀”你的網頁。 如果你使用的含語義的標記,屏幕閱讀器會根據你的標簽來判斷網頁的內容,而不是一個字母一個字母的拼寫出來。
-. 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息,搜索引擎的爬蟲也依賴于標記來確定上下文和各個關鍵字的權重。
-. 便于團隊開發和維護:在團隊中大家都遵循同一個標準,可以減少很多差異化的東西,方便開發和維護,提高開發效率,甚至實現模塊化開發。
3、怎樣理解內容與樣式分離的原則
Html指的是結構;CSS指的是樣式;JavaScript指的是行為。
- 寫 HTML 的時候先不管樣式, 重點放在HTML的結構和語義化上,讓 HTML 能體現頁面結構或者內容。之后再去寫樣式。
- HTML 內不允許出現屬性樣式,盡量不要出現行內樣式。
- 寫 JS 的時候,盡量不要用 JS 去直接操作樣式,而是通過給元素添加刪除class來控制樣式變化。
4、有哪些常見的meta標簽
標簽 | 含義 |
---|---|
<meta charset="utf-8"> | 聲明文檔使用的字符編碼 |
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> | 聲明文檔兼容模式,指示IE以目前可用的最高模式顯示內容 |
<meta name="keywords" content="your tags"> | 定義針對搜索引擎的關鍵詞 |
<meta name="description" content="不超過850個字符"> | 頁面描述,告訴搜索引擎你的站點的主要內容 |
<meta name="author" content="你的姓名"> | 定義網頁作者 |
<meta name="revised" content="David, 2008/8/8/" /> | 定義頁面的最新版本 |
<meta http-equiv="refresh" content="5"/> | 5秒刷新一次頁面 |
<meta http-equiv="expires" content="Mon,12 May 2001 00:20:00 GMT"> | 用于設定網頁的到期時間,一旦過期則必須到服務器上重新調用。需要注意的是必須使用GMT時間格式 |
<meta http-equiv="pragma" content="no-cache"> | 禁用緩存 |
<meta http-equiv="set-cookie" content="Mon, 12 May 2001 00:20:00 GMT"> | cookie設定,如果網頁過期,存盤的cookie將被刪除。需要注意的也必須使用GMT時間格式。 |
<meta name="robots" content="index,follow" /> | 搜索引擎索引方式 |
<meta name="robots" content="index,follow" />
all:文件將被檢索,且頁面上的鏈接可以被查詢;
none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
index:文件將被檢索;
follow:頁面上的鏈接可以被查詢;
noindex:文件將不被檢索;
nofollow:頁面上的鏈接不可以被查詢。
5、文檔聲明的作用,嚴格模式和混雜模式指什么?<!doctype html>的作用?
網頁的DOCTYPE聲明的作用
DOCTYPE是document type(文檔類型)的簡寫,在Web設計中用來說明你用的XHTML或者HTML是什么版本。要建立符合標準的網頁,DOCTYPE聲明是必不可少的關鍵組成部分;除非你的XHTML確定了一個正確的DOCTYPE,否則你的標識和CSS都不會生效。
在HTML中 doctype 有兩個主要目的:
- 對文檔進行有效性驗證
- 決定瀏覽器的呈現模式
Doctype可聲明三種DTD類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。
當瀏覽器廠商開始創建與標準兼容的瀏覽器時,他們希望確保向后兼容性。為了實現這一點,他們創建了兩種呈現模式: 標準模式和混雜模式
- 嚴格模式的排版和 JS 運作模式是以該瀏覽器支持的最高標準運行;
- 在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示,模擬老式瀏覽器的行為以防止老站點無法工作。
模式觸發
- 瀏覽器根據DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現方法。如果XHTML、HTML 4.01文 檔包含形式完整的DOCTYPE,那么它一般以標準模式呈現。
- 包含過渡DTD和URI的DOCTYPE也導致頁面以標準模式呈現,但是有過渡DTD而沒有URI會導致頁面以混雜模式呈現。
- DOCTYPE不存在或形式不正確會導致HTML和XHTML文檔以混雜模式呈現。
html5既然沒有DTD,也就沒有嚴格模式與寬松模式的區別,html5有相對寬松的語法,實現時,已經盡可能大的實現了向后兼容。
6、瀏覽器亂碼的原因是什么?如何解決
亂碼產生的根本原因
- 保存的編碼格式和瀏覽器解析時的解碼格式不匹配導致
- 亂碼一般是英文以外的字符才會出現
解決辦法 - 設置<meta charset>標簽聲明文檔使用的字符編碼
- 設置正確的字符編碼
- 設置瀏覽器顯示正確的編碼
如果瀏覽器瀏覽時候出現網頁亂碼,在瀏覽器中找到轉換編碼的菜單調整。
IE9瀏覽器:在需要轉碼的網頁空白出右鍵鼠標,選擇“編碼”。
傲游瀏覽器:在需要轉碼的網頁時,菜單“查看”-->“編碼”即可選擇轉換編碼。
谷歌瀏覽器:在需要轉碼的網頁時,點擊右上角“三橫”圖標選擇“工具”-->“編碼”即可選擇切換網頁編碼。
7、常見的瀏覽器有哪些?什么內核?
瀏覽器內核指的是(參考)
瀏覽器內核又可以分成兩部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它負責取得網頁的內容(HTML、XML、圖像等等)、整理訊息(例如加入 CSS 等),以及計算網頁的顯示方式,然后會輸出至顯示器或打印機。
瀏覽器的內核的不同對于網頁的語法解釋會有不同,所以渲染的效果也不相同。所有網頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網絡內容的應用程序都需要內核。JS 引擎則是解析 Javascript 語言,執行 javascript 語言來實現網頁的動態效果。
最開始渲染引擎和 JS 引擎并沒有區分的很明確,后來 JS 引擎越來越獨立,內核就傾向于只指渲染引擎。有一個網頁標準計劃小組制作了一個 ACID 來測試引擎的兼容性和性能。內核的種類很多,如加上沒什么人使用的非商業的免費內核,可能會有 10 多種,但是常見的瀏覽器內核可以分這四種:Trident、Gecko、Webkit、Blink。
一、Trident內核代表產品Internet Explorer,又稱其為IE內核。
Trident(IE內核)是微軟在 Mosaic代碼的基礎之上修改而來的,Trident實際上是一款開放的內核,其接口內核設計的相當成熟,因此才有許多采用 IE 內核而非 IE 的瀏覽器(殼瀏覽器)涌現。
Trident內核常見的瀏覽器有:
- IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);
- 獵豹安全瀏覽器:1.0-4.2版本為Trident+Webkit,4.3版本為Trident+Blink;
- 360安全瀏覽器 :1.0-5.0為Trident,6.0為Trident+Webkit,7.0為Trident+Blink;
- 360極速瀏覽器:7.5之前為Trident+Webkit,7.5為Trident+Blink;
- 傲游瀏覽器 :傲游1.x、2.x為IE內核,3.x為IE與Webkit雙核;
- 搜狗高速瀏覽器:1.x為Trident,2.0及以后版本為Trident+Webkit;
由于市場占有率高,微軟很長時間都并沒有更新 Trident 內核,導致 - 一是 Trident 內核曾經幾乎與 W3C 標準脫節(2005年)
- 二是 Trident 內核的大量 Bug 等安全性問題沒有得到及時解決。
二、Gecko內核Gecko(Firefox內核)
Gecko:Netscape6開始采用的內核,后來的Mozilla FireFox(火狐瀏覽器) 也采用了該內核,Gecko的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因為這是個開源內核,因此受到許多人的青睞,Gecko內核的瀏覽器也很多,這也是Gecko內核雖然年輕但市場占有率能夠迅速提高的重要原因。
不過事實上,Gecko 內核的瀏覽器仍然還是Firefox (火狐) 用戶最多,所以有時也會被稱為Firefox內核。此外Gecko也是一個跨平臺內核,可以在Windows、 BSD、Linux和Mac OS X中使用。
三、WebKit內核代表作品Safari、Chromewebkit
Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在GPL條約下授權,同時支持BSD系統的開發。所以Webkit也是自由軟件,同時開放源代碼。
特點在于源碼結構清晰、渲染速度極快。
缺點是對網頁代碼的兼容性不高,導致一些編寫不標準的網頁無法正常顯示。
WebKit內核常見的瀏覽器:
- Apple Safari (Win/Mac/iPhone/iPad)
- Android 默認瀏覽器
- Google Chrome
四、Bink
Blink 是一個由Google和Opera Software開發的瀏覽器排版引擎,這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支。
Google 決定從 WebKit 衍生出自己的 Blink 引擎,將在 WebKit 代碼的基礎上研發更加快速和簡約的渲染引擎,并逐步脫離 WebKit 的影響,創造一個完全獨立的 Blink 引擎。
8、列出常見的標簽,并簡單介紹這些標簽用在什么場景
標簽 | 場景 |
---|---|
head標簽 | head標簽是頁面的“頭部”, 一般來說,只有6個標簽能放在<head>標簽內:<title>、<meta>、<link>、<style>、<script>、<base> |
body標簽 | body標簽是頁面的“身體” |
h1~h6標簽 | 設置不同的標題 |
p標簽 | 使用p標簽來標記一段文字 |
標簽 |
換行 |
<div>標簽 | 主要用來為HTML文檔內大塊的內容提供結構和背景 |
<ul>標簽 | 無序列表 |
<ol>標簽 | 有序列表 |
<form>標簽 | 設置一個表單 |
<img>標簽 | 設置一個圖像 |