站長資訊網
        最全最豐富的資訊網站

        了解什么是HTML5

        如果有非技術人員問你,HTML5是什么,你會怎么回答?

          新的HTML規范。。。

          給瀏覽器提供了牛逼能力,干以前不能干的事。。。(確切地說應該是給瀏覽器規定了許多新的接口標準,要求瀏覽器實現牛逼的功能。。。 這里感謝紅楓一葉)

          給瀏覽器暴露了許多新的接口。。。

          加了很多新的效果。。。

        了解什么是HTML5

          問的人其實并不明白他想問的真正問題,回答的人貌似明白,但又好像少了點什么。牛逼的能力、新的接口、炫酷的效果,首先回答的人自己就是暈暈乎乎。什么是HTML、什么是CSS、什么是DOM、什么是JavaScript,大部分的前端開發每天都在用這些,但很少會有人去思考一下他們之間的關系。

          首先,HTML的全稱是超文本標記語言,是一種標記形式的計算機語言。將這種標記語言給專門的解析器,就能夠解析出一定的界面效果。瀏覽器就是專門解析這種標記語言的解析器。我們說他最終的效果是在屏幕上展示出特定的界面,那么瀏覽器肯定要把一個個的標記轉換成內部的一種數據結構,這種數據結構便是DOM元素。比如,一個<a>標簽在瀏覽器內部的世界中就是一個HTMLAnchorElement類型的一個實例。

          一個HTML文件就好比用超文本標記語言寫的一篇文章,文章通常是有結構的,在瀏覽器眼里它就是DOM。DOM描述了一系列層次化的節點樹。(但這時候的DOM還是存在于瀏覽器內部是C++語言編寫的)

          隨著歷史的發展,當人們不在滿足簡單的顯示文本,對于某些文本需要特殊強調或者給添加特殊格式的需求,慢慢的冒了出來。面對人們需要控制顯示效果的需求,最先想到的也最簡單的方式就是加標記。加一些樣式控制的標記。這時候就出現了像<font>、<center>這種樣式控制的標記。但是這樣一來,所有的標記就會分為兩大類:一種是說我是什么,一種是說我怎么顯示。這還不是大問題,標記簡單,但是瀏覽器要解析標記可就不那么簡單了。想一想,這樣干的話DOM也就要分成兩大類,一類屬于描述元素的DOM節點,一類屬于描述顯示效果的DOM節點。一個DOM節點可能代表一個元素,也可能是代表一種顯示效果。怎么看都覺得別扭呀。

          最后人們決定廢棄樣式標簽,給元素標簽添加一個style特性,style特性控制元素的樣式(最初的樣式聲明語法肯定很簡單)。原來的樣式標簽的特性,現在變成了樣式特性的語法,樣式標記變成了樣式特性。這樣邏輯上就清晰多了。那么問題來了:

        • 一篇文章如果修辭過多,必然會引起讀者的反感。如果把元素和顯示效果都放在一個文件中,必然不利于閱讀。

        • 如果有10個元素都需要一個效果,是不是要把一個style重復寫十遍呢

        • 父元素的設置效果對子元素有沒有影響,讓不讓拼爹

        • 。。。。。。。。。

          類似的問題肯定有很多,所以出來了CSS,層疊樣式表,帶來了css規則、css選擇器、css聲明、css屬性等,這樣以來就解決了以上痛點。標記語言這層解決了,但是瀏覽器就不能干坐著玩耍了,必然得提供支持。所以瀏覽器來解析一個靜態html文件時,遍歷整個html文檔生成DOM樹,當所有樣式資源加載完畢后,瀏覽器開始構建呈現樹。呈現樹就是根據一系列css聲明,經歷了層疊之后,來確定一個個個DOM元素應該怎么繪制。這時候其實頁面上還沒有顯示任何界面,渲染樹也是瀏覽器內存里面的一種數據結構。渲染樹完成之后,開始進行布局,這就好比已經知道一個矩形的寬高,現在要在畫布量一量該畫在哪,具體占多大地方。這個過程完了之后就是繪制的過程,然后我們便有了我們看到的顯示界面了。

          給標記加點效果的問題解決了,歷史的車輪又開始前進了。慢慢的人們不再滿足簡單的顯示效果,人們希望來點交互。那個時候寫HTML的大部分并不懂軟件開發,開玩笑嘛,我一寫活動頁的你讓我用C++?C++干這事的確是高射炮打蚊子——大材小用。那正規軍不屑干的事就交給游擊隊吧,這時候網景公司開發出了JavaScript語言,那時候的JavaScript根本沒有現在這么火,一土鱉腳本語言,哪像現在這么牛逼哄哄統一宇宙。

          JavaScript本是運行在瀏覽器的語言,HTML文本是靜態的,不可能讓JavaScript修改靜態文件,但可以跟瀏覽器內部打交道。可是這個時候的DOM并不是今天的DOM,他們是C++對象,要么把JavaScript轉換成C++指令操作這些C++對象,要么把這些C++對象包裝成JavaScript原生對象。歷史選擇了后者,這時候也就標志著現代DOM的正式誕生。不過歷史有時候會出現倒退,歷史上總會出現幾個奇葩,比如IE,IE奇葩他全家,包括Edge!

          馬克思是個江湖騙子,但恩格斯是個好同志。自然辯證法與歷史唯物主義是好東西。從歷史的角度我們可以看到。CSS、DOM、JavaScript的出現于發展最終的源頭都在HTML,超文本標記語言。人們對web的需求最終都匯集在HTML上。所以只要歷史產生新的需求,最終的變化都首先發生在HTML規范上。

          當交互性不能在滿足人們需求時,web迎來了新的需求:webapp。要迎合新的需求,首先要改變的就是HTML規范,這個時候已有的HTML4.0,已經無法滿足人們日益增長的需求,所以HTML5迎著歷史的需求,經過八年的艱苦努力,終于在2014年正式定稿!HTML5肯定是要加入新標簽,然對于傳統HTML而言,HTML5算是一個叛逆。所有之前的版本對于JavaScript接口的描述都不過三言兩語,主要篇幅都用于定義標記,與JavaScript相關內容一概交由DOM規范去定義。而HTML5規范,則圍繞著如何使用新增標記定義了大量JavaScript API(所以其中有一些API是與DOM重疊,定義了瀏覽器應該支持的DOM擴展,由此可以看到HTML5也必定不是HTML的最終版)。

         

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩精品一区二区三区中文字幕| 无码日韩精品一区二区免费暖暖| 精品偷自拍另类在线观看丰满白嫩大屁股ass | 国产成人精品日本亚洲专| 完整观看高清秒播国内外精品资源| 99riav国产精品| 国产精品一区在线播放| 精品无码国产自产拍在线观看| 欧美精品区一级片免费播放| wwwvr高清亚洲精品二区| 国产99久久精品一区二区| 久久精品国产久精国产思思| 亚洲七七久久精品中文国产| 久久99精品免费一区二区| 99久久精品这里只有精品| 四虎永久在线精品884aa下载| 97精品国产手机| 国产精品揄拍100视频| 日韩精品区一区二区三VR| 一本一本久久a久久精品综合麻豆| 久久精品国产亚洲一区二区三区| 国产精品嫩草影院久久| 国产精品99在线播放| 国产精品九九久久精品女同亚洲欧美日韩综合区| 国产精品欧美日韩| 精品精品国产自在久久高清| 国产一精品一av一免费爽爽| 国产午夜精品理论片久久影视| 99久久精品国产麻豆| 国产在线精品一区二区不卡| 91精品啪在线观看国产| 91精品一区国产高清在线| 2048亚洲精品国产| 国产国产成人精品久久| 1000部精品久久久久久久久| 99精品免费视品| 久久久精品午夜免费不卡| 亚洲无删减国产精品一区| 国产福利电影一区二区三区久久久久成人精品综合 | 精品欧美激情在线看| 久久99精品久久久久久9蜜桃|