html编程入门指南,给萌新HTML5 入门指南

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

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

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页面第一行是 浏览器就会按照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

var c = document.getElementById("myCanvas");

var ctx = c.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

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

ac6099c8ef36f186279c232111be60de.png

2b27b153f7096397743f7fd616dcc9b0.png

2b27b153f7096397743f7fd616dcc9b0.png

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

HTML

@H_502_136@

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

7e761d45d4cb430751e7f6004ed9da33.png

这样的布局方式存在一些问题,就是当header、footer高度发生变化后,需要重新设置container高度,另外如果container中并列元素较多时,浮动难以控制。

接下来,我们看一下如何使用Flex布局实现上面的效果:

HTML

@H_502_136@

Welcome to HTML5 World!

Aside

Copyright © 2020 GrapeCity inc.

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;

}

效果如下:

2b27b153f7096397743f7fd616dcc9b0.png

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

页面使用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 入门指南所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

税务大厅计算机网络安全与管理,峡江县税务局多措并举加强网络安全和保密管理...

在2019年国家网络安全宣传周期间,峡江县税务局紧紧围绕“网络安全为人民,网络安全靠人民”主题扎实开展网络安全宣传活动,多点着力,多措并举,编织网络安全保障网,加强保密教育管理,确保信息网络…

计算机知识太多了,计算机基础知识对程序员来说有多重要?

原标题:计算机基础知识对程序员来说有多重要?科班和培训生同比于自学者的优势就在于这些计算机专业的核心课程(数据结构与算法这种不管科班培训都要学的不算):离散数学、编译原理、计算机组成原理、操作与系统——乃至图形学和数字图像处理。…

html未点击背景 点击背景,在AngularJs中点击状态如何改变背景色

下面我就为大家分享一篇AngularJs点击状态值改变背景色的实例,具有很好的参考价值,希望对大家有所帮助。实例如下://更改边框颜色的代码 $("#shname").css({"border":"1px solid red"});//排序有时候下标会错乱…

计算机应用考试其一级属于中级,计算机软件水平考试可以直接考中级吗?

原标题:计算机软件水平考试可以直接考中级吗?【http://jsj.kaoshib.com/rjsp/bkzn/76322.html】计算机软件水平考试呢,是对计算机与软件专业技术人员的一个职业资格、专业资格认定的一种考试,在某种程度上,计算机软件水…

计算机网络中ping命令的使用方法,ping命令的基础使用技巧

在电脑基础操作中,很多人在操作电脑中可以接触到这个ping命令。但是都是没有深入的去了解这个ping命令。对于ping命令在电脑中可以通过ping来判断及解决网络故障。我们每天都接触电脑使用互联网的人来说也是要去了解ping命令的基础使用。ping命令的工作原理&#xf…

计算机上硬盘显示不出来怎么办,加装硬盘不显示怎么办_新硬盘装上去了但是没显示这么解决...

一些小伙伴在加装玩新的硬盘后出现了一个问题,那就是硬盘明明安装上去了,但是电脑上没有显示出来。这是为什么呢?其实可能是因为安装没成功或者分区没有分好导致的,那么加装硬盘不显示该怎么办呢?接下来小编就给大家带…

武未转变服务器tp,未转变者怎么tp别人 | 手游网游页游攻略大全

发布时间:2016-04-24 我的世界中有的玩家想要TP别人,但是不知道怎么操作,有的新手玩家更是不知道TP是什么意思,那么这些就让小编来为大家解释一遍吧. 新手玩家请看我的世界手机版tp拉人怎么操作 TP操作…

搜狗语音输入提示服务器繁忙,讯飞语音输入如何提高识别率 提高方法

讯飞语音是一款语音输入软件,能够帮助用户进行通过语音说话,进行智能识别,帮助用户在繁忙的时候,直接语音输入,不过语言描述要清晰哦!小编在这里分享一下识别率提高方法,不要错过哦!…

服务器ie打不开http协议,在浏览器输入地址后,这个世界发生了什么(http协议浅谈)...

引言这篇文章是我各处收集有关于http的知识,不成体系,爱看不看?,看完点赞。我们输入网址之后发生的事情输入网址并回车(URL 包括 协议名称 域名或者IP 端口号 请求资源具体地址 参数)解析域名 DNS解析浏览器发送HTTP请求服务器处理请求服务器…

个性化显示服务器,Linux系统个性化登录提示信息的方法

字符界面操作久了,就没有太多的新鲜感,所以加点登录时的个性化显示,让心情变的更愉快!如果采用root账号登录编辑/etc/bashrc内容,那所有其他帐号登录都会提示相同的内容,如果想每个用户进行配置&#xff0c…

微软2022服务器,​微软公开地分享了即将发布的WindowsServer 2022的特性

微软测试其自去年以来的下一个版本的WindowsServer在内部测试程序中。尽管发布了常规的服务器测试构建,但Microsoft官员很少提供有关这些服务器测试构建中的特性和更新的任何公开信息。但是,在3月2日,官员们更公开地分享了即将发布的WindowsS…

leetcode 18 --- 4sum

1 题目 给出一个有n个元素的数组S,S中是否有元素a,b,c和d满足abcd目标值?找出数组S中所有满足条件的四元组。 注意: 四元组(a、b、c、d)中的元素必须按非降序排列。(即a≤b≤c≤d)解集中不能…

leetcode 111 --- 二叉树最小深度

1 题目 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 2 解法 2.1 递归方法 要找到最小深度,首先要确定有根到叶的第一个叶节点,也就是一层一层确定.所以有: /*** struct TreeNode {* int val;* struct TreeNode *left;* struct…

leetcode 145 --- 二叉树后序遍历

1 题目 用递归的方法对给定的二叉树进行后序遍历。 例如: 给定的二叉树为{1,#,2,3}, 返回[3,2,1]. 示例1 输入 {1,#,2,3} 输出 [3,2,1] 2 解法 2.1 递归解法 /*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/c…

leetcode 144 --- 二叉树前序遍历

1 题目 求给定的二叉树的前序遍历。 2 解法 2.1 递归解法 2.2 非递归解法 前序遍历,先遍历根节点,然后遍历左节点,最后是右节点,所以用栈的方式,先是根节点入栈,然后出栈遍历,如果该节点有左右节点,那么左右节点入栈(应为右节点先入栈,然后是左节点,因为左节点先遍历,所以…

leetcode 116 --- 填充每个节点指向最右节点的next指针

1 题目 填充每个节点指向最右节点的next指针, 填充所有节点的next指针,指向最接近它的同一层右边节点。如果没有同一层没有右边的节点,则应该将next指针设置为NULL。 初始时,所有的next指针都为NULL 注意: 你只能使用常量级…

leetcode 110 --- 判断给定的二叉树是否是平衡二叉树

1 题目 判断给定的二叉树是否是平衡二叉树 平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。 一颗树的高度指的是树的根节点到所有节点的距离中的最大值。 2 解法 2.1 多次递归 最初的想法肯定是先求出每个节点的左右…

leetcode 107 --- 二叉树程序遍历 ii

1 题目 给定一个二叉树,返回该二叉树由底层到顶层的层序遍历,(从左向右,从叶子节点到根节点,一层一层的遍历) 2 解法 2.1 我的最初解法 按照正常的层序遍历应该是从上到下的,只要用一个栈先临时存一下每…

leetcode 148 --- 链表排序

1 题目 链表排序 2 解法 2.1 冒泡排序 /*** struct ListNode {* int val;* struct ListNode *next;* };*/class Solution { public:/*** * param head ListNode类 * return ListNode类*/ListNode* sortList(ListNode* head) {// write code hereif (head) {ListNode* endNo…

leetcode 1 --- 两数之和

1 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 2 解法 struct haveOrigionIndexNu…