By
zhpooer
12月 22 2014
更新日期:1月 5 2015
入门
响应式, 可以适应不同尺寸的屏幕,
自动响应变化自己的外观的网站.使用html5和css3
HTML5
HTML5 由全球五大浏览器厂商共同指定
<!doctype html>
, 包含了以往所有版本的文档dtd功能
1
2
3
4
5
6
7
8
9
<!doctype html>
<html >
<head >
<meta charset ='utf-8' />
<meta name =”renderer” content =”webkit|ie-comp|ie-stand” >
</head >
<body >
</body >
</html >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
html {
-webkit-text-size-adjust : 100 % ;
-ms-text-size-adjust : 100 % ;
}
article ,aside , details , figcaption ,figure , footer , header , hgroup ,menu , nav , section {
display :block ;
}
img {
max-widthL : 100 % ;
height :auto ;
width :auto\9 ;
}
.video embed , .video object , .video iframe {
width : 100 % ;
height : auto ;
}
ie9+对html5支持, 检测浏览器支持html5. 任何浏览器对不能识别的标签,
都能显示里面的内容
1
<canvas > 您的浏览器版本过低, 请更新浏览器 </canvas >
结构标签
用来布局
<header> </header>
<nav></nav>
<section></section>
, 分区标签, 语义上大于 div
<aside></aside>
<article></article>
<footer></footer>
hgroup
定义比标题标记的组
figure
定义一组媒体内容及其标题
figcaption
定义figure元素的标题
h5新增的标签本质是div制作的, 最大的意义在于嵌套使用. 比如 header
, hgroup>h2
视频标签
早在html4, 或者 xhtml1.0 是没有处理视频的能力的, 只能通过某些插件来实现.
1
2
3
4
<video src ="" controls ="controls" > </video >
<video src ="" autoplay ="autoplay" > </video >
<video src ="" loop ="loop" > </video >
支持的格式, ogg, mpeg4, webm(w3c推荐格式), 但是不是所有浏览器都支持.
可以放两个视频来全部支持如 ogg
组合mp4
, webm
组合mp4
1
2
3
4
5
<video width="" height="" controls="controls" >
<source src="" type ="video/ogg" ></source >
<source src="" type ="video/mp4" ></source >
Your browser dont support this tag
</video>
1
2
3
4
5
6
video.play ();
video.pause ();
video.currentTime += 10 ;
video.playbackRate = 2 ;
1
<audio src ="" controls ="controls" autoplay loop > </audio >
其他标签
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<meter low ="15" value ="23" hight ="" min ="" max ="" > </meter >
<progress max ='100' value ='0' > </progress >
<input type ="text" list ="car" />
<datalist id ='car' >
<option > one </option >
<option > two </option >
<option > three</option >
</datalist >
<details >
<summary > 概要</summary >
详情内容
</details >
<input type ="email" />
<input type ="color" />
<input type ="range" min ="0" max ="100" />
<input type ="search" />
<script >
$().change(function () { })
</script >
CSS3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ul li :nth-of-type (1) {
border-radius : 10 px;
border-radius : 5 0 %;
border-radius : 10 px 10 px 10 px 10 px;
}
div {
box-shadow : 0 0 10 px #000 ;
box-shadow : 0 0 10 px #000 inset;
background : rgba(0 , 0 , 0 , 0.5 )
/*文字投影*/
text-shadow: 0 0 10 px #000 ;
}
section {
display : box;
display : -webkit-box;
}
article {-webkit-box-flex : 3 ; }
article {-webkit-box-flex : 5 ; }
选择器
:nth-child
, 表示过滤当前容器中的第几个
:nth-of-type
表示过滤当前容器中同类型的第几个, 相当于 eq()
:first-child
, :last-child
:not()
排除指定的元素
:empty
空元素
[key=value]
, 过滤拥有指定属性值的元素, 例如 input[type=button]
:before
:after
1
2
div :before { content : '你好' ; display : block ;}
div :after {content : '' ;}
浏览器私有前缀
IE: -ms-
Firefox: -moz-
Chrome, Safari: -webkit-
Opera: -0-
2D 转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
div {
transform : rotate(45 deg) ;
transform : scale(0.5 , 2 ) ;
transform : translate(100 px, 0 ) scale(2 , 2 ) ;
transform-origin : 0 , 10 px ;
transform-origin : 50 %, top ;
transform-origin : left, center ;
transform-origin : right, bottom ;
transform : rotateY(45 deg) ;
transform : rotateX(45 deg) ;
transform : rotate(45 deg) ;
}
动画
1
2
3
4
5
6
7
div {transition : width 1 s, height 2 s ;}
div :hover {width : 400 px ; height : 300 px ;}
div {transition : all 2 s ease 2 s ;}
linear
匀速度
ease
逐渐慢下来
ease-in
加速
ease-out
减速
ease-in-out
先加后减
渐变背景色
1
2
3
4
5
6
7
8
9
10
11
12
13
14
div {
background : linear-gradient(180 deg, red, green 30 %, blue) ;
background-size : cover ;
background-size : 100 % 100 % ;
background-size : contain ;
background-image :url() , url() ;
}
div {
background-size : 80 px 283 px ;
}
内减属性
排除 border和padding 对宽高的影响
1
box-sizing : border-box;
自定义动画
animation, 让指定的元素实现自动运行的动画
1
2
3
4
5
6
7
8
9
10
div {
-webkit-animation : sport 2 s ease-out 4 s infinite|n normal|alternate running|paused ;
}
div :hover {animation-play-state : paused ;}
@-webkit-keyframes sport {
%0{left :0 }
%100{left :500 }
}
跳转链接
通过跳转域名的方式来制作手机, 使用device.js
判断手记设备
1
2
window .location = '' ;
window .location.href = '' ;
图标字体
icomoon.io
iconfont.cn2
1
2
3
4
@font-face {}
div { font-family : ; }
构建3D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<style >
body {
perspective : 1000 px ;
transform : translate3d(100 %, 100 %, 100 %) ;
}
ul {
transform-style : preserve-3 d ;
width : 200 px ;height :200 px ;
border : 1 px dashed ;
position : relative ;
transition : all 4 s ;
}
ul :hover {
transform :rotateX(360 deg) rotateY(360 deg) ;
}
ul li {
width : 200 px ; height : 200 px ;
border : 1 px ; position : absolute ;
}
li :nth-of-type(1) { background : red ; transform : rotateY(90 deg) translateZ(100 px) ;}
li :nth-of-type(2) { background : green ; transform : rotateY(270 deg) translateZ(100 px) ;}
li :nth-of-type(3) { background : gold ; transform : rotateX(0 deg) translateZ(100 px) ;}
li :nth-of-type(4) { background : blue ; transform : rotateX(90 deg) translateZ(100 px) ;}
li :nth-of-type(5) { background : purple ; transform :rotateX(180 deg) translateZ(100 px) ;}
li :nth-of-type(6) { background : pink ; transform :rotateX(270 deg) translateZ(100 px) ;}
</style >
<ul >
<li > </li >
<li > </li >
<li > </li >
<li > </li >
<li > </li >
<li > </li >
</ul >
响应布局
响应式布局实现基本上是通过百分比来完成的, 必须了解设备的长 宽.
百分比
1
2
3
min-height : 300 px;
width : 70 %; min-width : 20 px;
box-sizing : border-box;
设备长宽
1
2
3
4
5
6
7
8
9
10
@media (max -width : 620 px) {}
@media (min -width :621 px) and (max -width : 980 px) {}
@media (min -width :981 px) {}
< link rel= "stylesheet" type = "text/css" href= "css/phone.css" media= "all" / >
< link rel= "stylesheet" type = "text/css" href= "css/phone.css" media= " screen and (max-width:620px)" / > 1
< link rel= "stylesheet" type = "text/css" href= "css/pad.css" media= "(min-width:621px) and (max-width:980px)" / >
< link rel= "stylesheet" type = "text/css" href= "css/pc.css" media= "(min-width:981px)" / >
pad和手机 正文文字一般都是 14 加粗.
1
2
3
4
body>*{min-width : 400px}
<meta name ="viewport"
content ="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" >
Phonegap
将制作的网页封装成手机app, 可以安装到手机里面
Swipe 手机滑动轮播图
rem and em
root em 就是以根 html
em
默认以父级大小
Jquery-mobile
需要导入CSS样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<div data-role ="page" >
<div data-role ="header" >
<a href ="#" data-icon ="arrow-l" > 后退</a >
<h1 > 我的手机网站</h1 >
<a href ="#" data-icon ="arrow-r" data-iconpos ="right" > 后退</a >
</div >
<div data-role ="content" >
<a href ="#page1" data-role ='button' > 订阅</a >
<a href ="out.html" rel ='external' > 订阅</a >
<a href ="out.html" data-role ='button' data-transition ='pop' > 订阅</a >
</div >
<div data-role ="footer"
data-role ="controlgroup"
data-type ="horizontal"
data-position ='fixed' >
<a href ="#" data-role ="button" > </a >
<a href ="#" data-role ="button" > </a >
<a href ="#" data-role ="button" > </a >
<a href ="#" data-role ="button" > </a >
</div >
</div >
<div data-role ="page" id =’page1‘ >
<div data-role ="header" >
<h1 > 我的手机网站</h1 >
</div >
<div data-role ="content" >
这里是第二部分内容
<select name ="''" id ="''" >
<option > 选择 </option >
</select >
</div >
<div data-role ="footer" data-position ='fixed' >
<h4 > 版权信息</h4 >
</div >
</div >
<a href ="#page2" data-rel ="dialog" > </a >
<div data-role ="page" id ="page2" >
<div data-role ="header" >
<h2 > 您确定要退出吗?</h2 >
</div >
<div data-role ="content" >
确定 返回
</div >
</div >
<div data-role ="page" id ="page2" >
<div data-role ="header" >
<h2 > 您确定要退出吗?</h2 >
</div >
<div data-role ="content" >
<a href ="#" data-role ="button" > 重启</a >
<a href ="#" > 静音</a >
<a href ="#" > </a >
</div >
</div >
<div dat-role ="content" >
<ul data-role ="listview"
data-inset ="true"
data-filter ="true"
data-filter-placeholder ="请输入名字" >
<li >
<a >
<img src ="" />
<h3 > 刘德华</h3 >
<p > 简介</p >
</a >
</li >
<li > <a > 张学友</a > </li >
<li > <a > </a > </li >
<li > <a > </a > </li >
</ul >
</div >
<div data-role ="content" >
<div class ="ui-grid-a" >
<div class ="ui-block-a" > </div >
<div class ="ui-block-b" > </div >
</div >
</div >