HTML5是万维网的核心语言、超文本标记语言(HTML)的第五次重大修改。HTML5 已经于2014年10月正式定稿。然而,大部分现代浏览器已经具备了某些HTML5支持。HTML5是web时代最前沿的技术,它特有canvas标签和多种选择的游戏开发引擎,让游戏开发更便捷。
近些年来html5技术非常火爆!HTML5开发人员是企业必不可少、不可或缺的人员。企业想要快速的发展,HTML5开发人员就必须要有,由此可见HTML5开发人员是多么的紧张,所以有很多人想要学习HTML5开发。
下面,就为你推荐几部新手入门html5的书籍。
1、HTML5+CSS3从入门到精通(李东博 著)
简介:本书通过基础知识+中小实例+综合案例的方式,讲述了用HTML5+ CSS3设计构建网站的必备知识,相对于专业指南、高级程序设计、开发指南同类图书,本书是一本适合快速入手的自学教程。
2、响应式Web设计:HTML5和CSS3实战(BenFrain 著, 王永强 译)
简介:全书主要是带领读者做一个小网页来写的,其实响应式的东西讲得比较少,大半内容是介绍H5和css3的基础知识。如果同时想了解H5和css3和响应式设计入门,这本书不错。
3、HTML5移动Web开发实战详解(林珑 著)
简介:本书由浅入深,全面、系统、详尽地介绍了HTML5相关技术和其在移动开发领域的应用。书中提供了大量的代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中稍加修改应用这些代码。《HTML5移动Web开发实战详解》涉及面广,从基本原理到实战,再到项目工作流,几乎涉及一个合格的前端开发工程师需要具备的所有重要知识。
4、 疯狂HTML 5/CSS3/JavaScript讲义(李刚 著)
简介:这是一本全面介绍HTML 5、CSS 3和JavaScript前端开发技术的图书,系统地介绍了HTML 5常用的元素和属性、HTML5的表单元素和属性、HTML 5的绘图支持、HTML5的多媒体支持、CSS 3的功能和用法、最前沿的变形与动画功能等。除此之外,《疯狂HTML 5/CSS 3/JavaScript讲义》还系统地介绍了JavaScript编程知识,包括JavaScript基本语法、DOM编程,以及HTML 5新增的本地存储、离线应用、JavaScript多线程、客户端通信支持、WebSocket编程等。
5、HTML5触摸界面设计与开发(StephenWoods 著, 覃介右 谷岳 译)
简介:《HTML5触摸界面设计与开发》专注于触摸界面的开发,内容的结构和优化网站的思路大概一致。上半部分涵盖了能使各类网站,特别是移动网站变快的基本概念。书的后半部分是专门讲触摸界面的,特别是尽可能地让它们更平稳和快速。本书适合具有一定经验的Web开发者阅读参考。
近期因工作需求,做了一个Vue APP,过程中遇到了曾今经常听说,但从未真正接触过的移动端适配问题,中间遇到了很多挫折,经过了5天吧,这个小app经过来回重写样式好几遍,终于找到了门道,应该算是正路吧,我身边也没有真正做h5 app的伙伴,靠着自己百度、揣摩,外加朋友的帮助,学会了适配的方案。
解释
vw:屏幕可视宽度百分比
vh:屏幕可视高度百分比
vmin:屏幕可视宽度和高度中较小的那个,用这个单位,可以让字体在移动设备无论横屏还是竖屏都保持大小不变
vmax:屏幕可视宽度和高度中较大的那个,用处同上vmin
%:相对于父级元素的百分比尺寸
由于设备的高度会在不同的情况下受到影响,所以我们主要使用vw去控制各个元素的尺寸,因为设备的可视宽度正常情况下是不会有什么东东占用的,我没遇到过,所以设备的宽度就是可视宽度,那么宽度不变,我们使用vw去控制元素尺寸的时候,也就不会受到任何影响了,无论在什么情况下,都能保证元素的位置和尺寸不变了
而我们在适当的情况下需要使用%,因为vw、vh等都是设备的整个屏幕的可视宽高百分比,而有时候我们要的百分比是相对父级元素的,所以不要随便乱用,要想好再用
下面展示下把web app打包成apk全屏应用和在浏览器中浏览的效果
px 转 rem,还有写各种屏幕的不同样式的方案是过去的方案,当前主流使用CSS3的新特性单位,才最佳
例如 <input type="month">可以选择年月日例如 <input type="text" placeholder="请输入" >
显示在input输入框 默认显示的文字
例如 鼠标滑动事件
实例
<canvas id="myCanvas" width="200" height="100"style="border:1px solid #000000"></canvas>
<video src=""></video>
<audio src=""></audio>
用法一样 例如
// 设置本地存储
localStorage.setItem("lastname", "Smith")
// 获取本地存储
document.getElementById("result").innerHTML = localStorage.getItem("lastname")
draggable属性是html5的全局属性,是html5支持拖放操作的方式之一,用来表示元素是否可以被拖放,draggable有三个值,true表示可以拖放,false表示不可以被拖放,auto表示使用浏览器的默认值
在h5中,如果想拖拽元素,就必须为元素添加draggable="true"。图片和超链接默认就可以拖拽
<div draggable="true">123</div>
:last-child /* 选择元素最后一个孩子 */
:first-child /* 选择元素第一个孩子 */
:nth-child(1) /* 按照第几个孩子给它设置样式 */
:nth-child(even) /* 按照偶数 */
:nth-child(odd) /* 按照奇数 */
:disabled /* 选择每个禁用的E元素 */
:checked /* 选择每个被选中的E元素 */
:not(selector) /* 选择非 selector 元素的每个元素 */
::selection /* 选择被用户选取的元素部分 */
伪类元素选择器
:last-child /* 选择元素最后一个孩子 */
:first-child /* 选择元素第一个孩子 */
:nth-child(1) /* 按照第几个孩子给它设置样式 */
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
background-size:规定背景图片的尺寸(cover:填充;100% 100%:拉伸)
background-origin:规定背景图片的定位区域
对于 background-origin 属性,有如下属性
背景图片可以放置于 content-box、padding-box 或 border-box 区域
border-radius:圆角
box-shadow / text-shadow:阴影
border-image:边框图片
2D/3D 转换
2D 转换(transform)
translate():元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数。 transform: translate(50px, 100px)
rotate():元素顺时针旋转给定的角度。若为负值,元素将逆时针旋转。transform: rotate(30deg)
scale():元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数,也可以一个值(宽高)。transform: scale(2,4)
skew():元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数。transform: skew(30deg, 20deg)
matrix(): 把所有 2D 转换方法组合在一起,需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。transform:matrix(0.866,0.5,-0.5,0.866,0,0)
3D 转换
rotateX():元素围绕其 X 轴以给定的度数进行旋转。transform: rotateX(120deg)
rotateY():元素围绕其 Y 轴以给定的度数进行旋转。transform: rotateY(130deg)
perspective:规定 3D 元素的透视效果
transition-property :执行动画对应的属性,例如 color,background 等,可以使用 all 来指定所有的属性。
transition-duration:过渡动画的一个持续时间。
transition-timing-function:在延续时间段,动画变化的速率,常见的有:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier
transition-delay:延迟多久后开始动画
先定义 @keyframes 规则(0%,100% | from,to)
然后定义 animation,以下参数可直接写在 animation 后面
animation-name: 定义动画名称
animation-duration: 指定元素播放动画所持续的时间长
animation-timing-function: ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(, , , ): 指元素根据时间的推进来改变属性值的变换速率,即动画的播放方式
animation-delay: 指定元素动画开始时间
animation-iteration-count: infinite | number:指定元素播放动画的循环次数
animation-direction: normal | alternate: 指定元素动画播放的方向,其只有两个值,默认值为normal,如果设置为 normal 时,动画的每次循环都是向前播放;另一个值是 alternate,规定动画在下一周期逆向地播放(来去播放)
animation-play-state: running | paused :控制元素动画的播放状态
实例
div{
width: 200px
height: 100px
background: pink
animation: move 1s linear
}
@keyframes move {
0%{
width: 0
}
100%{
width: 500px
}
}
通过CSS3,能够创建多个列来对文本进行布局
column-count: 规定元素应该被分隔的列数
column-gap: 规定列之间的间隔
column-rule: 设置列之间的宽度、样式和颜色规则
resize
box-sizing
outline-offset
resize 属性规定是否可由用户调整元素尺寸。如果希望此属性生效,需要设置元素的 overflow 属性,值可以是 auto、hidden 或 scroll
div {
resize: both/* none|both|horizontal|vertical*/ overflow: auto
}
box-sizing 属性可设置的值有 content-box、border-box 和 inherit
content-box 是W3C的标准盒模型,元素宽度 = 内容宽度 + padding + border:意思是 padding 和 border 会增加元素的宽度,以至于实际上的 width 大于原始设定的 width
border-box 是ie的怪异盒模型,元素宽度 = 设定的宽度,已经将 padding 和 border 包括进去了,比如有时候在元素基础上添加内距 padding 或 border 会将布局撑破,但是使用 border-box 就可以轻松完成
inherit:规定应从父元素继承 box-sizing 属性的值
outline-offset 属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓
div {
display: flex
flex-direction: row
/*弹性盒方向:主轴方向X轴 */
flex-direction: column
/* 弹性盒方向:主轴Y轴方向 */
flex-direction: row-reverse
/* 弹性盒方向:主轴方向X轴 倒叙 */
flex-direction: column-reverse
/* 弹性盒方向:主轴Y轴方向 倒叙*/
flex-wrap: nowrap
/* 弹性盒换行:不换行 默认的 */
flex-wrap: wrap
/* 弹性盒换行:换行 */
/*设置主轴方向子元素排列顺序*/
justify-content: flex-start
/* 从左到右排列 默认的 */
justify-content: flex-end
/* 从尾部开始排列 不影响子元素排列顺序 */
justify-content: center
/* 从主轴居中对齐 */
justify-content: space-around
/* 平分主轴剩余空间 */
justify-content: space-between
/* 两边对齐,中间评分剩余空间 */
justify-content: space-evenly
/* 间距相同 */
}
CSS 兼容内核
-moz-:代表FireFox浏览器私有属性
-ms-:代表IE浏览器私有属性
-webkit-:代表safari、chrome浏览器私有属性
-o-:代表opera浏览器私有属性