3. 1 WEB自动化 --- WEB前端知识简介
前端
前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页和界面。
前端开发中最基本也是最必须的三个技能。前端的开发中,在页面的布局时,
- HTML:页面结构:可以把他看成一个文档,定义展示页面的内容结构。
- CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果。
- JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能
一、HTML
HTML: 超文本标记语言,是 网页制作必备的编程语言**“**[超文本]
HTML 版本
-
**HTML 2.0 :**是 1996 年由 Internet 工程工作小组的 HTML 工作组开发的。
-
**HTML 3.2 :**作为 W3C 标准发布于 1997 年 1 月 14 日。HTML 3.2 向 HTML 2.0 标准添加了被广泛运用的特性,诸如字体、表格、applets、围绕图像的文本流,上标和下标。
-
**HTML 4.0 :**被发布于 1997 年 12 月 18 日。而仅仅进行了一些编辑修正的第二个版本发布于 1998 年 4 月 24 日。HTML 4.0 最重要的特性是引入了样式表(CSS)。
-
**HTML 4.01 :**发布于 1999 年 12 月 24 日。
-
XHTML 1.0 : 发布于 2000 年 1 月 20 日,使用 XML 对 HTML 4.01 进行了重新地表示
-
**HTML 5:**W3C 于 2008 年 1 月 22 日发布 HTML 5 工作草案。
1、HTML页面结构
超文本标记语言的结构包括“头"部分**(Head)、和“主体”部分(Body)**,其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<!-- 头部信息 不会再页面显示-->
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 主体部分 页面中显示内容-->
<h1>第一个网页页面</h1>
</body>
</html>
1.1 文档声明
DOCTYPE声明该html文件使用的HTML版本
HTML 5
<!DOCTYPE html>
HTML 4.01 Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
1. 2、页面头部
第二行“”标签和最后一行“”定义html文档的整体,“”标签中的‘lang=“en”’定义网页的语言为英文,定义成中文是’lang="zh-CN“。 “”标签和“”标签是它的第一层子元素,
<head>:标签里面负责对网页进行一些设置以及定义标题,设置包括定义网页的编码格式,外链css样式文件和javascript文件等,设置的内容不会显示在网页上,标题的内容会显示在标题栏。
1.3 页面内容
<body>:元素定义文档的主体,也就是页面显示的内容。
body 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等),。
2、常见的HTML标签
2.1 注释:
定义和用法
注释标签用于在源代码中插入注释。注释不会显示在浏览器中。
您可使用注释对您的代码进行解释,这样做有助于您在以后的时间对代码的编辑。当您编写了大量代码时尤其有用。
例:
<!--这是一段注释。注释不会在浏览器中显示。-->
<p>这是一段普通的段落。</p>
2.2 标题标签:
定义和用法
-
标签可定义标。
定义最大的标题。
定义最小的标题。
由于 h 元素拥有确切的语义,因此请您慎重地选择恰当的标签层级来构建文档的结构。因此,请不要利用标题标签来改变同一行中的字体大小
<h1>这是标题 H1</h1>
<h2>这是标题 H2</h2>
<h3>这是标题 H3</h3>
<h4>这是标题 H4</h4>
<h5>这是标题 H5</h5>
<h6>这是标题 H6</h6>
2.3 段落和换行标签
定义和用法
- p : 标签定义段落。元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定.
<p>元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。</p>
- br: 插入一个简单的换行符。标签是空标签,意味着它没有结束标签,
错误的用法:
<p>元素会自动在其前后创建一些空白。<br>浏览器会自动添加这些空间,您也可以在样式表中规定。</p>
- **hr:**标签在 HTML 页面中创建一条水平线。水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分,在 HTML 中,
标签没有结束标签。
<hr>
2.4 块标签
-
div标签:标签块元素,表示一块内容,没有具体的语义。
div标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
div中的部分会显示为红色
<div style="color:red"> <h5>这是标题 H5</h5> <h6>这是标题 H6</h6> </div>
-
span标签 行内元素,表示一行中的一小段内容,没有具体的语义。
pan 没有固定的格式表现。当对它应用样式时,它才会产生视觉上的变化,
<p> 元素会自动在其前后创建一些空白。浏览器会自动添加这些空间 <span style="color: cyan">span中的内容</span> 您也可以在样式表中规定。 </p>
2.5 含样式和语义的行内标签
标签 | 含义 |
---|---|
行内元素,字体斜体。 | |
行内元素,语义为强调内容,表示重要(倾斜效果) | |
行内元素,字体加粗 | |
行内元素,语义为强调内容,表示非常重要(效果加粗) |
<em>这个是em标签</em>
<i>这个是i标签</i>
<strong>这个是strong</strong>
<b>这个是b标签</b>
2.6 图像标签和链接标签
-
img标签
img 元素向网页中嵌入一幅图像。
请注意,从技术上讲, 标签并不会在网页中插入图像,而是从网页上链接图像。 标签创建的是被引用图像的占位空间。
标签有两个必需的属性:src 属性 和 alt 属性。
<img src="http://www.lemonban.com/images/upload/image/20190219/1550546293631.jpg" alt=柠檬班"" />
属性 描述 alt 规定图像的替代文本。 src 规定显示图像的 URL。 height 定义图像的高度。 width 设置图像的宽度 -
a标签:标签定义超链接,用于从一张页面链接到另一张页面
<a href="http://www.baidu.com">点击链接跳转到百度</a>
-
link标签(放在头部中)
链接到一个外部样式,即链接外部的css文件
2.7 列表
- 有序列表
在网页上定义一个有编号的内容列表可以用
- 、
- 配合使用来实现,代码如下:
<ol>
<li>列表文字一</li>
<li>列表文字二</li>
<li>列表文字三</li>
</ol>
在网页上生成的列表,每条项目上会按1、2、3编号,有序列表在实际开发中较少使用。
- 无序列表
在网页上定义一个无编号的内容列表可以用
- 、
- 配合使用来实现,代码如下:
<ul>
<li><a href="#">标题一</a></li>
<li><a href="#">标题二</a></li>
<li><a href="#">标题三</a></li>
</ul>
在网页上生成的列表,每条项目上会有一个小图标.
-
定义列表
dl :标签定义了定义列表(definition list)。标签用于结合dt定义列表中的项目和dd描述列表中的项目
<dl> <dt>python</dt> <dd>解释性语言</dd> <dt>java</dt> <dd>编译型语言</dd> </dl>
2.8 表格
-
table :tabel标签定义 HTML 表格。
简单的 HTML 表格由 table 元素以及一个或多个 tr、th 或 td 元素组成。
tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。
<table border="1" >
<tr>
<th>name</th>
<th>java</th>
<th>python</th>
</tr>
<tr>
<td>小明</td>
<td>精通</td>
<td>熟悉</td>
</tr>
<tr>
<td>小张</td>
<td>不会</td>
<td>不会</td>
</tr>
</table>
3、HTML表单
3.1 form标签
-
form: 标签用于为用户输入创建 HTML 表单,表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。
form标签的属性:
属性 描述 action 定义表单数据提交地址 method 定义表单提交的方式(常见的有get和post) -
form表单中包含的元素
元素标签 作用 为表单元素定义文字标注 标签 定义通用的表单元素 标签 定义多行文本输入框 标签 定义下拉表单元素 标签 与标签配合,定义下拉表单元素中的选项
3.2 input标签
- value属性: 定义表单元素的值
- name属性 :定义表单元素的名称,此名称是提交数据时的键名
<form>
账号:<input type="text" name="username" id="user" />
<br />
密码:<input type="password" name="password" id="pw" />
</form>
-
type属性
值 作用 text 定义单行文本输入框 password 定义密码输入框 radio 定义单选框 checkbox 定义复选框 file 定义上传文件 submit 定义提交按钮 button 定义一个普通按钮 reset 定义重置按钮 image 定义图片作为提交按钮,用src属性定义图片地址 hidden 定义一个隐藏的表单域,用来存储值
3.3 label标签
label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
属性 | 对应值的描述 |
---|---|
for | for 属性应当与相关元素的 id 属性相同 |
案例:
<form>
<label for="user">账号:</label>
<input type="text" name="username" id="user" />
<br />
<label for="pw">密码:</label>
<input type="password" name="password" id="pw" />
</form>
3.4 textarea标签
textarea标签定义多行的文本输入控件。
文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier)。
可以通过 cols 和 rows 属性来规定 textarea 的尺寸,更好的办法是使用 CSS 的 height 和 width 属性。
<form action="11111" method="get" id='fo'>
<textarea name="text"></textarea>
<input type="submit" name="" value="提交" >
</form>
textarea的属性
属性 | 值 | 描述 |
---|---|---|
autofocus | autofocus | 规定在页面加载后文本区域自动获得焦点。 |
cols | number | 规定文本区内的可见宽度。 |
disabled | disabled | 规定禁用该文本区。 |
form | form_id | 规定文本区域所属的一个或多个表单。 |
maxlength | number | 规定文本区域的最大字符数。 |
name | name_of_textarea | 规定文本区的名称。 |
placeholder | text | 规定描述文本区域预期值的简短提示。 |
readonly | readonly | 规定文本区为只读。 |
required | required | 规定文本区域是必填的。 |
rows | number | 规定文本区内的可见行数。 |
3.5 select标签
select 元素可创建单选或多选菜单,也可以用于选择数据提交表单。
` 元素中的 标签用于定义列表中的可用选项。
<form>
<select name='skill'>
<option value ="py">python</option>
<option value ="ht">html</option>
<option value="css">css</option>
<option value="java">javascript</option>
</select>
<input type="submit" name="">
</form>
3.6 option标签
option 元素定义下拉列表中的一个选项(一个条目)。
浏览器将 标签中的内容作为 标签的菜单或是滚动列表中的一个元素显示。
option 元素位于 select 元素内部。
4、内联框架
4.1 iframe
iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
例子:将登录页面的内容链接到当前页面
<iframe src="http://02form.html" height="200" width="400" >
二、css
1、css介绍和引用
1.1、CSS 概述
CSS:层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化,CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mRWvhquV-1599558996681)(C:\Users\MUJI\AppData\Roaming\Typora\typora-user-images\1553651370397.png)]
1.2、css的基本语法
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明
选择器通常是您需要改变样式的 HTML 元素。
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
1.3、css引入方法:
1、外联式:通过link标签,链接到外部样式表到页面中。
<link rel="stylesheet" type="text/css" href="css/main.css">
2、嵌入式:通过style标签,在网页上创建嵌入的样式表。
<style type="text/css">
div{ width:100px; height:100px; color:red }
......
</style>
3、内联式:通过标签的style属性,在标签上直接写样式。
<div style="width:100px; height:100px; color:red ">......</div>
2、css背景
2.1、设置背景色
background-color 设置背景色。这个属性接受任何合法的颜色值。
这条规则把元素的背景设置为红色:
p {background-color: red;}
2.2、设置背景图像
background-image:要把图像放入背景, 属性的默认值是 none,表示背景上没有放置任何图像。如果需要设置一个背景图像,必须为这个属性设置一个 URL 值:
body {background-image: url(/i/eg_bg_04.gif);}
大多数背景都应用到 body 元素,不过并不仅限于此。
-
背景图平铺
如果需要在页面上对背景图像进行平铺,可以使用 background-repeat 属性。
属性值 :
-
repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样
-
repeat-x :图像只在水平上重复,
-
repeat-y :图像在垂直方向上重复
-
no-repeat :不允许图像在任何方向上平铺。
默认地,背景图像将从一个元素的左上角开始。请看下面的例子:
body { background-image: url(/i/eg_bg_03.gif); background-repeat: repeat-y; }
-
2.3、背景定位
可以利用 background-position 属性改变图像在背景中的位置。
定位方式:位置关键字、百分比、
下面的例子在 body 元素中将一个背景图像居中放置:
- 位置关键字:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:center;
}
单一关键字 | 等价的关键字 |
---|---|
top | top center 或 center top |
bottom | bottom center 或 center bottom |
center | center center |
right | right center 或 center right |
left | left center 或 center left |
- 百分数值
百分数值的表现方式更为复杂。假设你希望用百分数值将图像在其元素中居中,这很容易:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:50% 50%;
}
- 长度值
长度值解释的是元素内边距区左上角的偏移。偏移点是图像的左上角。
比如,如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:50px 100px;
}
2.4、背景关联
如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。
background-attachment 属性:声明图像相对于可视区是固定的,因此不会受到滚动的影响:
body
{
background-image:url(/i/eg_bg_02.gif);
background-repeat:no-repeat;
background-attachment:fixed
}
3、颜色表示法
颜色三种表示方法:
-
颜色名表示,比如:red ,cyan gold
-
rgb表示,比如:rgb(255,0,0)表示红色
-
16进制数值表示,比如:#FFFF00 表示黄色
颜色对照表地址:http://tool.oschina.net/commons?type=3
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-he4utuEG-1599558996716)(C:\Users\MUJI\AppData\Roaming\Typora\typora-user-images\1553653444168.png)]
4、css文本样式
常用的应用文本的css样式:
-
color 设置文字的颜色,
- color:red;
-
font-size 设置文字的大小
- font-size:12px;
-
font-family 设置文字的字体
- font-family:‘微软雅黑’;
-
font-style 设置字体是否倾斜:
- 不倾斜: font-style:‘normal’;
- 倾斜: font-style:‘italic’;
-
font-weight 设置文字是否加粗,
- font-weight:bold 设置加粗
- font-weight:normal 设置不加粗
-
line-height 设置文字的行高 (行高相当于在每行文字的上下同时加间距),
- line-height:30px;
-
设置文字的几个属性,顺序如下: font:是否加粗 字号 /行高 字体;
- font:normal 12px/36px ‘微软雅黑’;
-
text-indent 设置文字首行缩进
- text-indent:24px; 设置文字首行缩进24px
-
text-align 设置文字水平对齐方式
- 如text-align:center 设置文字水平居中
5、css选择器
5.1、标签选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身:
<h1>h1标题</h1>
<h2>h2标题</h2>
h1 {color:blue;}
h2 {color:silver;}
5.2、id选择器
首先,ID 选择器前面有一个 # 号
通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,一个ID只能在文档中使用一次,id名一般给程序使用,所以不推荐在css设置样式时使用id作为选择器
<input type="test" name="uname" id="user">
#user {font-weight:bold;}
5.3、类选择器
必须将 class 指定为一个适当的值,类名前有一个点号(.),通过class类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
<div class="menu"></div>
.menu {color:red;}
5.4、属性选择器
通过元素的属性进行选择,
选择带name属性的a标签
<a href="" name="nb"></a>
<a href=""></a>
<a href=""></a>
a[name] {color:red;}
5.5、包含选择器(层级选择器)
主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
<div class="menu">
<div>
<p>p标签</p>
</div>
</div>
.menu div p{color:cyan}
5.6、组选择器
多个选择器,,每个选择器之间用逗号隔开如果有同样的样式设置,可以使用组选择器。
h1, h2, h3 {color:blue;}
5.7、伪类及伪元素选择器
伪类
在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。
属性 | 描述 | CSS |
---|---|---|
:active | 向被**的元素添加样式。 | 1 |
:focus | 向拥有键盘输入焦点的元素添加样式。 | 2 |
:hover | 当鼠标悬浮在元素上方时,向元素添加样式。 | 1 |
:link | 向未被访问的链接添加样式。 | 1 |
:visited | 向已被访问的链接添加样式。 | 1 |
6、css模型框
CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式。
元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。
6.1 边框
元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。border 属性允许你规定元素边框的样式、宽度和颜色。
border-style 的默认值是 none,如果没有声明样式,就相当于 border-style: none。因此,如果您希望边框出现,就必须声明一个边框样式
CSS 边框属性
属性 | 描述 |
---|---|
border | 简写属性,用于把针对四个边的属性设置在一个声明。 |
border-style | 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。 |
border-width | 简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。 |
border-color | 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。 |
除了以上四种,还可以对四个方向单独设种子
border的样式类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pgi4ll0W-1599558996722)(C:\课件\images\1557566475613.png)]
solid # 实线
dotted # 点线
dashed # 线
double # 双线
6.2 内边距
padding 属性定义元素边框与元素内容之间的空白区域。
CSS 内边距属性
属性 | 描述 |
---|---|
padding | 简写属性。作用是在一个声明中设置元素的所内边距属性。 |
padding-bottom | 设置元素的下内边距。 |
padding-left | 设置元素的左内边距。 |
padding-right | 设置元素的右内边距。 |
padding-top | 设置元素的上内边距。 |
设置的时候可以通过像素,也可以按元素的百分比进行设置。
h1 元素的各边都有 10 像素的内边距,只需要这样:
h1 {padding: 10px;}
也可以给四个方向设置不同值,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:
margin: top right bottom left
另外
把段落的内边距设置为父元素 width 的 10%:
p {padding: 10%;}
6.3 外边距
设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。
外边距属性
属性 | 描述 |
---|---|
margin | 简写属性。在一个声明中设置所有外边距属性。 |
margin-bottom | 设置元素的下外边距。 |
margin-left | 设置元素的左外边距。 |
margin-right | 设置元素的右外边距。 |
margin-top | 设置元素的上外边距 |
7、浮动和定位
7.1 CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
通过使用 position 属性,我们可以选择不同类型的定位。
7.2 相对定位
注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。
#box_relative {
position: relative;
left: 30px;
top: 20px;
}
7.3 绝对定位
绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。
#box {
position: absolute;
left: 30px;
top: 20px;
}
7.4 固定位置
7.5 浮动
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
在 CSS 中,我们通过 float 属性实现元素的浮动。
img{
float:right;
}
值 | 描述 |
---|---|
left | 元素向左浮动。 |
right | 元素向右浮动。 |
none | 默认值。元素不浮动,并会显示在其在文本中出现的位置。 |
inherit | 规定应该从父元素继承 float 属性的值。 |
7.6 display属性
display属性是用来设置元素的类型及隐藏的,常用的属性有:
-
none 元素隐藏
-
block 元素以块元素显示
三、javascript
1、介绍和基本使用
1.1、javascript概述
-
JavaScript历史
要了解JavaScript,我们首先要回顾一下JavaScript的诞生。在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司。由于网景公司希望能在静态HTML页面上添加一些动态效果,于是叫Brendan Eich这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天时间。为什么起名叫JavaScript?原因是当时Java语言非常红火,所以网景公司希望借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系。
1.2、嵌入页面的方式
HTML 中的脚本必须位于 标签之间。脚本可被放置在 HTML 页面的 和 部分中。
1、行间事件(主要用于事件)
<input type="button" name="" onclick="alert('ok!');">
2、页面script标签嵌入
<script type="text/javascript">
alert('ok!');
</script>
3、外部引入
<script type="text/javascript" src="js/index.js"></script>
2、基本语法
2. 1 注释
我们可以添加注释来对 JavaScript 进行解释,或者提高代码的可读性。
- 单行注释:以 // 开头。
- 多行注释:以 /* 开始,以 */ 结尾。
2.2 变量
变量命名:
- 变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
- 变量必须以字母开头
- 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
- 变量名称对大小写敏感(y 和 Y 是不同的变量)
- 驼峰式命名
变量声明
javaScript中变量可以先声明后赋值,
var x;
x = 20;
也可以在声明的时候赋值。
var y=3;
同时给多个变量赋值
var a = 100;b = 200,c = 300;
2.3 数据类型:
字符串、数字、布尔、Null、Undefined、数组
-
number 数字类型
var y=3;
-
string 字符串类型
var st='python'
-
boolean 布尔类型
- 只有 true 或 false两个值
-
undefined 类型,
- 变量声明未初始化,它的值就是undefined
var unde
-
null类型,
var tr = null
-
arry 数组
-
数值类似于python中的列表,可以通过下标取值
//创建数组 var skill= Array("html","css","js"); alter(skill[0]);
-
length属性:获取数组长度:
alter(skill.length)
-
pop() 方法从数组中删除最后一个元素
skill.pop()
- push() 方法(在数组结尾处)向数组添加一个新的元素
skill.push('jquery')
1
-
2.4 运算符
算术运算符: +(加)、 -(减)、 *(乘)、 /(除)、 %(求余)
赋值运算符:=、 +=、 -=、 *=、 /=、 %= 、++
条件运算符:、=、>、>=、<、<=、!=、
逻辑运算符:&&(而且 )、||(或者 )、!(否 )
2.5 条件语句
通过条件来控制程序的走向,就需要用到条件语句。
if 语句
var a = 199;
if(a>200){
alert('大于200');
}
else 语句
var a = 199;
if(a>200){
alert('大于200');
}
else {
alert(a);
}
else if 语句
类似python中的 elif
var a = 199;
if(a>200){
alert('大于200');
}
else if(a>100){
alert('大于100')
}
else {
alert(a);
}
switch语句
switch(表达式) {
case n1:
代码块
break;
case n1:
代码块
break;
default:
默认代码块
}
-
计算一次 switch 表达式
-
把表达式的值与每个 case 的值进行对比
-
如果存在匹配,则执行关联代码
-
遇到 break 关键词,它会跳出 switch 代码块。
-
case 匹配不存在时,运行default 的代码:
案例
```javascript
var a =0 ;
var b = 1;
switch (a+b) {
case 1:
alert(1);
break;
case 2:
alert(2);
break;
default:
alert(3)
}
```
2. 6、函数
函数定义:
- 定义函数的关键词 function,函数内的代码块,包裹在花括号中:
```javascript
// 函数的定义 使用function
function func() {
alter(999)
}
// 函数调用
func()
```
- 提示:JavaScript 对大小写敏感。关键词 function 必须是小写的
函数参数:
function addNumber(var1,var2) {
alert(var1 + var2;);
}
addNumber(11,22)
函数返回值:
- 使用 return 来返回值。在使用 return 语句时,函数会停止执行,并返回指定的值。
```javascript
function addNumber(var1, var2) {
return var1 + var2;
}
var res = addNumber(11,222);
alert(res)
```
2. 7 对象
创建对象
对象由花括号分隔。在括号内部,
方式一:
objA = new Object();
方式二:类式于python中的字典,
var objA={};
对象属性
-
对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var objA={name : "python",age : 18,id :123};
-
创建对象属性声明可横跨多行:
var objA={ name : "python", age : 18, id :123 };
对象方法
-
对象方法是作为属性来存储的函数。
-
var objC = { // 创建对象 :方式3 name: 'abc', age: 19, fun: function (var1,var2) { alert(var1); alert(var2); alert(this.age * 2); } }; objC.fun(111,222)
2. 8、循环
while循环
while(条件语句){
循环体
}
for 循环
for (语句1,语句2,语句3 ){
循环体代码
}
-
语句1:在循环开始之前执行
-
语句2:循环条件(成立则执行循环体)
-
语句3:每一轮循环之后执行的语句
-
案例:遍历数组
var aList = Array(11, 22, 33); for (var a = 0; a < aList.length; a++) { alert(aList[a]) }
for in 循环
for (x in arrayr){
循环体代码
}
var aList = Array(11, 22, 33);
for (x in aList) {
alert(aList[x]);
}
var objC = {name: 'abc', age: 19};
// 遍历对象
for (x in objC){
alert(x);
alert(objC[x]);
}
3、JS操作页面
DOM简介
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树。
HTML DOM 树
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
- 如何改变 HTML 元素的内容 (innerHTML)
- 如何改变 HTML 元素的样式 (CSS)
- 如何对 HTML DOM 事件对做出反应
- 如何添加或删除 HTML 元素
1、获取页面标签
1、1 获取标签的方式
通常,通过 JavaScript操作 HTML 元素,可以使用内置对象document的方法来找到该标签。。
-
通过 id 找到 HTML 元素(常用)
- document.getElementById()
-
通过标签名找到 HTML 元素
-
通过类名找到 HTML 元素(通过类名查找 HTML 元素在 IE 5,6,7,8 中无效。)
1、2 获取标签注意问题
的getElementById方法来获取页面上设置了id属性的元素,
<script type="text/javascript">
var bo = document.getElementById('box');
//box对应的div这个元素定义在下面,此时获取不到,就会出错
</script>
<div id="box">这是div元素</div>
上面的语句,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载,
解决方法:
- javascript放到页面最下边
<div id="box">这是div元素</div>
<script type="text/javascript">
var bo = document.getElementById('box');
</script>
</body>
-
放入window.onload触发的函数里面
window.onload函数在页面加载完后才执行,就不会出错了。
<script type="text/javascript">
window.onload = function(){
var bo = document.getElementById('box');
}
</script>
<div id="box">这是div元素</div>
1
2、操作标签内容
innerHTML 属性
读取节点文本
var odv1 = document.getElementById('box');
var content1 = odv1.innerHTML;
alert(content1)
写入节点文本
var odv1 = document.getElementById('box');
odv1.innerHTML = 哈哈哈;
3、修改标签属性
操作属性的方法
读取属性
<input type="text" id="input_user" name="user" value="python">
// 读取属性
var odv1 = document.getElementById('input_user');
var idValue = odv1.id;
var nameValue = odv1['name'];
alert(idValue);
alert(nameValue);
修改属性
<a href="" id="a1" >柠檬班</a>
// 修改属性
a1 = document.getElementById('a1');
// a1.href = 'http://www.lemonban.com';
a1['href'] = 'http://www.lemonban.com';
注意点:操作class属性的时候,要将属性名字改为className
a1.className = 'hied';
修改css样式
<div class="dv1" id="dv01" >这个是div1</div>
//修改css样式
var odv1 = document.getElementById('dv01');
odv1.style.width = '300px';
odv1.style['height'] = '200px';
odv1.style.background = 'cyan';
4、onclick事件
onclick事件:点击了该 HTML 元素
事件属性添加 JavaScript 代码:
// 给div定义一个onclick事件,触发该事件的时候,调用该事件指定的函数
<div class="dv1" id="dv01" onclick="tank()">这个是div1</div>
// 定义一个函数,负责弹框
function tank() {
alert('hello')
}
四、jquery
1、jquery介绍和引用
jQuery是目前使用最广泛的javascript函数库。
jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版本的浏览器,2.x、3.x系列放弃支持低版本浏览器,目前使用最多的是1.x系列的。
jquery的口号和愿望 Write Less, Do More(写得少,做得多)
-
官方网站:http://jquery.com/
-
在线手册:https://www.runoob.com/manual/jquery/
-
下载
-
引入页面
-
jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
2、jquery选择器
- jquery用法思想一
选择某个网页元素,然后对它进行某种操作
jquery基本的选择器
jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功。
// id选择器
$('#btn1')
// 类选择器
$('.box1')
// 标签选择器
$('li')
// 层级选择器
$('#ul li span')
// 属性选择器
$('input[name=user]')
选择同胞和父辈元素
//选择div元素前面紧挨的同辈元素
$('div').prev();
//选择div元素之前所有的同辈元素
$('div').prevAll();
//选择div元素后面紧挨的同辈元素
$('div').next();
//选择div元素后面所有的同辈元素
$('div').nextAll();
//选择div的父元素
$('div').parent();
//选择div的所有子元素
$('div').children();
//选择div的同级元素
$('div').siblings();
//选择div内的class等于cs的元素
$('div').find('#cs li');
选择过滤
// 选择包含p元素的div元素
$('div').has('p');
//选择class不等于cs的div元素
$('div').not('.cs');
//选择class等于cs的div元素
$('div').filter('.cs');
//选择第6个div元素
$('div').eq(5);
获取元素的索引值
有时候需要获得匹配元素相对于其同胞元素的索引位置,此时可以用index()方法获取
var $li = $('.list li').eq(1);
alert($li.index()); // 弹出1
<ul class="list">
<li>1</li>
<li>2</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
3、jquery操作样式
获取元素样式
// 获取div的样式
$("div").css("width");
$("div").css("color");
//设置div的样式
$("div").css("width","30px");
$("div").css("height","30px");
$("div").css({fontSize:"30px",color:"red"});
// 添加class属性
$("#div1").addClass("cs2")
// 移除class属性
$("#div1").removeClass("cs2")
// 重复切换样式
$("#div1").toggleClass("cs2")
4、绑定click事件
给元素绑定click事件,可以用如下方法:
$('#btn1').click(function(){
// 内部的this指的是原生对象
// 使用jquery对象用 $(this)
})
-
jquery链式调用:
jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以连起来写
$(this).next().stop().slideToggle().parent().siblings().children('ul').slideUp();
5、jquery操作属性
方法 | 描述 |
---|---|
attr() | 设置或返回匹配元素的属性和值。 |
removeAttr() | 从所有匹配的元素中移除指定的属性。 |
6、jquery操作元素
获取文本内容:
-
text() - 设置或返回所选元素的文本内容
-
html() - 设置或返回所选元素的内容(包括 HTML 标记)
-
val() - 设置或返回表单字段的值
-
添加新的 HTML 内容
- append() - 在被选元素的结尾插入内容
- prepend() - 在被选元素的开头插入内容
- after() - 在被选元素之后插入内容
- before() - 在被选元素之前插入内容
-
删除元素/内容
- remove() - 删除被选元素(及其子元素)
- empty() - 从被选元素中删除子元素
7、jquery效果函数
方法 | 描述 |
---|---|
animate() | 对被选元素应用“自定义”的动画 |
fadeIn() | 逐渐改变被选元素的不透明度,从隐藏到可见 |
fadeOut() | 逐渐改变被选元素的不透明度,从可见到隐藏 |
hide() | 隐藏被选的元素 |
show() | 显示被选的元素 |
slideDown() | 通过调整高度来滑动显示被选元素 |
slideToggle() | 对被选元素进行滑动隐藏和滑动显示的切换 |
slideUp() | 通过调整高度来滑动隐藏被选元素 |
stop() | 停止在被选元素上运行动画 |
toggle() | 对被选元素进行隐藏和显示的切换 |
8、jquery事件
click() // 鼠标单击
change() // 元素改变
mouseover() // 鼠标进入(进入子元素也触发)
mouseout() // 鼠标离开(离开子元素也触发)
mouseenter() // 鼠标进入(进入子元素不触发)
mouseleave() // 鼠标离开(离开子元素不触发)
hover() // 同时为mouseenter和mouseleave事件指定处理函数
ready() // DOM加载完成
resize() // 浏览器窗口的大小发生改变
scroll() // 滚动条的位置发生变化
submit() // 用户递交表单
9、ajax
ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。
同步和异步
现实生活中,同步指的是同时做几件事情,异步指的是做完一件事后再做另外一件事,程序中的同步和异步是把现实生活中的概念对调,也就是程序中的异步指的是现实生活中的同步,程序中的同步指的是现实生活中的异步。
局部刷新和无刷新
ajax可以实现局部刷新,也叫做无刷新,无刷新指的是整个页面不刷新,只是局部刷新,ajax可以自己发送http请求,不用通过浏览器的地址栏,所以页面整体不会刷新,ajax获取到后台数据,更新页面显示数据的部分,就做到了页面局部刷新。
同源策略
ajax请求的页面或资源只能是同一个域下面的资源,不能是其他域的资源,这是在设计ajax时基于安全的考虑。特征报错提示:
$.ajax使用方法
常用参数:
1、url 请求地址
2、type 请求方式,默认是’GET’,常用的还有’POST’
3、dataType 设置返回的数据格式,常用的是’json’格式,也可以设置为’html’
4、data 设置发送给服务器的数据
5、success 设置请求成功后的回调函数
6、error 设置请求失败后的回调函数
7、async 设置是否异步,默认值是’true’,表示异步
以前的写法:
$.ajax({
url: 'js/data.json',
type: 'GET',
dataType: 'json',
data:{'aa':1}
success:function(data){
alert(data.name);
},
error:function(){
alert('服务器超时,请重试!');
}
});
jsonp
ajax只能请求同一个域下的数据或资源,有时候需要跨域请求数据,就需要用到jsonp技术,只需要将dataType:设置为jsonp,就可以跨域请求数据(前提是服务器允许跨域请求)
// 跨域请求
$('#dl').click(function () {
//获取账号密码
var user = $('#username').val();
var pwd = $('#password').val();
$.ajax({
url: 'http://test.lemonban.com/futureloan/mvc/api/member/login',
dataType: 'jsonp',
method: 'POST',
data: {"mobilephone": user, "pwd": pwd},
}).done(function (data) {
console.log(data);
alert('登录成功')
}).fail(function () {
alert('登录失败')
})
})