HTML、XML、XHTML 有什么區(qū)別掘而?
HTML: HTML是一種用于創(chuàng)建網(wǎng)頁(yè)的語言挟冠,中文叫超文本標(biāo)記語言,英文是HyperText Markup Language袍睡,簡(jiǎn)稱:HTML知染。HTML不是編程語言,它使用標(biāo)記標(biāo)簽來描述網(wǎng)頁(yè)斑胜。列如:<h1></h1>
就是代表一級(jí)標(biāo)題的標(biāo)簽控淡。
XML: XML可擴(kuò)展標(biāo)記語言(EXtensible Markup Language),也是一種標(biāo)記語言,但是XML與HTML作用不同止潘,XML是用于傳輸和攜帶數(shù)據(jù)掺炭,不是用于展示數(shù)據(jù)。所以XML用途的主要是它說明數(shù)據(jù)是什么凭戴,以及攜帶數(shù)據(jù)信息涧狮。XML的標(biāo)簽沒有被定義,需要自己定義標(biāo)簽么夫。
XHTML: 可擴(kuò)展超文本標(biāo)記語言(英語:eXtensible HyperText Markup Language者冤,XHTML),是一種標(biāo)記語言,與 HTML 4.01 幾乎是相同档痪,但是語法上更為嚴(yán)格涉枫,從繼承關(guān)系上講,HTML是一種基于標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)的應(yīng)用腐螟,是一種非常靈活的置標(biāo)語言拜银,而XHTML則基于可擴(kuò)展標(biāo)記語言(XML),XML是SGML的一個(gè)子集遭垛。HTML語法要求比較松散尼桶,機(jī)器不好處理,所以定義更為嚴(yán)格的XHTML锯仪。
怎樣理解 HTML 語義化泵督?
語義化是指根據(jù)內(nèi)容的結(jié)構(gòu)選擇合適的標(biāo)簽,語義化不僅方便開發(fā)者閱讀代碼庶喜,也利于瀏覽器的爬蟲和機(jī)器解析標(biāo)簽小腊。語義化有以下幾個(gè)好處:
1.有利于閱讀代碼
2.有利于seo(搜尋引擎最佳化),有助于爬蟲抓取到更多的有利信息。
3.語義化的html沒有css樣式也可以很好的理解代碼久窟。
4.便于開發(fā)和維護(hù)秩冈。
怎樣理解內(nèi)容與樣式分離的原則?
一個(gè)完整的網(wǎng)頁(yè)主要由三部分組成斥扛,html控制網(wǎng)頁(yè)的結(jié)構(gòu)入问,css控制網(wǎng)頁(yè)的樣式,javascript控制網(wǎng)頁(yè)的行為,內(nèi)容與樣式分離是指將網(wǎng)頁(yè)的編碼結(jié)構(gòu)與樣式分開芬失,在寫網(wǎng)頁(yè)之初楣黍,先不考慮樣式,先把網(wǎng)頁(yè)結(jié)構(gòu)寫出來棱烂,讓html可以體現(xiàn)網(wǎng)頁(yè)的內(nèi)容和結(jié)構(gòu)租漂,再用css設(shè)置網(wǎng)頁(yè)的樣式,最后用js控制網(wǎng)頁(yè)的行為
內(nèi)容與樣式分離的好處:
1.便于維護(hù)颊糜,當(dāng)網(wǎng)頁(yè)的某些樣式需要修改的時(shí)候不用動(dòng)頁(yè)面的結(jié)構(gòu)哩治,可以在css中修改,也減少后臺(tái)開發(fā)人員的工作量衬鱼。
2.方便JavaScript腳本編寫业筏,用js控制標(biāo)簽的className來動(dòng)態(tài)的改變?cè)氐臉邮剑皇侵苯有薷钠渚唧w樣式馁启。
3.一個(gè)css文件可以用在多個(gè)不同的頁(yè)面驾孔,重用率高芍秆。
4.使網(wǎng)頁(yè)更小惯疙,加載速度快。
有哪些常見的meta標(biāo)簽妖啥?
網(wǎng)頁(yè)相關(guān)的
1.申明編碼
<meta charset='utf-8' />
2.優(yōu)先使用 IE 最新版本和 Chrome
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
3.瀏覽器內(nèi)核控制
國(guó)內(nèi)瀏覽器很多都是雙內(nèi)核(webkit和Trident),webkit內(nèi)核高速瀏覽霉颠,IE內(nèi)核兼容網(wǎng)頁(yè)和舊版網(wǎng)站。 而添加meta標(biāo)簽的網(wǎng)站可以控制瀏覽器選擇何種內(nèi)核渲染荆虱。
<meta name="renderer" content="webkit|ie-comp|ie-stand">
4.禁止瀏覽器從本地計(jì)算機(jī)的緩存中訪問頁(yè)面內(nèi)容
<meta http-equiv="Pragma" content="no-cache">
用于SEO優(yōu)化
1.頁(yè)面關(guān)鍵詞
每個(gè)網(wǎng)頁(yè)應(yīng)具有描述該網(wǎng)頁(yè)內(nèi)容的一組唯一的關(guān)鍵字
<meta name="keywords" content="your tags" />
2.設(shè)置搜索引擎索引方式
<meta name="robots" content="index,follow" />
all:文件將被檢索蒿偎,且頁(yè)面上的鏈接可以被查詢;
none:文件將不被檢索怀读,且頁(yè)面上的鏈接不可以被查詢诉位;
index:文件將被檢索;
follow:頁(yè)面上的鏈接可以被查詢菜枷;
noindex:文件將不被檢索苍糠;
nofollow:頁(yè)面上的鏈接不可以被查詢。
移動(dòng)設(shè)備
1.viewport
viewport能優(yōu)化移動(dòng)瀏覽器的顯示
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"/>
2.WebApp全屏模式
啟用全屏模式, 偽裝app啤誊,離線應(yīng)用
<meta name="apple-mobile-web-app-capable" content="yes" />
3.隱藏狀態(tài)欄/設(shè)置狀態(tài)欄顏色
只有在開啟WebApp全屏模式時(shí)才生效岳瞭。 content的值為default | black | black-translucent 。
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
4.添加到主屏后的標(biāo)題
<meta name="apple-mobile-web-app-title" content="標(biāo)題">
5.忽略數(shù)字自動(dòng)識(shí)別為電話號(hào)碼
<meta content="telephone=no" name="format-detection" />
6.忽略識(shí)別郵箱
<meta content="email=no" name="format-detection" />
7.針對(duì)不識(shí)別Viewport的手持設(shè)備進(jìn)行優(yōu)化
<meta name="HandheldFriendly" content="true">
8.添加智能 App 廣告條 Smart App Banner
告訴瀏覽器這個(gè)網(wǎng)站對(duì)應(yīng)的app蚊锹,并在頁(yè)面上顯示下載banner
<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
文檔聲明的作用?嚴(yán)格模式和混雜模式指什么?<!doctype html> 的作用?
文檔聲明的作用
DOCTYPE是document type(文檔類型)的簡(jiǎn)寫瞳筏,告知瀏覽器以何種模式來渲染文檔。 在 HTML 4.01 中牡昆,<!DOCTYPE> 聲明引用 DTD姚炕,因?yàn)?HTML 4.01 基于 SGML。DTD 規(guī)定了標(biāo)記語言的規(guī)則,這樣瀏覽器才能正確地呈現(xiàn)內(nèi)容钻心。
嚴(yán)格模式:又稱標(biāo)準(zhǔn)模式凄硼,是指瀏覽器按照 W3C 標(biāo)準(zhǔn)解析代碼。
混雜模式:又稱怪異模式或兼容模式捷沸,是指瀏覽器用自己的方式解析代碼摊沉。
<!doctype html> 的作用
html5標(biāo)準(zhǔn)網(wǎng)頁(yè)聲明,支持html5標(biāo)準(zhǔn)的主流瀏覽器都認(rèn)識(shí)這個(gè)聲明痒给。表示網(wǎng)頁(yè)采用html5
瀏覽器亂碼的原因是什么说墨?如何解決
1、比如網(wǎng)頁(yè)源代碼是gbk的編碼苍柏,而內(nèi)容中的中文字是utf-8編碼的尼斧,這樣瀏覽器打開即會(huì)出現(xiàn)html亂碼。反之網(wǎng)頁(yè)是編碼utf-8试吁,內(nèi)容是gbk也會(huì)出現(xiàn)亂碼棺棵。
2、html網(wǎng)頁(yè)編碼是gbk熄捍,而程序從數(shù)據(jù)庫(kù)中調(diào)出呈現(xiàn)是utf-8編碼的內(nèi)容也會(huì)造成編碼亂碼烛恤。
3、瀏覽器不能自動(dòng)檢測(cè)網(wǎng)頁(yè)編碼余耽,造成網(wǎng)頁(yè)亂碼缚柏。
解決辦法
1.寫網(wǎng)頁(yè)的時(shí)候要開頭統(tǒng)一規(guī)范下編碼格式。常見的編碼有utf-8,gbk,gb2312.
2.根據(jù)自己的編碼格式碟贾,在html頭部添加編碼格式來規(guī)定網(wǎng)頁(yè)的編碼币喧。
如果用utf-8就把charset寫成utf-8,如果是別的編碼袱耽,就對(duì)應(yīng)把charset寫成跟自己編碼格式一樣的杀餐。
常見的瀏覽器有哪些,什么內(nèi)核
一.Trident內(nèi)核
Trident(又稱為MSHTML)朱巨,是微軟的Windows系統(tǒng)搭載的網(wǎng)頁(yè)瀏覽器—Internet Explorer的排版引擎的名稱史翘,它的第一個(gè)版本隨著1997年10月Internet Explorer第四版釋出,之后不斷的加入新的技術(shù)并隨著新版本的Internet Explorer釋出蔬崩。在Internet Explorer第七版中恶座,微軟對(duì)Trident排版引擎做了的重大的變動(dòng),除了加入新的技術(shù)之外沥阳,并增加對(duì)網(wǎng)頁(yè)標(biāo)準(zhǔn)的支持跨琳。
常見 Trident 內(nèi)核瀏覽器:
Internet Explorer 8 , Internet Explorer 9桐罕, Internet Explorer 10脉让,
和360安全瀏覽器桂敛。
二:Webkit、Chromium內(nèi)核
Chromium是一個(gè)由Google主導(dǎo)開發(fā)的網(wǎng)頁(yè)瀏覽器溅潜,以BSD許可證等多重自由版權(quán)發(fā)行并開放源代碼术唬。Chromium的開發(fā)可能早自2006年即開始[1],設(shè)計(jì)思想基于簡(jiǎn)單滚澜、高速粗仓、穩(wěn)定、安全等理念设捐,在架構(gòu)上使用了蘋果發(fā)展出來的WebKit排版引擎借浊、Safari的部份源代碼與Firefox的成果,并采用Google獨(dú)家開發(fā)出的V8引擎以提升解譯JavaScript的效率萝招,而且設(shè)計(jì)了“沙盒”蚂斤、“黑名單”、“無痕瀏覽”等功能來實(shí)現(xiàn)穩(wěn)定與安全的網(wǎng)頁(yè)瀏覽環(huán)境.
而Webkit瀏覽器引擎是蘋果公司的開源項(xiàng)目槐沼,蘋果的Safari瀏覽器就是基于Webkit開發(fā)的曙蒸。
常見基于Chromium的單核瀏覽器
Chrome 瀏覽器
常見基于 Webkit 的瀏覽器
Safari瀏覽器,Opera 15 瀏覽器
國(guó)內(nèi)Trident與Chromium雙核瀏覽器
搜狗瀏覽器下載, 360極速瀏覽器,QQ瀏覽器岗钩,獵豹瀏覽器纽窟,UC瀏覽器電腦版
三:Gecko內(nèi)核
常見 Gecko 內(nèi)核瀏覽器
Mozilla Firefox 瀏覽器
四:Presto內(nèi)核
Presto是一個(gè)由Opera Software開發(fā)的瀏覽器排版引擎,供Opera7.0及以后版使用凹嘲。Presto取代了舊版Opera 4至6版本使用的Elektra排版引擎师倔,包括加入動(dòng)態(tài)功能构韵,例如網(wǎng)頁(yè)或其部分可隨著DOM及Script語法的事件而重新排版
瀏覽器
Opera 瀏覽器
列出常見的標(biāo)簽周蹭,并簡(jiǎn)單介紹這些標(biāo)簽用在什么場(chǎng)景
標(biāo)簽 | 使用場(chǎng)景|
-|
基礎(chǔ)|
<title>
| 為文檔定義一個(gè)標(biāo)題
<h1>to<h6>
|定義 HTML 標(biāo)題
<p>
|定義一個(gè)段落
<br>
|換行
<hr>
|水平線
格式|
<b>
|定義粗體
<em>
|強(qiáng)調(diào)文本
<del>
|定義被刪除文本
<i>
|定義斜體文本。
<s>
|定義加刪除線的文本疲恢。
<small>
|定義小號(hào)文本凶朗。
<strong>
|定義語氣更為強(qiáng)烈的強(qiáng)調(diào)文本
<var>
|定義文本的變量部分。
表單|
<from>
|定義一個(gè) HTML 表單显拳,用于用戶輸入棚愤。
<input>
|定義一個(gè)輸入控件
<textarea>
|定義多行的文本輸入控件
<button>
|定義按鈕
<select>
|定義選擇列表(下拉列表)。
<option>
|定義選擇列表中的選項(xiàng)杂数。
<label>
|定義 input 元素的標(biāo)注宛畦。
圖像|
<img>
|定義圖像
<area>
|定義圖像地圖內(nèi)部的區(qū)域。
Audio/Video|
<audio>
|定義聲音揍移,比如音樂或其他音頻流次和。
video
|定義一個(gè)音頻或者視頻
鏈接|
<a>
|定義一個(gè)鏈接
<link>
|定義文檔與外部資源的關(guān)系。
<nav>
|定義導(dǎo)航鏈接(新元素)
列表|
<ul>
|定義一個(gè)無序列表
<ol>
|定義一個(gè)有序列表
<li>
|定義一個(gè)列表項(xiàng)
<dl>
|定義一個(gè)定義列表
<dd>
|定義定義列表中項(xiàng)目的描述那伐。
<dt>
|定義一個(gè)定義定義列表中的項(xiàng)目踏施。
表格|
<table>
|定義一個(gè)表格
<caption>
|定義表格標(biāo)題
<th>
|定義表格中的表頭單元格
<tr>
|定義表格中的行
<td>
|定義表格中的單元
<thead>
|定義表格中的表頭內(nèi)容
<tbody>
|定義表格中的主體內(nèi)容
<tfoot>
|定義表格中的表注內(nèi)容(腳注)石蔗。
<col>
|定義表格中一個(gè)或多個(gè)列的屬性值
<colgroup>
|定義表格中供格式化的列組
樣式/節(jié)|
<div>
|定義文檔中的節(jié)
<span>
|定義文檔中的節(jié)。
<header>
|定義一個(gè)文檔頭部部分
<footer>
|定義一個(gè)文檔底部
<section>
|定義了文檔的某個(gè)區(qū)域
<article>
|定義一個(gè)文章內(nèi)容