萌新的HTML5 入門指南

2021-02-24 初凡科技

HTML5的發展改變了網際網路技術趨勢,前端熱度依舊不減,所以對於應用開發人員前端技術也成了必備技能之一,本篇文章的目的是為了幫助萌新的入門指導,也同時希望能為老鳥起到一定查漏補缺的作用,那麼讓我們開始吧。

什麼是HTML5?

廣義上的HTML5是HTML最新的修訂版本,由全球資訊網聯盟(W3C)於2014年10月完成標準制定。目標是取代1999年所制定的HTML 4.01和XHTML 1.0標準,以期能在網際網路應用迅速發展的時候,使網絡標準達到符合當代的網絡需求。

但我們在日常中常說的HTML5技術,實際指的是包括HTML、CSS和JavaScript在內的一套技術組合。

開發人員在開發過程中為了提高開發效率,常常會用到各種組件工具例如:jQuery,BootStrap,webpack,或者前端框架,如:VUE等。除了學習各種工具框架的使用,HTML5的基礎知識也是需要了解掌握,這樣有助於更好的理解工具框架的設計以及使用。

後面我們將結合一系列文章,深入淺出的介紹關於HTML,CSS和JavaScript的常用功能及編程技巧。

那麼首先來了解下HTML5都更新了那些內容:

什麼樣的網頁是HTML5網頁?

只要html頁面第一行是 <!DOCTYPE html> 瀏覽器就會按照HTML5標準去解析網頁,無論頁面中是否使用了HTML5新增內容

HTML5新增了哪些內容?

• 更好的語義化標籤

結構元素:article、aside、header、hgroup、footer、figure、section、nav。

其他元素:video、audio、canvas、embed、mark、progress、meter、time、command、details、datagrid、keygen、output、source、menu、ruby、wbr、bdi、dialog。

一些語義化標籤如section、nav在使用時和傳統div並無大的區別,但這種標籤更有利於搜尋引擎的索引整理,利於智慧型手機、Pad等小屏設備適配,以及方便殘障人士使用。

同時也有些標籤為瀏覽器增加了新的功能,如audio、video。

• 應用程式接口(API)

1. Canvas,可以獲取canvas標籤元素的上下文對象,然後使用該上下文對象中的繪圖功能進行繪製。

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
</canvas>
<script>
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    ctx.moveTo(0, 0);
    ctx.lineTo(200, 100);
    ctx.stroke();
</script>

2. 音頻和視頻,使用audio和video元素,瀏覽器無需安裝播放插件,同時提供了播放控制API。

3. 地理位置,通過使用navigator相關API在用戶授權情況下,可以獲取用戶位置信息。

4. 新的表單元素,tel、email、url、search、range、number、color、datetime、datetime-local、time、date、week、month。隨著瀏覽器的支持,很多表單控制項將成為歷史

5. 新的表單特性和函數:placeholder、autocomplete、autofocus、spellcheck、list特性、datalist元素、min和max、step、required

6. 拖放API:draggable屬性、拖放事件(dragstart、drag、dragenter、dragleave、dragover、drap、dragend)、dataTransfer對象

7. WebSocket,一種瀏覽器與伺服器間進行全雙工通訊(full-duplex)的網絡技術,可以傳輸基於信息的文本和二進位的數據

8. Web Workers,JavaScript單線程,複製js需算會導致頁面出現假死。如果js操作不需要訪問頁面window,那麼可以放在web worker中並行處理。

• 廢除元素

廢除一些純變現以及兼容性不好的元素如:acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt。

瀏覽器支持

IE9開始支持,IE10後支持較好。

Chrome,Firefox,Safari,Opera支持較好。

以上便是一些常用的HTML5新增的一些特性,接下來,我們一起看一看在HTML5在頁面布局方面有什麼變化吧。

HTML5頁面布局

常用的頁面布局方式有很多種,比如

最早的靜態表格布局

通過柵欄劃分頁面的流式布局

根據屏幕大小自動調整內容的自適應布局

融和流式布局和自適應布局的響應式布局

以上布局主要通過使用css中display、position和float屬性相配合來實現,在確定位置以及清除浮動時,常常會遇到棘手問題(例如:垂直居中,屏幕適應)。

CSS3中提供了一種更簡單的布局方式Flex布局(彈性布局)。

下面我們通過一個例子來展示Flex布局的易用性,下圖是一個典型的單頁應用樣式,結構上分為header,aside,footer和main四部分。header和footer自適應寬度,aside固定寬度並可收縮,main區域自動根據剩餘空間填充。

HTML:

<body>
<div class="header"></div>
<div class="container">
<div class="aside"></div>
<div class="main"></div>
</div>
<div class="footer"></div>
</body>

css:

html,body {
margin: 0;
padding: 0;
height: 100%;
background: black;
}

.header, .footer{
height:80px;
background: white;
}

.container{
height: CALC(100% - 160px);
background: pink;
padding: 10px 0;
}

.aside{
width: 20%;
height: 100%;
float: left;
background: gold;
}
.main{
width: 80%;
height: 100%;
float: left;
background: gray;
}

頁面分為上中下三部分,中間部分container高度通過使用CALC計算,瀏覽器高度變化時自動調整。container中aside為浮動元素,寬度20%。main根據剩餘寬度調整。

這樣的布局方式存在一些問題,就是當header、footer高度發生變化後,需要重新設置container高度,另外如果container中並列元素較多時,浮動難以控制。

接下來,我們看一下如何使用Flex布局實現上面的效果:

HTML:

<body>
<header><h1>Welcome to HTML5 World!</h1></header>
<section class="designerContainer">
<aside class="designerAside">
<div style="width:180px">Aside</div>
</aside>
<main class="designerMain">
</main>
</section>
<footer><h3>Copyright © 2020 GrapeCity inc.</h3></footer>
</body>

css:

html, body{
margin: 0;
padding: 0;
}
body{
height: 100vh;
display: flex;
flex-direction: column;
}
h1, h2, h3 {
font-family: Avenir, Helvetica, Arial, sans-serif;
text-align: center;
color: #2c3e50;
margin-block-start: 0;
margin-block-end: 0;
padding: 15px;
}
.designerContainer{
padding: 10px;
flex: 1;
display: flex;
background: gray;
}
.designerAside{
text-align: center;
background: gold;
}
.designerMain{
display: flex;
flex: 1 100%;
padding: 0 0 0 10px;
background: pink;
}

效果如下:

對比自適應布局,上面的代碼有以下特點:

頁面使用HTML5語義化標籤,頁面各部分功能清晰。

body設置高度 100vh, 這裡使用了CSS3 的新單位vh,即 view height 視窗高度,100vh相當於html, body 高度100%,同樣還有vw代表視窗寬度

body設置flex布局,方向從上到下疊放

designerContainer 設置flex 1,自動充滿header和footer之外剩餘空間

container內部依舊flex布局,designerMain 設置 flex 1,自動充滿aside剩餘空間

Flex兼容性注意事項:

l  IE9不支持FLEX,建議IE11

l  Safari 和 IOS 需要加 -webkit-

相關焦點

  • 劍網三萌新入門——裝備獲取篇
    「劍網三指南」公眾號初建,今天也沒想好更新什麼。想到君心上一次給大家講述了這遊戲的萌新入門,但因為涉及實在太寬廣,所以很多的東西都只是一筆帶過,思考了之後,發現劍三還是有比較多的萌新入坑,所以決定把自己認為有用的東西都分開來仔細的一一講解一下,也算是不負自己幾年的遊戲時光了。
  • 萌新掃盲指南——從入門到禿頭的小建議(實用)!
    筆者所在的群是一個萌新群,就有很多問題出現。所以本篇旨在為各位萌新解決一部分問題,不求所有,只求大部分。最後再次強調,這篇文適合的對象是萌新、萌新、萌新一、關於設備的選擇玩遊戲最先要考慮的是設備問題,除了最常用的智慧型手機外,那便是模擬器。而電腦模擬器筆者只推薦兩種,第一種雷電模擬器、,第二種夜神模擬器。
  • 熱門手機遊戲寵物小精靈GO之萌新指南
    各位吼哇,今天小編為大家帶來了熱門手機遊戲寵物小精靈GO的萌新指南,還請各位自己閱讀哦~
  • 萌新彩虹六生存指南1
    正如在上周更新中彩虹六的前世今生所提到,彩虹六作為一款毫不妥協的將嚴謹的集體戰術凌駕於玩家個人英雄主義之上硬核遊戲,它並不是對萌新玩家不友好,而是存在一定入門考驗。 這種考驗恰如彩虹六系列一貫的遊戲風格所體現的精髓一樣,反恐與拯救人質這門看起來只需要在其他遊戲裡打打殺殺,重度依賴玩家的個人表現,突出快節奏痛快淋漓的戰鬥體驗種種設定,在這裡將變得不復存在。
  • 《紅蓮之王》萌新上手指南
    《紅蓮之王》套路測試正在進行中,各位《紅蓮之王》的萌新們大家好,今天給大家帶來一份實用的上手指南,萌新們千萬不要錯過哦~
  • HTML學習入門
    HTML學習入門目錄基本概念HTML(Hypertext Markup Language,超文本標記語言),是用來創建網頁和網絡應用的標準標記語言
  • 「蝦米論劍」攻略類,萌新必備的江湖大指南!
    萌新江湖指南聲明:此處感謝 鳳鳴村·村長 提供的一些數據,也感謝WIKI提供的一些資料。大家好,我是萌新 果子,在2個月前接觸到《小蝦米闖江湖》,通過這2個月的理解,在這裡給廣大萌新分享下,剛入遊戲比較迷茫的一些問題,及答案。
  • 一位萌新的零氪指南
    這裡為大家轉載我們三會的成員Fella寫的零氪指南。希望可以幫助到剛進入遊戲不久的朋友們!也許他的路徑不適合所有人,但我仍然覺得很具參考價值。然後這兩種貨幣,萌新不要用,存著即可,抵擋住所有的誘惑,存著...就存著....
  • 劍網3萌新指南——最全入門詳解
    當然,並不建議萌新時期就與散戶進行交易,非常難以判斷各類交易風險,所以建議在前期需要購買各類外觀或金幣時可以在淘寶一些較大的店鋪進行交易,或是通過代售中介進行交易。4.5. 充值點卡與通寶儘量走官方渠道,淘寶以及其他平臺所謂的打折代充由於渠道不能確保正規【部分洗錢工作室盜刷信用卡充值】會有封號風險【不是所有代充都會,但在不確定的情況下不推薦】。6. 淘寶店鋪的代練多為腳本操作,封號風險高,不建議聯繫。
  • HTML5 入門教程
    html5 引入了很多先進的功能,可以使設計人員/開發人員和用戶輕鬆交互。html5 允許用戶直接播放視頻和音頻文件。html5 允許用戶在畫布上繪畫。html5 可以幫助用戶設計更好的表單並構建可脫機工作的Web應用程式。html5 為用戶提供了通常需要編寫JavaScript才能完成的高級功能。
  • 萌新不完全甩鍋指南
    作為一名剛剛加入守望先鋒的萌新特工,在接觸遊戲之初時,如何才能在娛樂自己的同時又不會坑到可愛的隊友們呢?下面就來為大家來介紹一下這款遊戲的新人不完全甩鍋指南,祝大家新年玩的開心,好運連連。所以作為一名才剛剛加入《守望先鋒》不久的萌新玩家,選擇適合的英雄就是你能否在輸掉比賽後成功「甩鍋」的關鍵之一。假如選擇了正確的英雄,在比賽結束後即使輸掉了比賽,也完全可以大呼「這個鍋,我不背」。不信你看!
  • 【新手攻略】新版萌新練槍指南
    然而,一批批入職的新指揮官在複雜的工作流程面前,表現的非常不適應。有的新人善於討教,很快就能投入公司的核心活動,斬獲了低保分數,但更多的新朋友還是跟不上節奏,或是平庸打卡,或是時常翹班,辭職一了百了的也不是沒有。作為一位資深指揮官,為這些同僚提供幫助,平穩度過萌新期,提供儘可能高效的攻略,我覺得是非常有意義的。本文旨在告訴萌新,在剛入坑時,練什麼槍,與怎麼練槍。
  • 《失落的龍約》萌新入門攻略
    運營良心,龍晶和十連劵不要錢一樣送,不氪金也能體驗氪金般的樂趣3.畫風一致,人物萌度爆表4.玩法有趣,活動獎勵極其豐厚5.可肝可閒6.任天堂開發,遊戲性第一7.BGM百聽不厭,非常洗腦遊戲缺點:1.客戶端下載麻煩,必須到港澳臺日歐等非大陸商店下載。
  • 萌新入飾品坑指南
    Csgola:http://www.csgola.com/(類似與Exchange的網站,是國人製作的)(6) Csgoii:http://www.csgoii.com/index.html(國人的飾品估價網站)二.
  • 決戰江湖:萌新怎麼玩?新手快速入門攻略
    決戰江湖萌新怎麼玩,新手快速入門攻略。決戰江湖是一款東方修真題材的MMORPG手遊,遊戲中玩家從一位初入江湖的修士,在凡塵間歷煉身心,激鬥上古魔神,立足於世界之巔。很多萌新小夥伴面對遊戲不知道該怎麼做才能快速升級,所以小編今天帶來的就是新手快速入門的攻略,小夥伴們快來看看吧!
  • HTML5 & CSS3初學者指南(4) – Canvas使用
    HTML5 的 Canvas 元素使用 JavaScript 在網頁上繪製圖像。畫布是一個矩形區域,你可以控制其每一像素。canvas 擁有多種繪製路徑、矩形、圓形、字符以及添加圖像的方法。創建 Canvas 元素向 HTML5 頁面添加 Canvas 元素。
  • [入門必看]天命之子國際服萌新入坑指南
    本文適合閱讀對象:剛入坑1-2周的萌新或未入坑想入坑的玩家遊戲下載■ 安卓- 下載
  • Last Day on Earth攻略心得 萌新入門必看攻略
    萌新入門必需要注意什麼?很多玩家都不知道前期怎麼玩,下面為大家帶來Last Day on Earth攻略心得 萌新入門必看攻略。 Last Day on Earth攻略心得 物資補給,墜機,商人…永遠只會在你沒體力的時候出現,並且時間永遠不超過六分鐘…得了吧你,別想著能靠隨機事件收集東西了…你永遠不會有那個機會的。
  • 《少年群俠傳》萌新入門技巧 快速衝級攻略
    萌新怎麼玩?怎麼快速衝級?遊戲中很多小萌新剛進遊戲還不是很了解玩法,都想著能趕緊升級,下面由小喬為大家帶來萌新入門攻略吧!
  • 《小小航海士》安卓版來了 萌新入手指南首曝
    萬事開頭難,更何況是這款遊戲自由度超高的小遊戲,不管是探索發現還是經營戰鬥,萌新想要上手可不容易。不過,貼心的小編早已集各家所長,萌新入手指南新鮮熱辣出爐,收好不謝!跑商賺錢篇金錢不是萬能,但沒錢則是萬萬不能。跑商賺錢同樣也是《小小航海士》的重中之重。