萌新的HTML5 入门指南


Posted in HTML / CSS onNovember 06, 2020

本文由葡萄城技术团队原创并首发

作者:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

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标签元素的上下文对象,然后使用该上下文对象中的绘图功能进行绘制。https://www.w3schools.com/html/html5_canvas.asp

<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区域自动根据剩余空间填充。

萌新的HTML5 入门指南

萌新的HTML5 入门指南

萌新的HTML5 入门指南

我们首先使用自适应布局来实现上图的结构

  • 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根据剩余宽度调整。

萌新的HTML5 入门指南

这样的布局方式存在一些问题,就是当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 入门指南

对比自适应布局,上面的代码有以下特点:

  • 页面使用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-

之前我们也写过FlexBox教程,更多的内容欢迎大家查看这篇文章了解:https://www.cnblogs.com/powertoolsteam/p/10000927.html

后面我们将会为大家介绍JavaScript相关的内容,希望大家持续关注。 

以上就是萌新的HTML5 入门指南的详细内容,更多关于HTML5 入门指南的资料请关注三水点靠木其它相关文章!

HTML / CSS 相关文章推荐
CSS3 clip-path 用法介绍详解
Mar 01 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
CSS3属性box-shadow使用指南
Dec 09 HTML / CSS
CSS中垂直居中的简单实现方法
Jul 06 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
Jun 30 HTML / CSS
浅谈Html5多线程开发之WebWorkers
May 02 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
Mar 27 HTML / CSS
CSS实现切角+边框+投影+内容背景色渐变效果
Nov 01 HTML / CSS
什么是css原子化,有什么用?
Apr 24 HTML / CSS
html网页引入svg图片的4种方式
Aug 05 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
Nov 04 #HTML / CSS
浅析HTML5 meta viewport参数
Oct 28 #HTML / CSS
一个基于canvas的移动端图片编辑器的实现
Oct 28 #HTML / CSS
详解HTML5布局和HTML5标签
Oct 26 #HTML / CSS
HTML5实现移动端点击翻牌功能
Oct 23 #HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
Oct 23 #HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
Oct 19 #HTML / CSS
You might like
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
python根据日期返回星期几的方法
2015/07/06 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
家居装修公司创业计划书范文
2014/03/20 职场文书
车间核算员岗位职责
2014/07/01 职场文书
批评与自我批评总结
2014/10/17 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers