Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
TML教程
超文本標(biāo)記語(yǔ)言(英語(yǔ):HyperText Markup Language,簡(jiǎn)稱:HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。
您可以使用 HTML 來建立自己的 WEB 站點(diǎn),HTML 運(yùn)行在瀏覽器上,由瀏覽器來解析。
在本教程中,您將學(xué)習(xí)如何使用 HTML 來創(chuàng)建站點(diǎn)。
HTML 很容易學(xué)習(xí)!相信您能很快學(xué)會(huì)它!
本教程包含了數(shù)百個(gè) HTML 實(shí)例。
使用本站的編輯器,您可以輕松實(shí)現(xiàn)在線修改 HTML,并查看實(shí)例運(yùn)行結(jié)果。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>孫叫獸的博客</title>
</head>
<body>
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落。</p>
</body>
</html>
HTML 文檔的后綴名
.html
.htm
都可以。
實(shí)例:
<!doctype html>
<html>
<header>
<meta charset="utf-8">
<title>孫叫獸的博客</title>
</header>
<body>
<h1>這是我的標(biāo)題</h1>
<p>這是我的段落</p>
</body>
</html>
實(shí)例解析
什么是HTML?
標(biāo)簽
<標(biāo)簽>內(nèi)容</標(biāo)簽>
html元素
“HTML 標(biāo)簽” 和 “HTML 元素” 通常都是描述同樣的意思.
但是嚴(yán)格來講, 一個(gè) HTML 元素包含了開始標(biāo)簽與結(jié)束標(biāo)簽,如下實(shí)例:
HTML 元素:
<p>這是一個(gè)段落</p>
web瀏覽器
Web瀏覽器(如谷歌瀏覽器,Internet Explorer,F(xiàn)irefox,Safari)是用于讀取HTML文件,并將其作為網(wǎng)頁(yè)顯示。
瀏覽器并不是直接顯示的HTML標(biāo)簽,但可以使用標(biāo)簽來決定如何展現(xiàn)HTML頁(yè)面的內(nèi)容給用戶
html網(wǎng)頁(yè)結(jié)構(gòu)
<html>
<head>
<title>頁(yè)面標(biāo)題</title>
</head>
<body>
<h1>這是一個(gè)標(biāo)題</h1>
<p>這是一個(gè)段落。</p>
<p>這是另外一個(gè)段落。</p>
</body>
</html>
html的版本:
<!DOCTYPE>聲明
<!DOCTYPE>聲明有助于瀏覽器中正確顯示網(wǎng)頁(yè)。
網(wǎng)絡(luò)上有很多不同的文件,如果能夠正確聲明HTML的版本,瀏覽器就能正確顯示網(wǎng)頁(yè)內(nèi)容。
doctype 聲明是不區(qū)分大小寫的,以下方式均可:
<!DOCTYPE html>
<!DOCTYPE HTML>
<!doctype html>
<!Doctype Html>
html5
<!DOCTYPE html>
html4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4 Transitional//EN""
http://www.w3.org/TR/html4/loose.dtd">
xhtml1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
中文編碼
目前在大部分瀏覽器中,直接輸出中文會(huì)出現(xiàn)中文亂碼的情況,這時(shí)候我們就需要在頭部將字符聲明為 UTF-8。
瀏覽器的功能:顯示在計(jì)算機(jī)中的網(wǎng)頁(yè)實(shí)際上是位于許多不同的計(jì)算機(jī)文件中的元素的集合。因此,瀏覽器的功能首先是檢索文件,然后將頁(yè)面的各個(gè)部分組合起來,根據(jù)文本中的HTML命令排列這些部分。
瀏覽器內(nèi)核分為兩部分:渲染引擎 和 JavaScript引擎。其中,渲染引擎是瀏覽器內(nèi)核中比較重要的部分,現(xiàn)在所說的內(nèi)核一般指的都是渲染引擎。
常見的瀏覽器內(nèi)核:
四大內(nèi)核:
1、Trident內(nèi)核,也稱IE內(nèi)核。
2、Webkit內(nèi)核。
3、Gecko內(nèi)核。
4、Presto內(nèi)核。
各瀏覽器所用內(nèi)核:
1、IE瀏覽器內(nèi)核:Trident內(nèi)核,也是俗稱的IE內(nèi)核;
2、Chrome瀏覽器內(nèi)核:統(tǒng)稱為Chromium內(nèi)核或Chrome內(nèi)核,以前是Webkit內(nèi)核,現(xiàn)在是Blink內(nèi)核;
3、Firefox瀏覽器內(nèi)核:Gecko內(nèi)核,俗稱Firefox內(nèi)核;
4、Safari瀏覽器內(nèi)核:Webkit內(nèi)核;
5、Opera瀏覽器內(nèi)核:最初是自己的Presto內(nèi)核,后來是Webkit,現(xiàn)在是Blink內(nèi)核;
6、360瀏覽器、獵豹瀏覽器內(nèi)核:IE+Chrome雙內(nèi)核;
7、搜狗、遨游、QQ瀏覽器內(nèi)核:Trident(兼容模式)+Webkit(高速模式);
8、百度瀏覽器、世界之窗內(nèi)核:IE內(nèi)核;
9、2345瀏覽器內(nèi)核:以前是IE內(nèi)核,現(xiàn)在也是IE+Chrome雙內(nèi)核;
1. 從網(wǎng)絡(luò)層(networking)獲取請(qǐng)求文檔的內(nèi)容,解析HTML/SVG/XHTML,形成一個(gè)DOM樹(DOM Tree)
默認(rèn)情況下,加載和執(zhí)行javascript都會(huì)阻止DOM tree的構(gòu)建。
內(nèi)部js腳本會(huì)在引入它的位置執(zhí)行,外聯(lián)腳本則是加載完畢后執(zhí)行。
注意:因此,不管是內(nèi)聯(lián)腳本還是外部腳本,都應(yīng)該盡量放在標(biāo)簽結(jié)束之前(除非某些腳本需要在頁(yè)面加載完之前調(diào)用),這樣可以保證在運(yùn)行腳本之前,頁(yè)面已經(jīng)基本加載完成。
2. 解析CSS代碼,計(jì)算出最終的樣式數(shù)據(jù),產(chǎn)生一個(gè)CSS規(guī)則樹(CSS Rule Tree)
解析CSS的時(shí)候的順序:瀏覽器默認(rèn)設(shè)置,用戶設(shè)置,外鏈樣式,內(nèi)聯(lián)樣式,html中的style
3. 解析JavaScript
通過DOM API來操作DOM Tree,通過CSSOM API來操作CSS Rule Tree
4. 解析完上述三種代碼之后,就構(gòu)建一個(gè)渲染樹 (rendering tree)
渲染樹和DOM樹有所不同:
渲染樹中不包括不需要渲染的節(jié)點(diǎn) : html head meta link style script display : none的元素,渲染樹中每一個(gè)節(jié)點(diǎn)都儲(chǔ)存有對(duì)應(yīng)的CSS屬性,加載css會(huì)阻止render tree的構(gòu)建
5. 開始渲染,頁(yè)面初始化時(shí)會(huì)發(fā)生一次回流。
1. 什么是頁(yè)面的重繪和回流
回流:當(dāng)render tree中的一部分(或全部)因?yàn)樵氐囊?guī)模尺寸,布局,隱藏等改變而需要重新構(gòu)建。(需要改變布局、幾何屬性)
重繪:當(dāng)render tree中的一些元素需要更新屬性,而這些屬性只是影響元素的外觀,風(fēng)格,而不會(huì)影響布局的,比如background-color。則就叫稱為重繪。
因此回流必定影響重繪,重繪不一定引起回流。回流比重繪的代價(jià)要更高
2. 回流何時(shí)發(fā)生
當(dāng)頁(yè)面布局和幾何屬性改變時(shí)就需要回流。下述情況會(huì)發(fā)生瀏覽器回流:
1、添加或者刪除可見的DOM元素;
2、元素位置改變;
3、元素尺寸改變——邊距、填充、邊框、寬度和高度
4、內(nèi)容改變——比如文本改變或者圖片大小改變而引起的計(jì)算值寬度和高度改變;
5、頁(yè)面渲染初始化;
6、瀏覽器窗口尺寸改變——resize事件發(fā)生時(shí);(所以需要函數(shù)節(jié)流)
3. 瀏覽器對(duì)回流和重繪做的優(yōu)化工作
瀏覽器會(huì)維護(hù)1個(gè)隊(duì)列,把所有會(huì)引起回流、重繪的操作放入這個(gè)隊(duì)列,等隊(duì)列中的操作到了一定的數(shù)量或者到了一定的時(shí)間間隔,瀏覽器就會(huì)釋放隊(duì)列,進(jìn)行一個(gè)批處理。這樣就會(huì)讓多次的回流、重繪變成一次回流重繪。(有點(diǎn)類似文檔碎片frameElement感覺)
雖然有了瀏覽器的優(yōu)化,但有時(shí)候我們寫的一些代碼可能會(huì)強(qiáng)制瀏覽器提前釋放隊(duì)列,這樣瀏覽器的優(yōu)化可能就起不到作用了。當(dāng)你請(qǐng)求向?yàn)g覽器請(qǐng)求一些 style信息的時(shí)候,就會(huì)讓瀏覽器釋放隊(duì)列,比如:
offsetTop, offsetLeft, offsetWidth, offsetHeight scrollTop/Left/Width/Height clientTop/Left/Width/Height width,height 請(qǐng)求了getComputedStyle(), 或者 IE的 currentStyle
當(dāng)你請(qǐng)求上面的一些屬性的時(shí)候,瀏覽器為了給你最精確的值,需要釋放隊(duì)列,因?yàn)殛?duì)列中可能會(huì)有影響到這些值的操作。即使你獲取元素的布局和樣式信息跟最近發(fā)生或改變的布局信息無關(guān),瀏覽器都會(huì)強(qiáng)行刷新渲染隊(duì)列。
4. 減少回流reflow和重繪repaint
(1) 不要一條一條修改DOM的樣式
替換方法:
預(yù)先定義好css,然后修改DOM的className,修改style的style.cssText
(2) 把DOM離線后修改
先把DOM給display:none(有一次reflow),然后你想怎么改就怎么改。比如修改100次,然后再把他顯示出來。clone一個(gè)DOM結(jié)點(diǎn)到內(nèi)存里,然后想怎么改就怎么改,改完后,和在線的那個(gè)的交換一下。
(3) 不要把DOM結(jié)點(diǎn)的屬性值放在一個(gè)循環(huán)里當(dāng)成循環(huán)的變量。
(4) 盡可能修改層級(jí)比較低的DOM
(5) 為動(dòng)畫的HTML元素使用fixed或者absolute的position
修改他們的CSS是不會(huì)reflow的,因?yàn)槭褂胒ixed或者absolute的元素會(huì)脫離文檔流
(6) 千萬(wàn)不要使用table布局
注意:CSS匹配DOM Tree主要是從右到左解析CSS的Selector,CSS匹配HTML元素是一個(gè)相當(dāng)復(fù)雜和有性能問題的事情。DOM樹要小,CSS盡量用id和class,千萬(wàn)不要過渡層疊下去。
歡迎關(guān)注。
本標(biāo)記語(yǔ)言,英語(yǔ):HyperText Markup Language,簡(jiǎn)稱:HTML,是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。注意,HTML是標(biāo)記語(yǔ)言,不是編程語(yǔ)言。
您可以使用 HTML 來建立自己的 WEB 站點(diǎn),HTML 運(yùn)行在瀏覽器上,由瀏覽器來解析。手機(jī)上的H5,也是瀏覽器解析的,只是App內(nèi)置的瀏覽器組件,你看不到而已。
目前,HTML5是最新的版本,主流瀏覽器都支持的了。如果出現(xiàn)不支持的話,升級(jí)到最新版本就好了。HTML5也支持在手機(jī)上運(yùn)行,所以我們沒理由不學(xué)H5的。
在沒學(xué)HTML之前,很多人以為有復(fù)雜時(shí)的,其實(shí)學(xué)HTML就是學(xué)標(biāo)簽。除了<!DOCTYPE html>聲明為H5文件,類似<meta charset="UTF-8">這種指定字符的之外,其他的,不是成對(duì)(如<p></p>),就是有結(jié)束符的標(biāo)簽(如<p/>)。
你要做的就是理解標(biāo)簽的意思和往里面放內(nèi)容就好了。經(jīng)我這么一說,是不是感覺挺簡(jiǎn)單的。是就對(duì)了。HTML不止開發(fā)簡(jiǎn)單,連開發(fā)工具都不挑,如WebStorm,Eclipse或VSCode等;如用來開發(fā)Java、C#、PHP、Python等的開發(fā)工具。
開發(fā)工具生成的HTML5文件模板里,便是一個(gè)完整的頁(yè)面結(jié)構(gòu)。內(nèi)容,根據(jù)你個(gè)人喜好,進(jìn)行刪填即可。如果沒有內(nèi)容,則被稱為空標(biāo)簽。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML來了</title>
</head>
<body>
<h1>老陳說編程</h1>
<p>編程界一老頭</p>
<a href="home.html">個(gè)人主頁(yè)</a>
</body>
</html>
輸出結(jié)果(用瀏覽器打開)
HTML文檔由 HTML 元素定義。元素以開始標(biāo)簽(如<p>)起始,以結(jié)束標(biāo)簽(如</p>)終止,元素的內(nèi)容是開始標(biāo)簽與結(jié)束標(biāo)簽之間的內(nèi)容,如:老陳說編程。標(biāo)簽對(duì)大小寫不敏感:<P> 等同于 <p>,推薦使用小寫。
標(biāo)簽<a>里面的href,是屬性。屬性可以在元素中添加附加信息,以名稱/值對(duì)的形式出現(xiàn),一般放在開始標(biāo)簽中。
HTML注釋:可以將注釋插入 HTML 代碼中,這樣可以提高其可讀性,使代碼更易被人理解。瀏覽器會(huì)忽略注釋,也不會(huì)顯示它們。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>第2個(gè)HTML</title>
</head>
<body>
<h3>做人要自然,自然美,才是真的美</h3>
<!--這是注釋,src是屬性-->
<img src="mm.jpg"/>
</body>
</html>
輸出結(jié)果
好了,有關(guān)html頁(yè)面結(jié)構(gòu)和元素的內(nèi)容,老陳講完了,如果覺得對(duì)你有所幫助,希望老鐵能轉(zhuǎn)發(fā)點(diǎn)贊,讓更多的人看到這篇文章。你的轉(zhuǎn)發(fā)和點(diǎn)贊,就是對(duì)老陳繼續(xù)創(chuàng)作和分享最大的鼓勵(lì)。
一個(gè)當(dāng)了10年技術(shù)總監(jiān)的老家伙,分享多年的編程經(jīng)驗(yàn)。想學(xué)編程的朋友,可關(guān)注:老陳說編程。分享Python,前端(小程序)、App和嵌入式方面的干貨。關(guān)注我,沒錯(cuò)的。
#前端##HTML##CSS##程序員##設(shè)計(jì)師#
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。