第一章 认识html
web语言
html(告诉浏览器所要显示的内容)
<html>#告诉浏览器内容是html
#浏览器页面的标题
<head> #告诉浏览器head开始
<title>Starbuzz Coffee</title>
</head>#告诉浏览器head结束
#浏览器显示的页面主体
<body>
<h1>Starbuzz Coffee Beverages</h1>#一级标题
<h2>House Blend,$1.49</h2> #二级标题
<p>A smooth, mild blend of coffe from Mexico,
Bolivia and Guatemala.</p>
</body>
</html>
css(告诉浏览器如何显示)
<html>
<head>
<title>Starbuzz Coffee's Misson</title>
<style type = "text/css"> #style元素定义界面样式
body{
background-color:#d2b48c; #设置背景色
margin-left:20%; #设置左右边距
margin-right:20%;
border:2px dotted black; #定义页面主体边框为虚线颜色为黑色
padding:10px 10px 10px 10px #在页面主体创建内边距
font-family:sans-serif; #定义文本使用的字体
}
</style>
</head>
<body>
<h1>Starbuzz Coffee's Missson</h1>
<p>To provide all the caffeine that you need to power your life</p>
<p>Just drink it.</p>
</body>
</html>
h1 -> h6 共6级标题 h1字体最大 h6字体最小
元素=开始标记+内容+结束标记
例如:是一个《h1》元素
第二章 深入了解超文本
href(hyper text reference)超文本引用,
“xxxx”是浏览器调用的web页面等等
链接文本是浏览器中高亮显示的文字或图片等
相对路径的概念:
父目录->子目录
如果你是lounge.html里的一个超文本指向about目录中的directions.html
<a href="about/directions.html">detailed directions</a>
子目录->父目录
如果你是elixir.html中的一个超文本指向lounge.html
那么<a href="../lounge.html">Back to the Lounge</a>
../ 返回本文档的上一级目录
第三章 创建网页:构建模块
元素列表
- <q>元素 效果为加上双引号,不同浏览器效果可能不同
- <a>元素 创建超文本
- <em>元素 使用不同的方式展示文本
- <blockquote>元素 长引用时使用,自成一段
- <li>元素 成为列表中的一个列表项
- <ol>元素 包围<li>元素后构成一个有序列表
- <ul>元素 包围<li>元素后构成一个无序列表
- <br>元素 在需要换行的地方插入一个换行符
- <code>元素 显示计算机程序代码
- <time>元素 告诉浏览器这个内容是时间
- <strong>元素 标记你希望强调的文本
- <pre>元素 使浏览器按你输入的方式显示文本
<img>元素 显示图片
void(空元素) <br>元素 <img>元素 ,这类元素使用时只用<br> 不需要<br>xxxx</br>这样来调用。
- 普通元素 <p>元素<h1>元素<q>元素,使用时一定要<p>xxxx</p>来调用。
EXAMPLE
<body>
<h1><strong>Welcome to the test web</strong></h1>
<time>2017/5/13</time>
<p>
<ol>
<li>1</li>
<li>2</li>
<li>3</li>
</ol>
</p>
<blockquote>
a<br>
b<br>
c<br>
</blockquote>
<h2>Directions</h2>
<p>
<q>boying747</q>
</p>
</body>
</html>
第四章
将你的网站放在网上
认识绝对路径
URL(uniform resource locators)
通用定位符
浏览器通过url可以访问全球所有的公开网站(一般情况下)
URL的构成http://www.baidu.com/index.html
‘http://’获取信息使用的协议
‘baidu.com’域名,具有唯一性,由专门的部门进行管理
‘www.baidu.com’网站名
‘/index.html’从根目录到文件的绝对路径
绝对路径必须从根目录开始 也就是 ‘/’
一些属性的作用
title属性
<a href="xxxx"
title="搜索网站">百度</a>
效果为鼠标悬浮在百度上时会出项“搜索网站”的字样
id属性
首先创建一个标记点
比如在根目录下有一个“index.html”其中有一行是
<hi id="one">The One</h1>
然后在另一个叫m.html文件中
<a href="xxxx/index.html#one">yyy</a>
xxx 为index对m的相对路径
效果为点击yyy后页面跳转至h1元素处
target属性
<a target="_blank"
href="xxxx">zzzz</a>
效果为点击zzzz后,浏览器在新窗口中打开“xxxx”
连接到网络中
将你网站写好后,选择一家托管公司(Amazon,阿里云等)将你文件传输到托管公司创建的根文件夹中,从托管公司处选择你的网站名。这样所有人都可你通过浏览器访问你的网站了。
第五章
给网页添加图像
<img>元素
src属性 指定web页面显示图像文件的位置
alt属性 当图案未成功显示时,显示alt属性的文本。
width属性 指定浏览器在页面显示图像的宽
heigh属性 指定浏览器在页面显示图像的高
EXAMPLE:
<img src="https://img-blog.csdn.net/20170513144302930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMzg1ODkyMzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"
alt="图片不见了"
weidth="48"
height="100">
</p>
常见图像格式
JPEG:有损压缩,体积小,不支持动画,不支持透明度
适用于照片等
PNG:无损压缩,体积大,不支持动画,支持透明度
适用于位图和logo
GIF:无损压缩,体积小,支持动画,支持透明度
适用于动图
第六章
严格的html规则
W3C(万维网协会)规定html的标准
html5是最新的标准
html标准现在是一个动态标准
会随着时间更新,增加新的特性
doctype标记
放在html文件的最上面告诉浏览器你的文档类型
meta标记
指定字符编码
严格嵌套
不能把<a>元素嵌在<a>元素中
EXAMPLE:
<!doctype html>
<html>
<head>
#meta标记在title元素之前
<meta charest="utf-8">
<title>Starbuzz Coffee</title>
</head>
<body>
<h1>Starbuzz Coffee Beverages</h1>
<h2>House Blend,$1.49</h2>
<p>A smooth, mild blend of coffe from Mexico,
Bolivia and Guatemala.</p>
</body>
</html>
w3c的验证工具
http://validator.w3.org
帮助你编写出更规范的html页面
第七章
css入门
让你页面更好看
css规则
p{
background-color:red;
color:mraoon;
}
这就是一个css规则,p是一个选择器(selector)
组合选择
h1,h2{
xxxxxxx;
}
h1和h2会同时应用{ }里的规则
如果h2中要增加其他的规则,直接在后面增加h2的新规则
h1,h2{
xxxxxxx;
}
h2{
xx;
}
继承
当为body增加一个css规则时,body内的元素也引用这个规则
覆盖继承
当body的子类,比如h1元素增加和body相同的css规则时h1元素的css属性优先级更高
类属性
添加到类的方法
<p class="greentea">xxx</p>
类名:greentea
对类应用css规则
p.greentea{
xxxxx;
}
对所有greentea类中的 p(段落)应用{xxx}规则
.greentea{
xxxxxx;
}
对所有greentea类的成员应用{xxx}规则
类的多重添加
<p class="greentea redtea yellowtea">xxx</p>
当出现以下情况会p会应用那个规则呢?
p{
xxxx;
}
.greentea{
yyyy;
}
p.greentea{
dddd;
}
p.redtea{
cccc;
}
规则是越特定的规则优先级越高,当优先级相同时应用排列靠后的规则。所以p会应用p.redtea{ cccc; }
。
css的验证工具
http://jigsaw.w3.org/css-validator
css的一些属性
- top 控制元素顶部的位置
- color 设置文本元素字体颜色
- text-align 控制文本向左,向右,居中对齐
- letter-spacing 在字母之间设置间距
- background-color 控制元素的背景颜色
- font-style 设置斜体文字
- font-weight 控制文本的粗细
- font-size 控制文本文字的大小
- font-family 控制文本文字的字体
- border 在元素周围加边框
- left 指定一个元素左边所在位置
- list-style 改变列表中列表项的外观
- padding 控制内边距
- line-height 设置文本元素的行间距
- background-image 在元素后面放一个图像
CSS打包
将css规则写入一个名为 xxx.css的文件,当html调用时
<html>
<head>
<title>Starbuzz Coffee</title>
<link type="text/css" rel="stylesheet"
href="xxx.css>"
</head>
<body>
.....
</body>
</html>
link元素取代了style元素,创建了一个外部链接,链接了css规则。
第八章
增加字体和颜色样式
web字体调用
@font-face规则
<html>
<head>
<title>Starbuzz Coffee</title>
</head>
@font-face{
font-family:"xxxxx";
src:url("一个网络字体的绝对路径)
}
<body>
.............
</body>
</html>
之后就使用普通的调用方法,调用你所起的xxxx名字体。
@import 导入其他的css文件
@media 为手机等设备创建css规则
css中的单位表示方法
- px 像素
- em 相对度量单位
- 关键字
- 百分比
body{
font-size:14px;
}
h1{
font-size:1.2em
}
此时h1的大小为14*1.2=17px
body{
font-size:14px;
}
h1{
font-size:150%
}
h1的大小为14*1.5px
web颜色
rgb色
- 百分比表示
- 数字表示
16进制数表示
第九章
盒模型
使用多个样式表
link元素链接多个css样式表,当样式表的css相互之间有冲突时,在下面link链接的样式表优先级高。
media属性
1.放在link元素中为特定的设备应用样式表
<link href="ccccc" rel="stylesheet" media="screen and (max-device-width:480px)">
此样式表会应用于有屏幕且宽度小于480的设备
2.直接应用css规则中
@media screen and (max-device-width:480px){
h1{
xxxx;
}
....
}
id选择器
首先创建id<h1 id=”footer”>
然后
#footer{
xxxx;
}
就可以对h1单独的设置css规则
第十章
高级web建设
div元素
div元素将逻辑区,也就是页面上彼此相关的一组元素包围起来。
<div id="cats">
<h1>猫</h1>
<p>
猫的xxxxxx.....
</p>
</div>
这样就可将它们视为一个整体,应用css规则。
应用方法:
#cats{
background-image:url(xxxx)
}
span元素
创建内联字符与元素的逻辑分组
用法与div元素相同
伪类
当我们点击a元素后,a元素的颜色发生了改变。这种变化的状态一共有5种。它的优先级按下表排列。
- a:link 链接未访问
- a:visited 链接已访问
- a:hover 鼠标悬停
- focus 使用TAB键轮流跳转页面链接的状态
- active 第一次单击后就处于这个状态
伪类的使用方法
#cats a:link{
xxxxxxx;
}
这个css规则会应用在所有id 为cats的未访问的a元素
层叠
浏览器调用css的规则
第一层级 作者的css
第二层级 读者的css
第三层级 浏览器默认的css
例如当浏览器对html里的一个h1元素匹配css规则
- 拿到3个层级的css规则
- 找到所有匹配h1元素的css规则 font-size属性
- 按层级排序
- 按特定性原则进行排序
- 对于冲突的规则,按照它们各自在样式表中出现的顺序进行排序
应用最优先的css规则
计算特定性的方法
000
一个三位数,如果选择器包含id在百位上加一分。如果包含类或伪类在十位上加一分。如果包含元素名在个位上加一分。
总分越高特定性越强。
第十一章
摆放元素
流(flow)的概念
浏览器读取html,根据顺序摆放页面。
例如:
<html>
<head>
<h1>.....</h1>
</head>
<body>
<p>.......</p>
<h2>......</h2>
</body>
</html>
摆放顺序为
这样子。
其中块元素,浏览器会自动增加换行符。俩个块元素上下排列是它们的距离为俩个块元素中大的外边距。
而内联元素则会水平排列起来。俩个内联元素左右排列时它们之间得距离是俩个外边距之和。
几种布局方式
流体布局(liquid layouts)
默认的布局形式。主要由float属性确定。
冻结布局(frozen layouts)
通过设定一个包含body元素的div元素,固定页面布局,使得布局不随着浏览器的缩放而变化。
凝胶布局
与冻结布局基本相同,但调整div的左右边距为auto,使得布局一直保持在中间。
css表格显示
将页面以表格的布局划分,每个格子必须放置块元素。
使用方法
- 修改html
<div id="tableContainer"> #整个表格
<div id="tabRow"> #表格的行
<div id="main"> #表格的列
.....
</div>
....
</div>
</div>
2.增加css
#行与列
div#tableContainer{
display:table;
}
#行
div#tableRow{
display:table-row;
}
#列
#main{
display:table-cell
}
几种定位方法
- 绝对定位:会浮在页面之上,位置由提供的参数决定
- 固定定位:会固定在浏览器窗口的某个位置不动,位置由提供的参数决定
- 相对定位:会以某个元素为参照锚定位置,位置由提供的参数决定
(3种定位方式都由 position属性规定)
第十二章
html5标记
html5的概念
将常用的一些div结构独立出来赋予特有的名称。还增加了一些具有新功能的元素。
html5元素
<aside> 用于侧边栏
<mark> 突显文字
<progress>显示任务完成度
<footer> 页脚
<section>定义区块
<header>页眉
<meter>显示某个范围的度量
<video>为网页加入视频
<nav>导航栏
<audio>提供声音
<article>大块文字,如新闻等
<time>提供时间
<canvas>显示由js绘制的画面与动画
<figure>定义代码,图标,照片等为独立内容
<nav>详述
1.首先创建一组链接<a>xxxxx</a>……
2.把他们变成无序列表
3.插入html页眉之下
4.把它们包含在<nav>元素中
<video>详述
<video controls autoplay width="512" height="288"
src="xxxxxx"> </video>
可以看到video的使用方法与<img>元素类似。
video属性
- poster 未播放是提供封面
- autoplay 自动播放
- loop 循环播放
- src 播放文件地址
- preload 细致的控制视频加载方式
- width 设置播放窗口的宽
- height 设置播放窗口的高
controls 提供播放控制控件
为不同的浏览器提供适配的视屏格式
safari->mp4
chrome->webm
Firefox/opera->ogv
具体做法
<video xxxx>
<source src="yyyyy">
<sorce .....>
....
<p>sorry,your browser doesn't support the video
element</p>
</video>
<source src="cccc" type='video/ogg; codes="theora, vorbis"'>
type提供格式和视屏编码信息
第十三章
建立表格
table 元素详述
如何使用
<body>
<table>
<tr>
<th>xxxx</th>
....
</tr>
<tr>
<td>xxxxx</td>
<tr>
...
</tr>
</table>
</body>
格式表示
表格美化
border-spacing属性:设置边框间距
border-collapse:折叠边框
当table{boder-collapse:collapse;}
时单元格之间只有一条线。
表格跨行/跨列
rowspan跨行
<td rowspan="2">xxx</td>
效果为
colspan跨列
代码类似跨行但要删掉多余的列单元格
嵌套表格
在单元格内嵌套table元素就可
第十四章
实现交互
html表单
< from>元素
<from action="脚本地址" method="POST">
<p>
姓名:<input type="text" name="fullname" value="">
电话:<input type="tel" >
<input type="submit" >
</p>
</from>
在脚本地址中的脚本将收到输入的值,并进行反馈。
可放在表单中的基本元素
单选钮:<input type="radio" name="xxx" value="yyy">
多选钮:type=”checkbox”
输入数字:type=”number” min=”0” max=”10”
输入颜色:type=”color”
输入日期:type=”date”
滑动条输入数字:<input type="range" min="0" max="20" step="5">
email输入:<input type="email">
电话输入:<input type="tel">
url输入:<input type="url">
密码输入:<input type="password" name="xxx" >
文件输入:<input type="file" name="doc" >
文本区输入:<textarea name="xxx" rows="10" cols="48"></textarea>
选择单选菜单:
<select name="yyyy">
<option value="cccc">ccccazy</option>
......
</select>
选择多选菜单:
<select name="yyyy" multiple>
<option value="cccc">ccccazy</option>
......
</select>
label元素
增加标签帮助理解
<label for="shop">红包</label>
<input type="radio" id="shop" name="shop1" >
....
单选钮旁边的字便是一个标签
fieldset和legend元素
给一组选项提供一个标签
<fieldset>
<legend>选择口味</legend>
<input type="checkbox" name="123" value="salt">
......
</fieldset>
俩个特别的属性
placeholder:为所有输入提供一个提示
required: 指示一个输入是不是必要的
实践所学
url:正在完善中
计划蓝图