天总结的是CSS3的学习内容
CSS3是CSS技术的升级版本,CSS即层叠样式表(Cascading StyleSheet)。CSS3语言是朝着模块化发展的,把它分解成小的模块,并且加入 更多新的模块进来:
盒子模型
文字特效
边框圆角
动画
多列布局
用户界面
旋转
渐变
...
CSS选择器:使用CSS对html页面中的元素实现一对一,一对多或者多对一的控制:
选择器
{
样式
}
1.属性选择器
在CSS3中追加了三个选择器:[att*=val];[att^=val];[att$=val]–>att表示为属性,val表示为属性的属性值。
[att*=val]:如果元素用att表示的属性的值中包含val指定的字符,那么该元素使用这个样式。
[att$=val]:如果元素用att表示的属性的属性值的结尾字符用val指定的字符,那么该元素使用这个样式。
[att^=val]:如果元素用att表示的属性的属性值的开头字符为用val指定的字符,那么该元素使用这个样式。
注意: /如果纯用数字的时候该样式不会显示成功,需要用\连接与数字最近的符号 注意!只有’-‘的字符需要加’\’/
<head>
<meta charset="UTF-8">
<title>css3中的属性选择器</title>
<style>
/*1.[att*=val] 此时只有id=section1A的div会拥有该样式*/
[id*=section1]{
background-color: blueviolet;
}
/*2.[att^=val] 此时只有id=footer的div会拥有该样式*/
[id^=f]{
background-color: blue;
}
/*3.[att$=val] 此时只有id=sectionB的div会拥有该样式*/
[id$=B]{
background-color: chartreuse;
}
/*注意!*/
[id$=\-1]{
background-color: crimson;
}
</style>
</head>
<body>
<h1>CSS3中的属性选择器</h1>
<div id="section1A">section1A</div>
<div id="sectionB">sectionB</div>
<div id="section2-1">section2-1</div>
<div id="footer">footer</div>
</body>
2.结构性伪类选择器
(1)类选择器
使用类选择器把相同的元素定义成不同的样式,伪类选择器是已经定义好的不可以随便起名。
p.right{
color:red;
}
p.left{
colot:blue;
}
(2)伪类选择器—-最常见的伪类选择器:a(使用顺序为:未,已,悬,停)
a:link{
color: #ff6600;
}
a:visited{
color: blueviolet;
}
a:hover{
color: aqua;
}
/*鼠标点击时*/
a:active{
color: darkblue;
}
(3)伪元素选择器
针对于CSS中已经定义好的伪元素使用的选择器(first-line;first-letter;before;after)。
选择器:伪元素{
属性:值;
}
选择器.类名:伪元素{
属性:值;
}
我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取
first-line伪元素选择器:向某个元素中的第一行文字使用样式。
first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式。
before:在某个元素之前插入一些内容。
after:在某个元素之后插入一些内容。
可以使用before和after伪元素在页面中插入文字,图像,项目编号等。
插入文字:E:before/after
排除一些不需要插入内容的元素:E:none:before/after
插入图像
插入项目编号
a.在多个标题前加上编号:counter属性对项目追加编号
元素:before{
content:counter(计数器);
}
元素{
counter-increment:content属性值中所指定的计数器名称;
}
b.对编号中添加文字
c.指定编号的样式
d.指定编号的种类:list-style-type
e.编号嵌套,重置编号
要对哪一个元素进行重置,那么就在该元素的父元素上进行设置reset。
f.中编号中嵌入大编号
h2:before{
content:counter(大编号计数器)'-'conter(中编号计数器);
g.在字符串两边嵌套文字符号:open-quoter&close-quoter
<head>
<meta charset="UTF-8">
<title>伪元素选择器</title>
<style>
p:first-line{
color: blueviolet;
}
p:first-letter{
color: aqua;
}
li:before{
content: "~~~";
color: #000;
}
li:after{
content: "~~~";
color: darkred;
}
</style>
</head>
<body>
<h1>CSS中主要有四个伪类选择器</h1>
<p>
CSS中主要有四个伪类选择器<br />
first-line伪元素选择器:向某个元素中的第一行文字使用样式
</p>
<p>
first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式
</p>
<h4>befor&after</h4>
<ul>
<li><a href="first.html">balabala</a></li>
</ul>
</body>
(4)结构性伪类选择器
<head>
<style>
/*empty选择器*/
:empty{
background-color: darkviolet;
}
</style>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td></td>
</tr>
</table>
</body>
<head>
<style>
/*target选择器*/
:target{
background-color: blanchedalmond;
color: brown;
}
</style>
</head>
<body>
<h2>target选择器</h2>
<a href="#A">A</a>
<a href="#B">B</a>
<div id="A">
<h2>A标题</h2>
<p>内容</p>
</div>
<div id="B">
<h2>B标题</h2>
<p>内容</p>
</div>
</body>
first-child:单独指定第一个子元素的样式。
last-child:单独指定最后一个子元素的样式。
nth-child:选择器匹配正数下来的第N个子元素,nth-child(odd)为第奇数个子元素,nth-child(even)为第偶数个子元素。
nth-last-child(n):匹配倒数数下来第n个子元素。
nth-of-type:正数,当指定元素为标题加内容的时候,如果使用上面的方法会导致真正的指定元素不被成功指定,因此需要使用nth-first-type方法进行指定。
nth-last-type:倒数,同nth-first-type。
循环使用样式:nth-child(An+B)–A 表示每次循环中共包括几种样式,B表示指定的样式在循环中所处的位置。
only-child:只对一个元素起作用。
<head>
<meta charset="UTF-8">
<title>结构性伪类选择器</title>
<style>
/* 选择器first-child;last-child;nth-child;nth-last-child*/
li:first-child{
background-color: darkviolet;
}
li:last-child{
background-color: chartreuse;
}
li:nth-child(3){
background-color: cadetblue;
}
li:nth-child(odd){
background-color: aquamarine;
}
li:nth-child(even){
background-color: cornflowerblue;
}
li:nth-last-child(3){
background-color: darkgrey;
}
/*循环*/
li:nth-child(4n+1){
background-color: aquamarine;
}
li:nth-child(4n+2){
background-color: indianred;
}
/*唯一的*/
li:only-child{
background-color: hotpink;
}
/*存在的问题*/
h2:nth-child(2){
background-color: darkgoldenrod;
}
h2:nth-child(odd){
background-color: darkgoldenrod;
}
h2:nth-child(even){
background-color: darkgoldenrod;
}
h2:nth-of-type(odd){
background-color: chartreuse;
}
h2:nth-of-type(even){
background-color: aquamarine;
}
</style>
</head>
<body>
<h1>选择器first-child;last-child;nth-child;nth-last-child</h1>
<ul>
<li>No.1</li><li>No.2</li><li>No.3</li><li>No.4</li>
<li>No.5</li><li>No.6</li><li>No.7</li><li>No.8</li>
<li>No.9</li><li>No.10</li>
<li>No.11</li><li>No.12</li>
</ul>
<h1>唯一的</h1>
<ul>
<li>唯一,多加一个就没有啦</li>
</ul>
<div id="A">
<h2>A标题</h2><p>内容</p>
<h2>B标题</h2><p>内容</p>
</div>
</body>
3.UI元素状态伪类选择器
指定的样式只有在元素处于某种状态下才起作用,在默认状态下不起作用!
选择器:伪元素{
属性:值;
}
选择器.类名:伪元素{
属性:值;
}
first-line伪元素选择器:向某个元素中的第一行文字使用样式。
first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式。
before:在某个元素之前插入一些内容。
after:在某个元素之后插入一些内容。
可以使用before和after伪元素在页面中插入文字,图像,项目编号等。
插入文字:E:before/after
排除一些不需要插入内容的元素:E:none:before/after
插入图像
插入项目编号
a.在多个标题前加上编号:counter属性对项目追加编号
元素:before{
content:counter(计数器);
}
元素{
counter-increment:content属性值中所指定的计数器名称;
}
b.对编号中添加文字
c.指定编号的样式
d.指定编号的种类:list-style-type
e.编号嵌套,重置编号
要对哪一个元素进行重置,那么就在该元素的父元素上进行设置reset。
f.中编号中嵌入大编号
h2:before{
content:counter(大编号计数器)'-'conter(中编号计数器);
g.在字符串两边嵌套文字符号:open-quoter&close-quoter
<head>
<meta charset="UTF-8">
<title>伪元素选择器</title>
<style>
p:first-line{
color: blueviolet;
}
p:first-letter{
color: aqua;
}
li:before{
content: "~~~";
color: #000;
}
li:after{
content: "~~~";
color: darkred;
}
</style>
</head>
<body>
<h1>CSS中主要有四个伪类选择器</h1>
<p>
CSS中主要有四个伪类选择器<br />
first-line伪元素选择器:向某个元素中的第一行文字使用样式
</p>
<p>
first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式
</p>
<h4>befor&after</h4>
<ul>
<li><a href="first.html">balabala</a></li>
</ul>
</body>
(4)结构性伪类选择器
<head>
<style>
/*empty选择器*/
:empty{
background-color: darkviolet;
}
</style>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td></td>
</tr>
</table>
</body>
<head>
<style>
/*target选择器*/
:target{
background-color: blanchedalmond;
color: brown;
}
</style>
</head>
<body>
<h2>target选择器</h2>
<a href="#A">A</a>
<a href="#B">B</a>
<div id="A">
<h2>A标题</h2>
<p>内容</p>
</div>
<div id="B">
<h2>B标题</h2>
<p>内容</p>
</div>
</body>
first-child:单独指定第一个子元素的样式。
last-child:单独指定最后一个子元素的样式。
nth-child:选择器匹配正数下来的第N个子元素,nth-child(odd)为第奇数个子元素,nth-child(even)为第偶数个子元素。
nth-last-child(n):匹配倒数数下来第n个子元素。
nth-of-type:正数,当指定元素为标题加内容的时候,如果使用上面的方法会导致真正的指定元素不被成功指定,因此需要使用nth-first-type方法进行指定。
nth-last-type:倒数,同nth-first-type。
循环使用样式:nth-child(An+B)–A 表示每次循环中共包括几种样式,B表示指定的样式在循环中所处的位置。
only-child:只对一个元素起作用。
<head>
<meta charset="UTF-8">
<title>结构性伪类选择器</title>
<style>
/* 选择器first-child;last-child;nth-child;nth-last-child*/
li:first-child{
background-color: darkviolet;
}
li:last-child{
background-color: chartreuse;
}
li:nth-child(3){
background-color: cadetblue;
}
li:nth-child(odd){
background-color: aquamarine;
}
li:nth-child(even){
background-color: cornflowerblue;
}
li:nth-last-child(3){
background-color: darkgrey;
}
/*循环*/
li:nth-child(4n+1){
background-color: aquamarine;
}
li:nth-child(4n+2){
background-color: indianred;
}
/*唯一的*/
li:only-child{
background-color: hotpink;
}
/*存在的问题*/
h2:nth-child(2){
background-color: darkgoldenrod;
}
h2:nth-child(odd){
background-color: darkgoldenrod;
}
h2:nth-child(even){
background-color: darkgoldenrod;
}
h2:nth-of-type(odd){
background-color: chartreuse;
}
h2:nth-of-type(even){
background-color: aquamarine;
}
</style>
</head>
<body>
<h1>选择器first-child;last-child;nth-child;nth-last-child</h1>
<ul>
<li>No.1</li><li>No.2</li><li>No.3</li><li>No.4</li>
<li>No.5</li><li>No.6</li><li>No.7</li><li>No.8</li>
<li>No.9</li><li>No.10</li>
<li>No.11</li><li>No.12</li>
</ul>
<h1>唯一的</h1>
<ul>
<li>唯一,多加一个就没有啦</li>
</ul>
<div id="A">
<h2>A标题</h2><p>内容</p>
<h2>B标题</h2><p>内容</p>
</div>
</body>
3.UI元素状态伪类选择器
指定的样式只有在元素处于某种状态下才起作用,在默认状态下不起作用!
4.兄弟元素选择器
用来指定位于同一父元素之中的某个元素之后的所有其他某个种类的兄弟元素所使用的样式。一定要是之后的兄弟元素!
<子元素>~<子元素之后的同级兄弟元素>
{
样式
}
1.text-shadow
p{
text-shadow:length(阴影离开文字的横方向距离) length(阴影离开文字的纵方向距离) length(阴影模糊半径) color(阴影颜色)
}
位移距离:前两个参数代表的阴影离开文字的横(纵)方向距离,不可省略。
第三个参数代表模糊半径,代表阴影向外模糊时候的范围,数值越大越模糊。
当没有指定颜色值时,会使用默认文字的颜色。
指定多个阴影,并且可以针对每个阴影用逗号分隔。
2.word-break:浏览器文本自动换行。
3.word-wrap: 长单词与URL地址自动换行。
4.服务器端字体和@font-face属性
定义斜体或粗体:在定义字体的时候,可以把字体定义成斜体或者粗体,在使用服务器服务器端字体的时候,需要根据斜体还是粗体使用不同的汉字。
显示客户端字体:首先将font-family设置为本地的字体名,然后将src属性设置为local(‘字体’)。
font-variant:设置文本是否大小写。
font-weight:设置文本的粗细。
font-stretch:设置文本是否横向的拉伸变形。
2.3.盒模型
1.各种盒模型
inline-block类型
使用inline-block类型来执行分列显示
<head>
<style>
div.div1{
background-color: #ff6600;
width: 300px;
height: 150px;
float: left;
}
div.div2{
background-color: #21fffc;
width: 200px;
height: 100px;
float: left;
}
div.div3{
background-color: #ef23ff;
width: 500px;
height: 100px;
clear: both;
}
/*inline-block*/
div.div4{
background-color: #ff6600;
display: inline-block;
width: 300px;
}
div.div5{
background-color: #21fffc;
vertical-align: top;
display: inline-block;
width: 200px;
}
div.div6{
background-color: #ef23ff;
width: 500px;
height: 100px;
}
</style>
</head>
<body>
<h1>使用inline-block类型来执行分列显示-1.传统方式</h1>
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>
<hr color="darkred">
<h1>使用inline-block类型来执行分列显示-1.inline-block方式</h1>
<div class="div4">
div1div1div1div1div1div1div1
div1div1div1div1div1div1div1div1
div1div1div1div1div1div1div1div1
</div><div class="div5">
div2div2div2div2div2div2div2
div2div2div2div2div2div2div2div2
</div>
<div class="div6">
div3
</div>
</body>
使用inline-block类型来显示水平菜单
<head>
<style>
ul.ul1 li{
float: left;
list-style: none;
padding:5px 20px;
text-align: center;
border-right: 1px solid darkviolet;
width: 200px;
color: wheat;
background-color: mediumvioletred;
}
ul.ul2 li{
list-style: none;
display: inline-block;
padding:5px 20px;
text-align: center;
border-right: 1px solid darkviolet;
width: 200px;
color: wheat;
background-color: mediumvioletred;
}
</style>
</head>
<body>
<h1>使用inline-block类型来显示水平菜单-inline-block</h1>
<ul class="ul2">
<li>A</li><li>B</li><li>C</li><li>D</li>
</ul>
</body>
使用inline-block类型来显示水平菜单
<head>
<style>
ul.ul1 li{
float: left;
list-style: none;
padding:5px 20px;
text-align: center;
border-right: 1px solid darkviolet;
width: 200px;
color: wheat;
background-color: mediumvioletred;
}
ul.ul2 li{
list-style: none;
display: inline-block;
padding:5px 20px;
text-align: center;
border-right: 1px solid darkviolet;
width: 200px;
color: wheat;
background-color: mediumvioletred;
}
</style>
</head>
<body>
<h1>使用inline-block类型来显示水平菜单-inline-block</h1>
<ul class="ul2">
<li>A</li><li>B</li><li>C</li><li>D</li>
</ul>
</body>
<head>
<style>
table{
display: inline-table;
vertical-align: bottom;
border: 2px solid blueviolet;
width: 400px;
height: 200px;
color: darkviolet;
}
td{
border: 2px solid violet;
}
</style>
</head>
<body>
<h1>使用inline-table类型-一个表格前后都有文字将其环绕</h1>
巴拉巴拉
<table cellspacing="0" cellpadding="0">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
巴拉巴拉
</body>
list-item类型
可以将多个元素作为列表显示,同时在元素的开头加上列表的标记。
run-in类型和compact类型
none类型
当元素被指定none后,该元素不会显示
2.显示不下的内容
overflow属性:指定对盒子中容纳不下的内容的显示办法
overflow-x属性与overflow-y属性
textoverflow:在盒子的末尾显示代表省略符号的‘…’,但是该属性只在内容在水平位置上超出时显示。
3.盒子阴影
box-shadow:让盒在显示的时候产生阴影的效果
对盒内子元素设置阴影
对一个文字或第一行设置阴影:通过first-line或者first-letter
对表格和对单元格使用阴影
4.box-sizing宽高计算
指定针对元素的宽度和高度的计算方法
(content)border-box:属性值表示元素的宽高度(不)包括内补白区域及边框的宽度高度
<head>
<style>
div.a,div.b{
width: 300px;
padding: 30px;
margin: 20px auto;
border: 30px solid darkviolet;
background-color: violet;
}
div.a{
box-sizing: border-box;
}
div.b{
box-sizing: content-box;
}
</style>
</head>
<body>
<h2>box-sizing:content&border-box</h2>
<div class="ab">
<div class="a">
box-sizing:border-box代表宽度和高度包含内补白宽度高度,即虽然有padding和border,最终仍然为300px
</div>
<div class="b">
box-sizing:content-box:代表不包含宽高度内补白区域,即最后为300px+30px+30px
</div>
</div>
</body>
2.4.边框和背景样式
1.新增的背景属性
background-clip:指定背景的显示范围
border-box:从边框开始
padding-box:从内边框开始
content-box:从内容开始
background-orgin:指定绘制背景图像的起点
可以指定绘制时的起始位置,默认为padding,可以为border或者content左上角开始绘制。
background-size:指定背景中图像的尺寸
auto
length
percentage:以父元素的百分比设置背景图像的宽高度。
cover:全覆盖。
contain :与cover相反,主要将背景图片缩小,来适合布满整个容器。
2.显示多个背景属性: 第一个图像在最上面
3.圆角边框:border-radius
指定两个半径:左上右下+左下右上
当不显示边框的时候,浏览器会把四个角绘制成圆角
修改边框种类。
绘制四个不同半径的边框
4.图像边框:border-image
可以让元素的长度或宽度处于随时变化时,变化状态的边框统一使用一个图像文件来进行绘制。
2.5.CSS3变形功能
1.利用transform实现文字或图像的旋转,缩放,倾斜移动这四种类型的变形处理。
旋转:totate(角度)
缩放:scale(值):0.5即为缩放到50%
倾斜:skew(值),值为角度
移动:translate(值)
对一个元素使用多个方法
transform:方法1 方法2 方法 3 方法4
改变元素基点
transform-origin:
2.6.CSS3的动功能
1.transition功能:支持从一个属性值平滑到另外一个属性值
允许CSS属性值在一定的时间内平滑的过度,这种效果可以在单击,获得焦点,被点击或对元素任何改变中触发,并圆滑的以动画效果改变CSS属性值。
(1)执行变换的属性:transition-property:过渡即将开始
none:没有属性会获得过渡效果
all:所以属性会获得过渡效果
property:定义应用过渡效果的CSS属性名称列表,以逗号分隔
(2)变换延续时间:transition-duration:规定完成过渡需要花费的时间,默认值零没有效果。
(3)在延续时间段,变换速率的变化:transition-timing-function。
(4)变换延迟时间:transition-delay:指定一个动画开始执行的时间,也就是当改变元素属性值后多长时间开始执行过渡效果。
<head>
<meta charset="UTF-8">
<title>CSS3中的动画效果</title>
<style>
div.transition1{
width: 200px;
height: 200px;
background-color: blueviolet;
-webkit-transition:all 1s linear 1s;
}
</style>
</head>
<body>
<h2>transition</h2>
<div class="transition1"></div>
</body>
2.Animations功能:支持通过关键帧的指定来在页面上产生更复杂的动画现象。
<head>
<style>
div.animation{
width: 20px;
height: 20px;
background-color: #ef23ff;
}
/*关键帧的封装*/
@-webkit-keyframes myan{
0%{
background-color: violet;
width: 50px;
}
10%{
background-color: palevioletred;
width: 100px;
}
30%{
background-color: mediumvioletred;
width: 200px;
}
50%{
background-color: blueviolet;
width: 40px;
}
70%{
background-color: darkviolet;
width: 400px;
}
90%{
background-color: #7300a4;
width: 600px;
}
100%{
background-color: #4a0068;
width: 800px;
}
}
</style>
</head>
<body>
<h2>animation</h2>
<div class="animation"></div>
</body>
2.7.CSS3的分页
1.点击及鼠标悬停分页样式
2.鼠标悬停过渡效果:transition: background-color .9s;
3.圆角样式:border-radius
4.边框:border:2px solid darkviolet;
2.8.布局相关样式
1.多栏布局
column-count属性:将一个元素中的内容分成多栏进行显示,要将元素的宽度设置成多个栏目的总宽度
column-width属性:指定栏目的宽度来生成分栏
column-gap属性:指定栏目之间的距离
column-rule:栏目之间添加分隔线
2.盒布局: 多栏布局的栏目宽度必须相等,指定栏目的宽度的时候也只能统一指定,但是栏目的宽度不可能全部都一样,所以多栏布局比较适合在文字内容页面显示,比如新闻。并不适合整个网页编排时使用。而盒布局就相对比较随意一些,可以定义成不同的页面。
3.弹性盒子布局
(1)box-flex:使得盒子布局变成弹性布局:可以自适应窗口
(2)box-ordinal-group:改变元素的显示顺序
(3)box-orient:改变元素排列方向
horizontal:在水平行中从左向右排列子元素
vertical:从上向下垂直排列子元素
<style>
div.all{
display: -webkit-box;
/*-webkit-box-orient: vertical;窗口垂直现实与水平显示*/
}
.left{
width: 300px;
background-color: #ef23ff;
-webkit-box-ordinal-group:3;
}
.right{
width: 300px;
background-color: #ef23ff;
-webkit-box-ordinal-group: 2;
}
.center{
-webkit-box-flex:1;
background-color: #962fff;
-webkit-box-ordinal-group: 1;
}
</style>
(4)元素的高度宽度自适应:就是元素的高度和宽度可以根据排列的方向改变而改变。
(5)使用弹性布局来消除空白:方法就是给子div中加入一个box-flex属性。
<style>
.center1{
display: -webkit-box;/*盒模型显示*/
border: 5px solid darkviolet;
-webkit-box-orient: horizontal;/*水平显示*/
width: 600px;
height: 400px;
}
.d1{
background-color: #ff99e1;
-webkit-box-flex: 2;
}
.d2{
background-color: #962fff;
-webkit-box-flex: 3;
}
.d3{
background-color: #ef23ff;
-webkit-box-flex: 4;
}
.d1,.d2,.d3{
-webkit-box-sizing: border-box;
}
</style>
(6)对多个元素使用box-flex属性,让浏览器或者容器中的元素的总宽度或者总高度都等于浏览器或者容器高度。
(7)box-pack属性和box-align属性:指定水平方向与垂直方向的对齐方式(文字,图像,以及子元素的水平方向或是垂直方向上的对齐方式)
2.9.不同浏览器加载不同的CSS样式
Media Queries模块是CSS3中的一个和各种媒体相关的重要模块
原文链接:https://blog.csdn.net/qq_27348951/article/details/53378364
随着互联网+的深入发展,我们已经越来越感受到它的强大,HTML5也随着互联网火了半边天,微信小程序、虚拟现实已经走进了我们生活,这又引发了一次互联网发展高潮。现在互联网企业对高端HTML5开发工程师的缺口依然很大,因此很多人抓住这个机会选择学习HTML5开发。今天千锋南京HTML5培训小编将带大家一起看一看HTML5有哪些知识需要你了解?准备入门HTML5的新手需要了解的知识有哪些?
HTML5到底是什么?
一般广义而言的HTML5则包含了HTML、CSS和JavaScript三个部分,而不只是第一印象仅仅HTML部分而已,在CSS 3和JavaScript层面也有许多的创新,让整个网页从布局到处理都更加给力,新囊括的技术让之前实现相当困难且安全性危机重重的功能变为了现实,
HTML5好处-为什么要用HTML5
HML5在布局上更得体,记得以前的主流table过渡到主流div;今的布局对搜索引擎更加友好,比如<article>内总是会包含文章内容,而nav是导航信息;HTML5的移动手机支持也日趋完善,兼容移动端可是一个简单概念。虽然多网合一,兼容问题永远存在,布局适配也是一门技术活;另外在Pad等其他客户端也发挥着越来越重要的优势。
HTML5的技术组成:
离线功能
HTML5透过JavaScript提供了数种不同的离线储存功能,相对于传统的Cookie而言有更好的弹性以及架构,并且可以储存更多的内容。
WebStorage – 比Cookies更大、更有弹性的的储存
Web SQL Database – 本地端的SQL资料库
Indexed DB – Key-value的本地资料库
Application Cache – 将部分常用的网页内容cache起来
即时通讯
以往网站由于HTTP协定以及浏览器的设计,即时的互动性相当的受限,只能使用一些技巧来「模拟」即时的通讯效果,但HTML5提供了完善的即时通讯支援。
什么轮询、第三方的统统不要,自已来实现。
WebSocket – 即时的socket连线
Web Workers – 以往JavaScript都是single thread,透过Worker可以有多个运算
Notifications – 塬生的提示讯息,类似像OS X的Growl提示
文件以及硬件支持
不知道大家有没有发现,在Gmail等新的网页程式当中,已经可以透过拖拉的方式将档案作为邮件附件?这就是这部份HTML5档案的功能中的Drag’n Drop和File API。
Drag’n Drop – HTML元素的拖拉
File API – 读取使用者本机电脑的内容
Geolocation – 地理定位
Device orientation – 手持装置的方向
Speech input – 语音输入
语意化
语意化的网路是可以让电脑能够更加理解网页的内容,对于像是搜寻引擎的优化(SEO)或是推荐系统可以有很大的帮助。
New tags – 新的标籤,像是<header>、<section>等
Application tags – 也是新的标籤,像是<meter>、<progress>等
Microdata – 加入语意的资料让搜寻引擎等网站可以正确显示
Form type – <form>可以加入的type便多了,包含email和tel等属性,浏览器会协助进行资料格式的验证
多媒体
Audio、Video的标签支援以及Canvas的功能应该是大家对于HTML5最熟悉的部份了,也是许多人认为Flash会被取代的主要原因。
Audio video – 影片和音乐的塬生播放支援
Canvas – 2D的绘图功能支援
Canvas 3D – 3D的绘图功能支援
SVG – 向量图支援
CSS 3
CSS3支援了字体的嵌入、版面的排版,以及最令人印象深刻的动画功能。
Selector – 更有弹性的选择器
Webfonts – 嵌入式字体
Layout – 多样化的排版选择
Stlying radius gradient shadow – 圆角、渐层、阴影
Border background – 边框的背景支援
Transition – 元件的移动效果
Transform – 元件的变形效果
Animation – 将移动和变形加入动画支援
JavaScript
在比较JavaScript的基本面也新增了DOM的API、和浏览器上下页的纪录修改。
DOM API – 更方便的查询DOM元件
History API – 浏览器的上下页内容修改,方便AJAX可以保留浏览记录
现在就用HTML5
截至目前而言,主流的网页浏览器Firefox 5、Chrome 12和Safari 5都已经支援了许多的HTML5标準,而且目前最新版的IE 9也支援了许多HTML5标準。随着使用者陆续升级到新版的浏览器,开发者应该在现在就可以着手开发!兼容性问题会随着时间的推移而越来越少。但对于不得不照顾底版本用户的网站,网上也有大量的回退解决方案。
以上就是千锋南京HTML5培训小编今天给大家带来的新手入门HTML5需要了解的知识,希望本篇文章能够对你有所帮助。想了解更多HTML5相关资讯欢迎关注千锋南京官网,这里不仅有更多HTML5相关信息,还有专业的HTML5技术文章、教程视频。
TML5小坝:学习HTML5,除了我们要抛下足够的汗水之外,还需要有合适的方法。合理的方法能够事半功倍,而不合理的方法则事倍功半。在此,我们几个讲师结合我们的课程,总结了八种方法,与大家分享,希望各位学会学习。
前言:本来这些方法是在昨日上课时分享给HTML5-5班孩子的,在这里发出来,主要是为了和大家分享,也希望每个学习HTML5的人,包括以后班级的孩子,能够找到合理的方法。
方法1 整体到局部,骨架到血肉
在学习HTML和CSS时,会涉及到网页的搭建。学习这个知识时,我们采用的方法是“由外及内”,“由整体到部分”,“由全局到细节”。 学习东西,特别是在初识某个事物时,一定要从主干到枝叶,而不要陷入细节,纠结于其中。主干如同知识的一个主线,这种先找主干后添枝叶的学习方法能够让知识遗漏变成最少,也会比较容易建立起知识知识间的关系。
方法2 类比
在学习CSS引入方式这种知识点时,我们采用了另一种学习方法。辨析,或者也可以叫做类比。
这种方法主要针对于区分相似的两种或多种事物。如strong与em,块元素与行元素,同步与异步。
对于此类知识,应多多思考,抓取几种事物的不同点,结合去记忆。
方法3 记忆很重要
学习时会遇到一些知识点,如有哪些数据类型,有哪些标签元素。需要记忆的还是要记忆的。很多人在学习过程中觉得理解最重要,不需要记忆。这种想法是有问题的,如果连记都记不住,还谈什么理解?
方法4 聚沙成塔
在网站中,我们能够看到各种各样的效果,有些效果看上去很高大上,很炫美。然而,再炫美的效果也是由众多的知识点组合而成的。当我们对效果抽丝剥茧,就会发现,其实最初的它很简单。
一朵樱花并不起眼,但是当你从一条道路走过,道路两旁栽种着数百棵樱花树,纷纷扬扬的花瓣飘洒下来,让你仿佛置身于粉色的花雨之中。这就是所谓的聚沙成塔。有时,我们希望制作很漂亮的效果,这个时候,一定要懂得这个道理(JQ特效制作就是典型的例子)
PS:樱花图片来自于互联网
欢迎沟通交流~HTML5小坝
方法5 循序渐进
一口吃不成胖子,也不是有一顿饭没吃就可以减肥成功的。在学习过程中,会遇到一些“大型”的知识,这种知识比较难啃。遇到此类知识,不要想着如何一口吃掉它,而要一步一步来。动画框架的学习就是一个典型。
在循序渐进中,思路很重要,换句话说,我们知道一个知识点很“大”,也知道要一口一口的吃,一步步的消化,但是,如果我们弄不清楚先吃什么再吃什么,也很难把这个知识啃下来。
这时候需要“思路”,也就是“流程”,在学习知识中,重点是关注流程和思路,而具体的小知识点充当的是血肉(和我们提到的第一个方法就挂钩了,就是分清主干和枝叶)
方法6 知识的迁移
用已有知识辅助未知知识的学习,是很好的一种方法。通常这种方法应用于拥有相似特点的事物。例如:圆角边框与外边距、背景切割与背景原点、JS对象与JSON等
方法7 生活辅助学习
这种方法是讲师用的最多的。
利用生活中实际的事物去辅助抽象知识的学习,能够让我们更好更快的理解和吸收知识。
例如在讲解盒模型时我们利用了快递中的方鱼缸。在讲解AJAX时我们利用了信件邮寄。在讲解构造函数时,我们利用了毛坯房和装修房。在讲解引用类型变量的时候我们借助了钥匙和仓库的关系。前端学习裙前面是六11中间是四二八后面是一四2,把数字串在一起就可以了,每天都有免费学习网页制作的课程,只要你有一颗学习的心就行了。
找一种合适的例子,辅助自己理解,是很好的方法,但是一定要注意,例子要合理~
方法8 实践出真知
在学习一些知识过程中,有些孩纸不喜欢动手,而更多的是喜欢听或者喜欢背。这种思路明显是不好的。代码,是个需要动手的活儿,掌握代码靠的不仅仅是记忆,还需要尝试。尝试书写代码,发现现象,然后归纳总结,形成理论并记忆。
换句话说,理论来源于实践,高于实践(高于实践的原因在于有总结与归纳)。在学习过程中,不能仅仅采用背理论再实践这种学习方法,也要去经历实践到理论转化的这种方法。
*请认真填写需求信息,我们会在24小时内与您取得联系。