Html相关知识点

web 基础的课程

html

css

javascript--js

后续

服务器端技术

jquery.ajax

静态页面(客户端技术)

html:页面的内容用适当的元素显示

CSS:设置页面元素的外观/样式

Js:页面元素添加动态的显示效果

开发环境:记事本,文本编辑器

运行环境: 浏览器

动态页面,服务器端技术:提交

JSP

PHP

ASP.NET

html课程

1/什么是html

hypertext markup language超(超级链接)文本标记语言,编写网页,后缀为.html/.htm的文件,用浏览器解释运行

   解释:如果错误,试图解释,带来不可预料的结果

注意拼写正确

2 html的基础语法:用一对尖括号表示页面内容

元素:<标记名称>

有些是成对出现

有些是单标记

最早版本:有些标记可以没有结束<br>

最新版本:要求必须有结束<br/>

属性:<标记名称 属性名称="值">

注释:<!--注释-->

 

<a href="a.html">click me</a>

<p1>xian</p1>

<table></table>

 

3 构建一个html 文件

保证页面都能正常显示,书写标准规范的代码

标准格式(掌握):

版本信息(了解)

<html>

<head>

包含整个文档相关

</head>

<body>

显示的内容

</body>

</html>

 

4 head中:整个文档的定义

title:文档的标题

meta:元数据--单标记

定期刷新:例如留言论坛

<meta http-equiv="refresh" content="5">--旧

<meta http-equiv="" content="" />--新

文档的编码定义

<meta http-equiv="content-type" content="text/html;charset=utf-8">

link:引入外部资源,如样式等

style:定义样式

script:定义脚本代码

5 body:显示的页面的主体内容

文本标记

图像和超级链接

表格

表单

列表

框架

 

6 关于浏览器:IE/Firefox/Chrome/Safari

 

7 文本标记:文本默认显示

各级标题:<h1>-<h6>

段落:<p>段落文本</p>---行间距较大

换行:<br>--单标记,回车

练习2:实验文本标记的使用,区别

分区/组元素:div/span

span:同一行元素中的分组,不影响其他元素的布局

div:多行元素的分组,分组后,前后换行

练习3:实验span和div的使用,区别

aaa<span>aaaa</span>aaaaaaa

bbb<div>bbbb</div>bbbbbbb

 

<div>

<p>段落1</p>

<p>段落2</p>

</div>

<p>段落3</p>

 

8.超级链接a:点击的文本/去往的url

href属性用于指定路径:相对/绝对

<a href="http://www.tarena.com.cn">click me</a>

<a href="images/other.html">click me</a>

target属性:指定新页面打开的方式

_self

_blank

<a href="http://bbs.baidu.com.cn" target="_blank">click me</a>

 

name属性:定义锚点--页面的不同的部分之间的跳转

1.使用a元素带有name属性定义一个锚点---目标位置

2.使用a元素带有href属性定义点击完去往某个位置---#锚点的名称

<!--使用a元素定义锚点-->

<a name="Top"></a>

<a href="#Top">To Top</a>

练习4:实验超级链接和锚点的使用

9.图像

添加一个图像:img元素--单标记

<img src="" width="" height="">

 

为整幅图像添加链接

<a><img></a>

为一个图像添加多个链接

<map name="MyMap">

<area shape="rect" coords="x1,y1,x2,y2" href="">--单标记

<area shape="circle" coords="x,y,r" href="">

<area shape="poly" coords="x1,y1,x2,y2,x3,y3,....">

</map>

 

<img src="cat.jpg" width="200" height="200" usemap="#MyMap">

练习5:一副图像多个链接

 

 

 

10.表格

最初的目的用于显示结构化的数据(网格),后期用于实现页面的布局

基本结构:table/tr/td

<table>

<tr>

<td></td>

<td></td>

</tr>

<tr>

<td></td>

<td></td>

</tr>

</table>

常用属性:

 table元素

:border/width/height/cellpadding(内边距)/cellspacing(边框之间的距离)

 

td元素

:width/height/align(left/right/center)/valign(top/middle/bottom)

 

表格的完整结构

caption:为表格定义标题,出现在table标记里,作为第一个子元素存在

行分组:thead/tbody/tfoot

 

练习6:定义一个2X2的表格,实验常用属性

 

不规则表格:td的属性

rowspan

colspan

 

练习7:定义两个不规则的表格

 

表格的嵌套

table元素只能嵌套在td里

属性

练习8:表格的嵌套

 

11 表单:收集用户录入(选择)的数据,提交给服务器

form元素:承载页面的控件,以表单为单位,将当前表单中的数据提交给服务器

常用属性:action method

<form action="login.jsp" method="post">

</form>

   form中可以包含控件:

input元素:单标记,根据type属性的不同取值定义不同类型的输入框

type属性的取值:

text:文本框

password:密码框

checkbox:多选/核选框

radio:单选框

按钮相关

submit:提交型

reset:重置,恢复到初始值

button:普通按钮,依靠onclick

另外两种

file:文件

hidden:隐藏域,常用于记载那些不需要被用户看见却需要提交的关键信息

name属性

对于checkbox和radio而言,用于实现分组

value 属性

对于文本框和密码框:设置初始文本

对于单选和多选框:设置关键数据,往往是id的数据

对于按钮类型:定义按钮上的文本

 

checked属性:针对于单选和多选框

 

非input元素

textarea元素:多行文本框

rows/cols属性

select元素:下拉框/列表框

size属性:默认为1,下拉框;设置为其他值,列表框

包含option元素:代表每一个选项

fieldset:输入域分组,结合legend元素定义组标题

legend:出现在fieldset里,作为第一个子元素

 

12 列表

有序列表:ol

无序列表:ul

列表项:li

王 wangcm@tarena.com.cn

13 框架

iframe:浮动框架,在一个html页面上引入(嵌入)另一个html页面,常用于实现广告页面的效果

<iframe src=""></iframe>

 

14 课后练习

tts的练习

不规则表格的练习

CSS的课程

1/什么是CSS

使用统一的方式定义页面的外观,实现页面数据和显示的分离

 

2/解决的问题:

各个元素关于样式定义的属性不统一

没有实现数据和表现的分离,可维护度差

 

3/定义CSS

CSS的基本语法:将多对样式的声明(样式名称:值)用分号隔开

font-size:20pt;color:red;--统一定义的问题

选择器{样式声明}--分离

 

4/使用css的方式:

内联方式:将css的样式定义写在元素的style属性中,没有实现分离,难以重用和维护

内部样式表:将css的样式定义写在 head 元素中的 style 元素中,样式定义必须有选择器---分离不够彻底,只能当前页面重用

外部样式表:将样式定义在单独的 .css 的文件里,使用它时,页面的head里使用link元素(href/type/rel)引入

 

5/三种方式的优先级----就近原则

可以共用,建议使用外部样式表

内联>内部/外部(取决于位置)

位置:相同的级别下,重复定义,以最后一次定义的优先

 

练习1:创建一个html页面,实验内联方式/内部样式表/外部样式表,控制页面的外观

 

 

6/选择器

元素选择器:以html中元素的名称作为选择器,如h1 {color:red;}

使用方便,对于同一种元素实现定义;不能解决跨元素的统一定义,不能解决同一种元素里的细分

类选择器:

定义  .className{}

使用 <元素 class="className"

 

分类选择器:同一种元素里的细分

定义 元素名.className{}

使用 <元素名 class="className"

 

元素id选择器:专属于某个元素使用

定义 #名称 {}

使用 <元素 id="名称"

 

派生选择器:根据元素的层次位置定义样式,常用于对于一堆相同的元素实现统一定义

定义   选择器1 选择器2 选择器3{}

使用  

 

群组选择器:为多个选择器定义相同的外观部分

定义   选择器1,选择器2,选择器3{}

使用

a,h1,input.textbox,#pageTitle {}

 

伪类:根据不同的状态定义不同的外观,常用于实现超级链接的效果,hover状态除外,所有元素都可用

a:link---没有点击过的

a:active--激活,按下

a:hover--鼠标悬停

a:visited--访问过的

 

 

练习2:创建一个html页面,外部样式表文件,使用类选择器

<input type="text">

<input type="button">

 

input {}

7/各种样式属性--声明样式

尺寸的单位:pt(磅)/px(像素)  cm mm in %

颜色的单位:单词 #FFFFFF  #FFF

尺寸的样式:width height

 

8/边框的属性:

简写方式:宽度 线型 颜色

border:1px solid red;---4个

border-top:1px dashed blue

border-bottom

border-right

border-left

单一定义

border-width:1px;

border-style:solid;

border-color:red;

border-top-width:2px;

 

9/display属性:设置元素的显示方式,常和js一起,修改元素是否显示

none:元素不可见,且不占用页面的位置--常用于设计那些页面刚初始化时不可见的元素

inline

block

 

行内元素:可以和其他元素位于同一行,如span/input/a;高度和宽度设置无效

块级元素:独占一行,如div/p/table/h1

 

10/position 属性:默认用流模式显示页面,使用该属性改变布局的方式(多层)

static

absolute:绝对定位,相对于父元素

relative:相对定位,相对于原有的位置

 

11/偏移属性:设置元素左上角的坐标位置

left:50px;

top:20px;

bottom:

right:

 

12/堆叠顺序:层的顺序

z-index:

 

13/文本属性:定义文本的字体相关的样式

color

font-size

font-weight:normal/bold;

font-style:italic;

 

14/背景属性

background-color:red;

background-image:url(a.jpg);

background-repeat:repeat/no-repeat/repeat-x/repeat-y;

background-position:left top;--背景图像的偏移,小背景图像的居中;截取背景图像中的一部分

background-attachment:scroll(默认设置)/fixed(水印);---背景图像的付着方式,常用于实现类似于水印的效果

 

15 边距属性

box模型

padding:内边距

padding:10px;---4个方向,left和top优先(小);撑开(大)

padding-top/left/right/bottom:10px;

margin:外边距,定义相同

 

16 浮动属性:脱离原有的流模式的布局,左边框向左浮动,直到遇到一个边框停靠---将多个块级元素位于同一行

float:left/right;

clear:left/right/both;--清除周围浮动元素的影响,因为某个元素设置了浮动属性后,可能会对后续的元素带来影响

 

17 列表的样式

list-style-type:none;

list-style-image:;

day03

html构建页面的结构

CSS 美化页面

js 添加动态的效果

jsp 服务器端的交互

 

web--浏览器--netscape---javascript

Microsoft---JScript

JS

 

1/什么是 JavaScript:一种基于对象和事件驱动的脚本语言,由浏览器软件解释运行,常用于为页面添加一些客户端的动态效果,嵌入到网页

 

2/语言的特征

内置好了大量对象,数据的简单封装

 

3/哪些现象用js实现

验证数据录入的格式

动态效果

浏览器的交互

 

4/包含的内容

基础语法和常用内置对象

DOM

BOM--browser object model

实现数据的封装

5/如何书写脚本代码

直接定义:οnclick="alert();"

script代码块:

<head>

<script>

在元素的事件中调用

js文件

<input type="button" value="第二个按钮" οnclick="SecondMethod();">

6/基础语法--大小写敏感

标识符:字母/数字/下划线/$符号组成,不能以数字开头

语句:以分号结束

注释:// /**/

变量:     var s1 = "mary";

var n1 = 123;

运算符:>> << ++ --  ?:

== 数值,内容

===严格相等  内容和类型

控制语句

if/else  switch/case

for   while

错误控制台

 

7 数据类型

js是一种松散类型的语言:底层的数据存储格式一样的,代码编写过程,关心数据类型

内置数据类型

String/Number/Boolean/null/undefined

复杂数据类型

Object(Array/Math/Date/Regex..)

 

8/ 内置数据类型

声明变量的时候,不能确认数据类型;以赋值为准

string:文本字符串

number:数值,不区分整数和小数

bool:true/false----1/0

 

9/ 数据类型之间的转换

隐式

string + number---string

number + bool---number

string + bool---string

bool + bool ---number

显式 (使用一些转换方法)

转换为数值类型:parseInt/parseFloat---如果有数字,转换;NaN

转换为字符串:toString

var n = 133;

n.toString().length

 

判断string是否可以转换为数值

isNaN()---is not a number

 

110 常用内置对象的用法

js提供了一些常用的对象,利用它们的成员实现功能

String/Array/Math/Date/Error/Regex/...

 

11 string对象:表示字符串

创建:  var s = "content";

        var s = new String("content");

特殊字符:特殊的字符按照字符本身的意义显示---转义符

\' \" \n \\

汉字:

s.length---长度

s.substring(start,end)--子字符串,end是结束位置的下一个

s.charAt(index)

s.indexOf("子字符")--第一次出现的位置>=0

s.lastIndexOf

s.toUpperCase/toLowerCase

s.split("拆分用的字符")

 

s.search("子字符"/正则表达式)---index

s.replace("子字符"/正则表达式,newstring)--result

s.match()---匹配的数组结果

 

正则表达式:结合string对象的方法实现对于字符串的操作

/表达式/匹配标识符(g/i)

 

12 数组对象

创建:可以没有长度

var a = new Array();

赋值:

a[0] = "mary";

a[1] = 123;

a[2] = true;

简写方式:

var a = ["mary",123,true];

属性

length

方法

toString()---1,2,3

join(";")---10;20;30

array1.concat(array2)--两个数组加

array1.slice(start,end)--从数组中截取一部分,得到一个小数组

 

reverse--翻转

sort--排序,默认按照字符串的大小比较

sort(排序的function对象)--自定义的排序规则

 

13 Math对象:提供数学计算用的常量和方法

常量:Math.PI

方法:max/min/round/pow(x,y)/ceil/floor/random--小数(0=< < 1)

1到10之间的整数(包含下限,不包含上限)

random() * 10---0=< 小数 < 10--floor---0--9

3到15之间的

floor( random() * 12) + 3

 

14 Date对象:获取或者操作时间和日期...

 

15 Function对象

声明方法 function Name(x,y,z){.. return ;}

调用方法 Name(12,34);

var r = Name(4,true);

局部变量和全局变量

方法的重载:没有方法的重载

方法重名,即使参数不同,依然以最后一次定义的为准

arguments:代表当前方法的所有参数值组成的数组,实现类似于重载的效果

 

function M()

{

...

}

 

课后练习:

模拟机选一注双色球彩票的号码

6个红球:6个1到33(都包含)之间的整数,不能重复(产生一个号码,判断是否出现过存入数组;否则继续)

1个蓝球:1个1到16(都包含)之间的整数

显示在界面时(将产生的结果使用代码写在页面):

机选一注

红球为:1,3,6,23,25,32--排序,逗号隔开

蓝球为:12

 

16 DOM--document object model

将html文档作为一个节点树的结构,查询和修改,实现页面的动态修改---document 代表整个文档树

常和正则表达式一起实现页面输入的验证

 

a)找到节点

找到单个节点:document.getElementById()

找到一类(多个)节点:document.getElementsByTagName("input")

根据元素的相对位置找节点:

xxx.childNodes/parentNode/firstChild/lastChild

 

b)关心节点的信息:将html标记对象化---将标记中的属性标记作为节点对象的属性;将标记中间的文本内容,作为innerHTML

单个标记属性,如value/href/src--class--className

集合属性,如style,将集合属性中的每个子内容作为style的子属性存在 obj.style.color

如果修改的样式属性过多,单个修改将代码难以维护,建议:将样式声明放到单独的CSS文件中,用样式类维护;js中,xx.className = "";

 

<input type="text" >  文本框.value

<a href="">click me</a>  a节点对象.innerHTML

       a节点对象.href = "";

<img>    图像对象.src = "";

 

.value

.innerHTML

c)修改节点的信息;关心节点的信息

常用的实例:

页签

二级菜单

实现页面的录入验证

正则表达式:实现对于文本的匹配,如\d{3}

 

在js环境下:

使用方式一:用在string对象的search/replace/match方法里,实现对于文本的操作

使用方式二:声明正则表达式对象,调用 test 方法,测试string 是否符合表达式的声明,bool

var reg = /^\d{3}$/;

reg.test(string)----bool

 

onxxxx = "return false;"---取消事件

 

d)添加新节点

   var o = document.createElement("input")--返回新创建的元素对象

   o.value = "dd";

   o.type = "text";

 

   XXX.appendChild(o);

<input value="dd" type="text">

 

   选择性的将新节点放入某个位置

   XXX.insertBefore(newNode,refNode)---XXX是refNode的父节点,操作完毕后,newNode作为XXX的子节点

XXX.insertBefore(a,XXX.firstChild)

XXX.insertBefore(a,XXX.childNodes[1]);

 

e)删除节点

XXX.removeChild(node)---node为XXX的子节点

//id="txt1"的节点

$("txt1").parentNode.removeChild($("txt1"));

-----是W3C的标准

-----第三方封装,常用的标准操作封装起来

-----表现为各种公开的js文件

-----有些常用的封装,浏览器默认支持,比如:

<select>

<option>

</select>

createElement("option");

o.innerHTML = "";

o.value = "";

改建为: var o = new Option("text","value");

---这种封装:HTML DOM

下拉框的联动效果

onchange---当元素的值发生变化时

selectedIndex---当前所选中项的索引

封装:selObj.options.length = 0;

      var o = new Option(text,value);

      selObj.options[i] = o;

 

表格的动态创建:js的客户端技术/服务器端技术

动态的为表格添加新行,行中有单元格

<table border="1" id="t1">

<tr>

<td>Name</td>

<td>Age</td>

</tr>

</table>

标准的dom操作

封装的HTML DOM的操作:

tableObj.rows

tableObj.insertRow(index)---返回新产生的 tr 对象(行对象)

tableObj.deleteRow(index)

rowObj.insertCell(index)---返回新产生的 td 对象(单元格对象)

.deleteCell(index)

tdObj.innerHTML = "";

 

+++js中的对象

function checkPwd(){

var name = $("txtPwd").value;

var reg = /^\d{6}$/;

if(reg.test(name))

$("pwdInfo").innerHTML = "";

else

$("pwdInfo").innerHTML = "密码格式错误";

//返回密码验证是否通过

return reg.test(name);

}

//验证所有的录入:返回true或者false

function checkData() {

//收集所有的验证结果并返给调用方,以决定是否取消事件

var result = checkName() && checkPwd();

return result;

}

<input type="submit" value="登录" οnclick="return checkData();">

++++

详细见day02

<script src="second.js" language="javascript"></script>

<select id="sel1" οnchange="ShowClasses();">

<option>--请选择--</option>

<option>java</option>

<option>php</option>

<option>.net</option>

</select>

 

 

*******

17 BOM--browser object model

将浏览器窗口中的各部分封装为对象,树形结构

   window

document  location  history  screen navigator event

 

18 window对象:代表整个窗口,其他作为它的子对象

document.createXXX

window.document.createXXX

 

a)window.open(url)--打开多个,返回新窗口对象

  window.open(url,name)

  window.open(url,name,config)

 

b)window.focus()

 

c)window.alert()

  window.confirm(text)--确认对话框,返回值 bool

  window.prompt()--文本输入的对话框

 

d)定时器的方法

周期性定时器

  window.setInterval(function,time)--time是ms单位,返回定时器对象

  window.clearInterval(定时器对象)

 

一次性定时器:实现类似于倒计时的效果

  window.setTimeout(function,time)--time是ms单位,返回定时器对象

  window.clearTimeout(定时器对象)

 

19 location 对象:浏览器窗口的地址栏

location.href = "url";---产生保留历史记录

location.replace(url);---不会保留页面的历史

相同点:旧窗口中显示新的url

location.reload();//F5

 

去往新的url:

<a href=""></a>---静态

window.open---打开新的窗口

页面的重定向(跳转):url替换旧的url

20 screen 对象

screen.width/height

screen.availWidth/availHeight

screen.color

 

21 navigator 对象:浏览器软件及其所在操作系统的信息

遍历该对象的所有属性

对象的属性本质是一个属性的数组,如

location.href

location["href"]

navigator.aa

navigator.bb

for(var p in navigator)

{

navigator[p]

}

 

22 event 对象

a) 事件的分类

键盘事件 onkeydown/onkeyup

鼠标事件:onmouseover/onmouseout/onclick

状态事件 onblur/onfocus/onchange/onload/onunload

 

b) 事件的定义

定义在HTML标记里: onxxx = "MM();"---写死

代码动态的为元素定义事件:

obj.onclick = function对象;

 

c) 事件的冒泡机制:父子元素上定义相同的事件,触发事件时,冒泡机制(从最里层的元素开始触发,层层向上)

   取消冒泡:event.cancelBubble = true;

   利用冒泡机制:

大量子元素有相同事件,为父元素定义事件

 

d) event 对象:只要页面发生了事件,将当前事件相关的所有信息封装到 event 对象中

   js代码中使用event 对象

 

e) event 成员:属性代表事件的某个信息

event.x/y/clientX/clientY

event.srcElement/target--元素对象

区分点击的是哪个子元素

event.srcElement---得到引发当前事件的元素对象

信息:元素节点.nodeName--获取元素的标记名称,大写形式

----在html中用event获取事件对象,传入方法里

ie/chrome/opera浏览器中:js或者html代码中获取事件对象,用event 关键字

event.srcElement

 

firefox 浏览器:只能在html里使用event关键字

event.target

 

浏览器兼容  event.srcElement || event.target

 

eval("1+2") --- 3:将参数作为计算表达式进行计算,得到结果

 

23 history:历史访问记录

history.length

history.back()

history.forward()

 

24 js中OO编程

OO:封装/继承/多态

 

数据的封装:数据结构---class

成员:数据(属性)/行为(方法)

 

三种封装方式:

a) 使用 Object 对象实现数据的封装

   var s = new Object();

   s.name = "mary";

   s.age = 18;

   s.isGraduated = true;

   s.方法 = function对象;

优点:简单

缺点:重用性差---简单的数据封装

 

b)自定义对象:封装,重用

声明自定义的对象,构造函数

function Student(n,a,i)

{

this.name = n;

this.age = a;

this.isGra = i;

this.introduceSelf = aaa;

}

 

function aaa()

{

this.name--获取当前对象的成员

}

 

var s1 = new Student("mary",18,true);

var s2 = new Student("tom",45,false);

alert(s1.name);

alert(s2.name);

 

c) JSon 的语法

var s = {"name":"mary","age":18,"isGra":true};

alert(s.name);

 

练习:tts

      走马灯的效果

实现4个图片每3s轮换(1,2,3,4,1,2,..)

下方1-4 4个数字,背景色也会变化(当前顺序的数字的背景色高亮显示)

鼠标移入图片,停止轮换;移走,继续轮换

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十年呵护

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值