赞
踩
目录
函数的arguments隐形参数(只在function函数内)
- <!DOCTYPE html>
- <html lang="en" xmlns="http://www.w3.org/1999/html">
- <head>
- <meta charset="UTF-8">
- <title>我的第一个网页</title>
- </head>
- <body>
- <!--标题标签-->
- <h1>一级标签</h1>
- <h2>二级标签</h2>
- <h3>三级标签</h3>
- <h4>四级标签</h4>
- <h5>五级标签</h5>
-
- <!--段落标签-->
- <p>两只老虎 跑得快</p>
- <p>发发发发发 发发发发发发付</p>
-
- <!--换行标签-->
- 两只老虎 跑得快</br>发发发发发 发发发发发发付
-
- <!--水平标签-->
- <hr>
-
- <!--粗体 斜体-->
- <h1>字体样式标签</h1>
-
- 粗体:<strong>I love U</strong>
- 斜体:<em>I love U</em>
- </br>
- <!--特殊符号-->
- 空 格
- 空     格
-
- </br>
- <!--img学习
- src:图片地址 相对地址,绝对地址
- ../ --上一级目录
- alt 加载失败会返回这个地方-->
-
- </br>
-
- <!--链接标签
- a标签
- herf:跳转的页面
- target:表示窗口在哪儿打开
- _blank:在新标签打开
- _self:在当前页面打开-->
- <a href="https://blog.csdn.net/weixin_56580267?type=collect" target="_blank">我的csdn</a>
- <a href="https://blog.csdn.net/weixin_56580267?type=collect">
- <img src="../resources/image/1.jpg" alt="壁纸" title="悬停文字" width="500" height="300">
- </a>
-
- <!--锚链接
- 1.需要一个锚标记
- 2.跳转到标记
- -->
- <a href="#top">回到顶部</a>
-
- <a name="down">down</a>
-
- <!--功能性链接
- 邮件链接:mailto:
- qq链接-->
-
- <a href="mailto:288888888@qq.com">点击联系我</a>
-
-
- </body>
- </html>
块:无论内容多少,该元素独占一行
行内:内容撑开宽度,左右都是行内元素的可以在排一行
列表的分类
- <!--有序列表-->
- <ol>
- <li>java</li>
- <li>python</li>
- <li>运维</li>
- </ol>
-
- <!--无序列表-->
- <ul>
- <li>java</li>
- <li>python</li>
- <li>运维</li>
- </ul>
-
- <!--自定义列表
- dl:标签
- dt:列表名称
- dd:列表内容-->
- <dl>
- <dt>学科</dt>
-
- <dd>java</dd>
- <dd>python</dd>
-
- <dt>位置</dt>
-
- <dd>西安</dd>
- <dd>重庆</dd>
- <body>
-
- <table border="1px">
- <!--第一行-->
- <tr>
- <!--colspan 跨列-->
- <td colspan="3">1-1</td>
-
- </tr>
- <!--第二行-->
- <tr>
- <!--rowspan 跨行-->
- <td rowspan="2">2-1</td>
- <td>2-2</td>
- <td>2-3</td>
- </tr>
- <!--第三行-->
- <tr>
- <td>3-1</td>
- <td>3-2</td>
-
- </tr>
-
-
- </table>
- </body>
视频video和音频audio
- <body>
-
- <!--
- src:资源路径
- controls:控制条
- autoplay:自动播放-->
- <!--<video src="../resources/video/片头.mp4" controls autoplay></video>-->
- <audio src="../resources/audio/萤火虫和你.mp3" controls autoplay></audio>
- </body>
- <body>
- <iframe src="//player.bilibili.com/player.html?aid=271092714&bvid=BV1Hc411P7nN&cid=1128918242&page=1"
- scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
-
- </body>
- <iframe src="" name="blog" frameborder="0" width="1000px" height="800px"></iframe>
- <a href="https://blog.csdn.net/weixin_56580267?type=blog" target="blog">点击跳转</a>
- <h1>注册</h1>
-
- <!--表单form
- action:表单提交的位置,可以是网站,也可以是一个请求处理地址
- method:post ,get提交方式
- get:可以在url看到我们提交的信息,不安全,高效
- post:比较安全
- -->
- <form action="1.我的第一个网页.html" method="get">
-
- <!--文本输入框:input type="text"-->
- <p>名字:<input type="text" name="username"></p>
- <p>密码:<input type="password" name="pwd"></p>
-
- <p>
- <input type="submit">
- <input type="reset"></p>
-
- <!--单选框标签
- input type="radio"
- value:单选框的值
- name:表示值
- -->
- <p>性别:
- <input type="radio" value="boy" name="sex">男
- <input type="radio" value="gril" name="sex">女
- </p>
- <!--多选框
- input type="checkbox"
- -->
- <p>爱好:
- <input type="checkbox" value="sleep" name="hobby">睡觉
- <input type="checkbox" value="code" name="hobby">敲代码
- <input type="checkbox" value="gril" name="hobby">女孩
- <input type="checkbox" value="game" name="hobby">游戏
- </p>
- <!--按钮
- input type="button" 普通按钮
- input type="image" 图片按钮
- input type="submit" 提交按钮
- input type="reset" 重置-->
- <p>
- <input type="button" name="bt1" value="点他">
- <input type="image" src="../resources/image/img.png">
- </p>
- <!--url验证-->
- <p>URL:
- <input type="url" name="url">
- </p>
- <!--数字验证-->
- <p>商品数量:
- <input type="number" name="num" max="100" min="0" step="10">
- </p>
- <!--滑块
- input type="range"
- -->
- <p>音量:
- <input type="range" min="0" max="100" step="2">
- </p>
- <!--搜索框-->
- <p>搜索:
- <input type="search" name="search">
- </p>
disabled:禁用
hidden:隐藏
redeonly:只读
placehodler:提示输入信息
required:非空判断(提示该文本必填)
pattern:正则表达式
四种css导入方法
- 方法1:行内样式
- <body>
- <!--行内样式:在标签元素中,编写一个style属性,编写样式即可-->
- <h1 style="color: blue">我是标签</h1>
- 方法2:内嵌式
- <style>
- h1{
- color: red;
- }
- </style>
- </head>
- <body>
- <h1>我是标签</h1>
- 方法3:链接式
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <link rel="stylesheet" href="../css/style.css">
- <body>
- <h1>我是标签</h1>
- 方法4:导入式
- <style type="text/css">
- @import "/css/style.css";
- </style>
css的优势:
1.内容和表现分离 2.网页结构表现统一,可以实现复用 3.样式十分丰富 4.建议使用独立于html的css文件 5.利用seo,容易被搜索引擎收录
h1{color:red}//h1:选择器 color:属性 red:值
元素选择器根据元素名称来选择 HTML 元素。
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- p {
- text-align: center;
- color: blue;
- }
- </style>
- </head>
- <body>
-
- <p>每个段落都会受到样式的影响。</p>
- <p id="para1">我也是!</p>
- <p>还有我!</p>
-
- </body>
- </html>
id 选择器使用 HTML 元素的 id 属性来选择特定元素。
元素的 id 在页面中是唯一的,因此 id 选择器用于选择一个唯一的元素!
要选择具有特定 id 的元素,请写一个井号(#),后跟该元素的 id。
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- #para1 {
- text-align: center;
- color: red;
- }
- </style>
- </head>
- <body>
-
- <p id="para1">Hello World!</p>
- <p>本段不受样式的影响。</p>
-
- </body>
- </html>
类选择器选择有特定 class 属性的 HTML 元素。
如需选择拥有特定 class 的元素,请写一个句点(.)字符,后面跟类名。
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- .center {
- text-align: center;
- color: red;
- }
- </style>
- </head>
- <body>
-
- <h1 class="center">居中的红色标题</h1>
- <p class="center">居中的红色段落。</p>
-
- </body>
- </html>
id:必选保证全局唯一 不遵循就近原则,固定的 id选择器>class选择器>标签选择 标签/元素选择器: 标签名{属性1:属性值;} p{color:red} div{color:red} span{color:red} ul{color:red} 类别选择题(class选择器) 以一个点号选择器,类名的第一个字符不能使用数字 .center{text-alight:center} <h1 class="center">Hello world</h1> ID选择器 前面以“#”来标记 <p id="A">段落1</p> <p id="B">段落2</p> #A{} #B{} 通用选择器 匹配任何元素 *{margin:0;padding:0;} 群组选择器 h1,h2,h3{color:red}
后代选择器 子选择器 相邻兄弟选择器 通用选择器
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>层次选择器</title>
- </head>
- <body>
-
- <p>p1</p>
- <p>p2</p>
- <p>p3</p>
- <p>p4</p>
- <p>
- 水果:
- <ul>
- <li>西瓜</li>
- <li>苹果</li>
- <li>香蕉</li>
- </ul>
- </p>
-
- </body>
- </html>
后代选择器 从上面可以看出所有的标签都是body的后代,那么我们使用后代选择器,就可以将body的后代(所有标签)改变样式:
- body p{
- background-color: aqua;
- }
子选择器 子选择器可后代选择器相比,就是把空格变成>
- body>p{
- background-color: aqua;
- }
相邻兄弟选择器 相比后代选择器,将空格变为+,将前标签改为类:
- .style1+p{
- background-color: aqua;
- }
- <p>p1</p>
- <p class="style1">p2</p>
- <p>p3</p>
通用选择器
- <body>
- <p>p1</p>
- <p>p2</p>
- <p>p3</p>
- <p>p4</p>
- <p>
- 水果:
- <ul>
- <li>西瓜</li>
- <li>苹果</li>
- <li>香蕉</li>
- </ul>
- </p>
- </body>
当未被鼠标访问 已被鼠标访问 鼠标悬浮在元素上方 元素被激活时 向元素添加样式
- ul li:first-child{
- color: aqua}
a[id=frist]{ color:red} = 绝对等于 *=包含这个元素 ^=以这个元素开头 $=以这个结尾 class 中有link的元素 a[class*=link]{ background:yellow }
span标签是什么
span标签是超文本标记语言(HTML)的行内标签,被用来组合文档中的行内元素。span标签通常使用来将文本的一部分或者文档的一部分独立出来,从而对独立出来的内容设置单独的样式。span本身没有任何属性,也没有固定的格式表现,当对它应用样式时,它会产生视觉上的变化。
效果图:
涉及知识点:
css什么时候用class和id?当css样式用于不止一个元素时,使用class来定义。
当css样式只应用于一个元素时,使用id来定义。
例如导航条,每个页面中,只存在一个顶部导航条的话,可以使用id来定义
// 或者
例如商品列表,具有相同的样式,可以使用class来定义
list-style:
none 去掉原点
circle 空心圆
decimal 数字
square 正方形
- <style>
- li{
- list-style: circle;
- }
- </style>
- </head>
- <body>
- <ul>
- <li>1</li>
- <li>2</li>
- <li>3</li>
- </ul>
h1{text-aligh:center;
}
属性设置为 "justify" 后,将拉伸每一行,以使每一行具有相等的宽度,并且左右边距是直的(就像在杂志和报纸中):
direction
和 unicode-bidi
属性可用于更改元素的文本方向:
vertical-align
属性设置元素的垂直对齐方式。
- img.top {
- vertical-align: top;
- }
-
- img.middle {
- vertical-align: middle;
- }
-
- img.bottom {
- vertical-align: bottom;
- }
text-decoration
属性用于设置或删除文本装饰。
text-decoration: none;
通常用于从链接上删除下划线:
text-transform
属性用于指定文本中的大写和小写字母。
它可用于将所有内容转换为大写或小写字母,或将每个单词的首字母大写:
- p.uppercase {
- text-transform: uppercase;/*都是大写*/
- }
-
- p.lowercase {
- text-transform: lowercase;/*都是小写*/
- }
-
- p.capitalize {
- text-transform: capitalize;/*每个英文单词大写*/
- }
text-indent
属性用于指定文本第一行的缩进:
letter-spacing
属性用于指定文本中字符之间的间距。
line-height
属性用于指定行之间的间距:
word-spacing
属性用于指定文本中单词之间的间距。
white-space
属性指定元素内部空白的处理方式。
此例演示如何禁用元素内的文本换行:
text-shadow
属性为文本添加阴影。
text-shadow: 阴影颜色 水平偏移 垂直偏移 阴影半径
向阴影添加颜色(红色):
向阴影添加模糊效果(5px):
涉及知识点:
text-decoration在html语言中表示属性规定添加到文本的修饰(例如加下划线);
以下表格列出了 CSS text-decoration 属性的可能取值: [1]
值 | 描述 |
默认。定义标准的文本。 | |
定义文本下的一条线。 | |
overline | 定义文本上的一条线。(上划线) |
line-through | 定义穿过文本下的一条线。(贯穿线) |
blink | 定义闪烁的文本。 |
inherit | 规定应该从父元素继承 text-decoration 属性的值。 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- a{
- text-decoration: none;
- color: #000000;
- }
- /*鼠标悬浮的状态*/
- a:hover{
- color: orange;
- font-size: 50px;/*鼠标碰到 文本就会变大*/
- }
- /*鼠标按住未释放的状态*/
- a:active{
- color:green;
- }
- /*鼠标点击后变成红色*/
- a:visited{
- color: red;
- }
-
- </style>
- </head>
- <body>
- <a href="#">码出高数:java开发手册</a>
- </body>
- </html>
(1)字体样式font-style
属性主要用于指定斜体文本。
此属性可设置三个值:
font-weight
属性指定字体的粗细:
- p.normal {
- font-weight: normal;
- }
-
- p.thick {
- font-weight: bold;
- }
font-size
属性设置文本的大小。
在这些章节中,您将学习如下 CSS 背景属性:
效果图:
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color: green;
- }
-
- div.first {
- opacity: 0.1;
- }
-
- div.second {
- opacity: 0.3;
- }
-
- div.third {
- opacity: 0.6;
- }
- </style>
- </head>
- <body>
-
- <h1>透明框</h1>
-
- <p>当使用 opacity 属性为元素背景添加透明度时,其所有子元素也会变为透明。这可能会使完全透明的元素内的文本难以阅读:</p>
-
- <div class="first">
- <h1>opacity 0.1</h1>
- </div>
-
- <div class="second">
- <h1>opacity 0.3</h1>
- </div>
-
- <div class="third">
- <h1>opacity 0.6</h1>
- </div>
-
- <div>
- <h1>opacity 1(默认)</h1>
- </div>
-
- </body>
- </html>
注意:使用 opacity
属性为元素的背景添加透明度时,其所有子元素都继承相同的透明度。这可能会使完全透明的元素内的文本难以阅读。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
-
- <style>
- div {
- background-color: green;
- }
-
- div {
- background: rgb(0, 128, 0);
- }
-
- div.first {
- background: rgba(0, 128, 0, 0.1);
- }
-
- div.second {
- background: rgba(0, 128, 0, 0.3);
- }
-
- div.third {
- background: rgba(0, 128, 0, 0.6);
- }
- </style>
- </head>
- <body>
- <p>使用 RGBA 颜色值:</p>
- <div class="first">
- <h1>10% opacity</h1>
- </div>
-
- <div class="second">
- <h1>30% opacity</h1>
- </div>
-
- <div class="third">
- <h1>60% opacity</h1>
- </div>
-
- <div>
- <h1>默认</h1>
- </div>
-
- </body>
- </html>
背景图片
仅在水平方向重复 (background-repeat: repeat-x;
)
如需垂直重复图像,请设置 background-repeat: repeat-y;
。
background-repeat:no-repeat
属性还可指定只显示一次背景图像:
background-position
属性用于指定背景图像的位置。
简写背景属性
- body {
- background-color: #ffffff;
- background-image: url("tree.png");
- background-repeat: no-repeat;
- background-position: right top;
- }
可以写成
- body {
- background: #ffffff url("tree.png") no-repeat right top;
- }
在使用简写属性时,属性值的顺序为:
属性值之一缺失并不要紧,只要按照此顺序设置其他值即可。请注意,在上面的例子中,我们没有使用 background-attachment 属性,因为它没有值。
background-attachment: fixed;图像不会随页面的其余部分滚动。
background-attachment: scroll|fixed|local|initial|inherit;
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- a{
- text-decoration: none;
- color: #000000;
- }
- /*鼠标悬浮的状态*/
- a:hover{
- color: orange;
- font-size: 50px;/*鼠标碰到 文本就会变大*/
- }
- /*鼠标按住未释放的状态*/
- a:active{
- color:green;
- }
- /*鼠标点击后变成红色*/
- a:visited{
- color: red;
- }
-
- </style>
- </head>
- <body>
- <a href="#">码出高数:java开发手册</a>
- </body>
- </html>
(1)border-style
border
属性允许您指定元素边框的样式、宽度和颜色。
border-style
属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。
- p.dotted {border-style: dotted;}
- p.dashed {border-style: dashed;}
- p.solid {border-style: solid;}
- p.double {border-style: double;}
- p.groove {border-style: groove;}
- p.ridge {border-style: ridge;}
- p.inset {border-style: inset;}
- p.outset {border-style: outset;}
- p.none {border-style: none;}
- p.hidden {border-style: hidden;}
- p.mix {border-style: dotted dashed solid double;}
(2)border-width
注释:border-color 属性单独使用时不起作用。请首先使用 border-style 属性设置样式。
边框简写
border
属性是以下各个边框属性的简写属性:
border-width
border-style
(必需)border-color
实际:
- p {
- border: 5px solid red;
- }
(3)border-radius
属性用于向元素添加圆角边框:
border-radius:50px 20px 20px 50px
左上 右上 右下 左下
边距margin:设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度
所有外边距属性都可以设置以下值:
提示:允许负值。
margin:20px;表示四个方向的外边距都是20px;
margin:20px 40px;表示top为20px,right为40px;由于bottom和left缺省,所以自动将它们分别设为20px和40px。转化为第4种写法为:“margin:20px 40px 20px 40px;”。
margin:20px 40px 60px;表示top为20px,right为40px,bottom为60px;由于left缺省,所以自动将它设为40px。转化为第4种写法为:“margin:20px 40px 60px 40px;”。
margin:5px auto;意思上下为5,左右平均居中
属性 | 描述 |
---|---|
margin | |
设置元素的下外边距。 | |
设置元素的左外边距。 | |
设置元素的右外边距。 | |
margin-top | 设置元素的上外边距。 |
填充padding:使用padding属性来设置四个方向的内边距
margin与padding如何进行区分,这是很多学html人的困扰,其实说白了padding 就是内容与边框的空隙。而margin则是模块与模块的空隙。
效果图:
word-break 属性规定自动换行的处理方法。
word-break: normal|break-all|keep-all;
值 | 描述 |
---|---|
normal | 使用浏览器默认的换行规则。 |
break-all | 允许在单词内换行。 |
keep-all | 只能在半角空格或连字符处换行。 |
效果图:
涉及知识点:
margin:0 auto;表示上下边界为0,左右则根据宽度自适应相同值(即居中)
轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。
CSS 拥有如下轮廓属性:
outline-style
outline-color
outline-width
outline-offset
outline
注意:轮廓与边框不同!不同之处在于:轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。同样,轮廓也不是元素尺寸的一部分;元素的总宽度和高度不受轮廓线宽度的影响。
:left/right左右浮动
clear:both
- <style>
- div{
- width: 100px;
- height: 100px;
- border: 1px solid red;
- display:inline;/*行内元素 这里是将div显示成行内元素*/
- }
- span{
- width: 100px;
- height: 100px;
- border: 1px solid red;
- /*display: block;块元素 这里是将行内元素显示成div*/
-
- display: inline-block;/**/
- }
- </style>
- </head>
- <body>
- <div>div元素</div>
- <span>span行内元素</span>
clear:
clear:right 右侧不允许有浮动元素
clear:left 左侧不允许有浮动元素
clear:both 两侧不允许有浮动元素
none:
解决塌陷问题方案:
方案一:增加父级元素的高度;
方案二:增加一个空的div标签,清除浮动
- <div class = "clear"></div>
- <style>
- .clear{
- clear:both;
- margin:0;
- padding:0;
- }
- </style>
方案三:在父级元素中增加一个overflow:hidden
- overflow:hidden/*隐藏*/
- overflow:scoll/*滚动*/
方案四:父类添加一个伪类:after
- #father:after{
- content:'';
- display:block;
- clear:both;
- }
小结:
position 属性
position
属性规定应用于元素的定位方法的类型。
有五个不同的位置值:
原来代码
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- *{
- margin: 0 auto;
- padding: 5px;
- }
- #father{
- border: 1px #9765 solid;
- padding: 50px;
- }
- #first{
- border: 1px #000000 solid;
- background: aqua;
- }
- #second{
- border: 1px #0785 solid;
- background: orange;
- }
- #third{
- border: 1px #390 solid;
- background: antiquewhite;
- }
- </style>
- </head>
- <body>
- <div id="father">
- <div id="first">第一个盒子</div>
- <div id="second">第二个盒子</div>
- <div id="third">第三个盒子</div>
- </div>
- </body>
- </html>
position: static; 的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位:
position: relative;
的元素相对于其正常位置进行定位。
- #first{
- border: 1px #000000 solid;
- background: aqua;
- position: relative;
- top:-20px;
- }
left:30px 图片向右移
right:-30px 图片向右移
相对于原来的位置进行指定的偏移
设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。
效果图:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- p{
- background: #339900;
- }
- .box{
- border: 1px blue solid;
- height: 100px;
- width: 100px;
- position: fixed;
- margin: 200px;
- }
- .box1{
- height: 50px;
- width: 50px;
- border: 1px blue solid;
- position: absolute;
- top:20px;
- left: 20px;
- }
- </style>
- </head>
- <body>
- <div class="box">
- <div class="box1"></div>
- </div>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- <p>a</p>
- </body>
- </html>
涉及知识点:
position 属性规定元素的定位类型。
可能的值
值 | 描述 |
---|---|
absolute | 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
fixed | 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
relative | 生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。 |
static | 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 |
inherit | 规定应该从父元素继承 position 属性的值。 |
使用 CSS3 border-radius 属性,你可以给任何元素制作 “圆角”。
属性 描述
border-radius 所有四个边角 border-radius 属性的缩写。
border-top-left-radius 定义了左上角的弧度。
border-top-right-radius 定义了右上角的弧度。
border-bottom-right-radius 定义了右下角的弧度。
border-bottom-left-radius 定义了左下角的弧度。
效果图:
涉及知识点:
向 div 元素添加圆角边框:border-radius:50%;
如何添加图标
向 HTML 页面添加图标的最简单方法是使用图标库,比如 Font Awesome。
将指定的图标类的名称添加到任何行内 HTML 元素(如 <i> 或 <span>)。
下面的图标库中的所有图标都是可缩放矢量,可以使用 CSS进行自定义(大小、颜色、阴影等)。
<script src="https://kit.fontawesome.com/yourcode.js"></script>
Google 图标
如需使用 Google 图标,请在HTML页面的 <head> 部分中添加以下行:
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
四种链接状态分别是:
a:link
- 正常的,未访问的链接a:visited
- 用户访问过的链接a:hover
- 用户将鼠标悬停在链接上时a:active
- 链接被点击时图层~
z-index:默认是0,最高无限~999
js引擎
js组成
当我们读到一行js代码,js引擎就会转化成二进制语言,然后计算机去运行。然后再读到另一行js代码,再转再执行。逐行执行的语言称为脚本语言
最简单的javaScript脚本
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script>
- alert('hello world');
- </script>
- </head>
- <body>
-
- </body>
- </html>
外部引入
第一种
例子1
效果图:
第二种
例子2
效果图:
例子3
效果图:
第三种,js文件引入
例子1
效果图:
例子2
效果图:
效果图:
效果图:
变量是一个容器,用来存放数据的。声明变量的本质是去内存申请空间。
定义变量 变量类型 变量名 =变量值; var num=1;
代码
把输入的内容保存到变量中,再弹出来;
更新变量:一个变量被重新赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准
同时声明多个变量:只需写一个var,多个变量名之间使用英文逗号隔开
声明变量特殊情况:1、只声明不赋值输出undefined(未定义的)2、未声明未赋值,报错 3、不声明直接赋值,可以使用
变量的数据类型
js把数据类型分为两类:1、简单数据类型(number,string,boolean,undefined,null)2、复杂数据类型(object)
效果图:
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof NaN // 返回 "number" typeof false // 返回 "boolean" typeof [1,2,3,4] // 返回 "object" typeof {name:'Bill', age:19} // 返回 "object" typeof new Date() // 返回 "object" typeof function () {} // 返回 "function" typeof myCar // 返回 "undefined" * typeof null // 返回 "object"
效果图:
prompt取过来的值是 字符型的
效果图:
undefined
和 null
值相等但类型不同:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
===值相同 类型相同 ==值相同
<script> // 严格检查格式 'use strict' alert('hello world'); </script>
效果图:
转移字符要写到“ ”里面
案例
效果图:
只要有字符串和其他类型相拼接 最终的结果是字符串类型
案例
效果图:
效果图:
通过颜色判断数据类型
效果图:
BigInt 变量用于存储太大而无法用普通 JavaScript 数字表示的大整数值。
JavaScript 整数最多只能精确到 15 位:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p id="demo"></p>
-
- <script>
- let x = 999999999999999;
- let y = 9999999999999999;
- document.getElementById("demo").innerHTML = x + "<br>" + y;
- </script>
-
- </body>
- </html>
如何创建 BigInt
如需创建 BigInt,可以在整数末尾添加 n
,或调用 BigInt()
函数:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p id="demo"></p>
-
- <script>
- let x = 9999999999999999;
- let y = 9999999999999999n;
- let z = BigInt("9999999999999999")
- document.getElementById("demo").innerHTML = x + "<br>" + y+ "<br>" + z;
- </script>
-
- </body>
- </html>
BigInt 的 JavaScript 类型是 "bigint
"
BigInt 不能有小数。
- let x = 5n;
- let y = x / 2;
- // Error: Cannot mix BigInt and other types, use explicit conversion.
- let x = 5n;
- let y = Number(x) / 2;
效果图:
案例
用户输入第一个值后,继续输出第二个输入框并输入第二个值,最后通过弹出窗口显示出两次输入值相加的结果
++num;
--num;
后置:先返回原值 后自加1
前置:先自加1,后返回值
a===b:要求值和数据类型都一致
效果图:
逻辑中断逻辑与
代码
效果图:
数组定义方式
js中数组的定义:
格式:
var 数组名=[]; //空数组
var 数组名=[1,‘abc’,true]; //定义数组同时赋值元素
效果图:
1、slice()截取Array的一部分,返回一个新数组,类似于String中的substring arr.slice(1,5); (4)[2,3,4,5] 2、push,pop arr.push('a','b');//压入尾部 arr.pop();//弹出尾部的一个元素 3、unshift(),shift()头部 unshift 压入头部 shift 弹出头部的一个元素 4、排序sort (3)["B","C","A"] arr.sort() (3)["A","B","C"] 5、元素翻转 (3)["A","B","C"] arr.reverse() (3)["B","C","A"] 6、concat() (3)["B","C","A"] arr.concat([1,2,3])
- var age=[12,3,4,65,754,5,77,32,65];
-
- //for(var index in object){}
- for(var num in age){
- if(age.hasOwnProperty(num)){
- console.log("存在")
- console.log(age[num])}
- }
- var map=new Map([['tom',100],['jack',90],['haha',80]]);
- var name=map.get('tom');//通过key获取value
- map.set('admin',123456);
- console.log(name);
map.delete("tom")//删除
- var set=new Set([3,1,1,1,1]);//set可以去重
- set.add(2)
- var set=new Set([3,1,1,1,1]);//set可以去重
- set.delete(2)
无序不重复的集合 set.add(2);//添加 set.delete(1);//删除 console.log(set.has(3));//是否包含某个元素
- <script>
- 'use strict'
- //遍历数组
- var arr=[3,4,5]
- for(let x of arr){
- console.log(x)
- }
-
- //遍历map
- var map=new Map([["tom,80"],["jack",100],["haha",30]])
- for(let x of map){
- console.log(x)
- }
-
- //遍历set
- var set = new Set([5,6,7]);
- for(let x of set){
- console.log(x)
- }
- </script>
函数的二种定义方式
第一种,可以使用function关键字来定义函数
使用格式如下:
- function 函数名(形参列表){
- 函数体
- }
-
- fun();//函数调用 函数调用才会执行
- function fun(){
-
- alert("无参调用")
-
- }
-
- fun();
- function fun2(a,b){
-
- alert(“有参函数调用”)
-
- }
-
- fun(12,"abc");
在JS语言中,如何定义带有返回值的函数?
只需要在函数体内直接使用return语句返回值即可!
效果图:
函数表达式可以在变量中存储:
第二种定义方式,格式如下:
- var 函数名 = function(形参列表){
-
- 函数体
-
- }
- var fun=function(){
-
- alert("无参函数");
-
- }
-
- fun();
- var fun2=function(a,b){
-
- alert("有参函数a="+a+",b="+b);
-
- }
-
- fun2(1,2);
- var fun3=function(num1,num2){
-
- renturn num1+num2;
-
- }
-
- alert(fun3(100,200));
效果图:
Function() 构造器
正如您在之前的例子中看到的,JavaScript 函数是通过 function
关键词定义的。
函数也可以通过名为 Function()
的内建 JavaScript 函数构造器来定义。
- var myFunction = new Function("a", "b", "return a * b");
-
- var x = myFunction(4, 3);
实际上无需使用函数构造器。上面的例子这么写也是一样的:
- var myFunction = function (a, b) {return a * b};
-
- var x = myFunction(4, 3);
注:在JAVA中函数允许重载。但是在JS中函数的重载会直接覆盖掉上一次的定义
效果图:
arguments代表传递进来的所有参数,是一个数组
就是在function函数中不需要定义,但却可以直接用来获取所有参数的变量。我们管它叫隐形参数
隐形参数特别像JAVA基础的可变长参数一样。
public void fun(Object ...args);
可变长参数其他是一个数组;
那么js中的隐形参数也跟java的可变长参数一样。操作类似数组。
在 JavaScript 中有两种作用域类型:
JavaScript 拥有函数作用域:每个函数创建一个新的作用域。
作用域决定了这些变量的可访问性(可见性)。
函数内部定义的变量从函数外部是不可访问的(不可见的)。
局部 JavaScript 变量
在 JavaScript 函数中声明的变量,会成为函数的局部变量。
局部变量的作用域是局部的:只能在函数内部访问它们。
- // 此处的代码不能使用 carName 变量
-
- function myFunction() {
- var carName = "porsche";
-
- // 此处的代码能使用 carName 变量
-
- }
全局 JavaScript 变量
函数之外声明的变量,会成为全局变量。
全局变量的作用域是全局的:网页的所有脚本和函数都能够访问它。
- var carName = " porsche";
-
-
- // 此处的代码能够使用 carName 变量
-
- function myFunction() {
-
- // 此处的代码也能够使用 carName 变量
-
- }
自动全局
如果您为尚未声明的变量赋值,此变量会自动成为全局变量。
这段代码将声明一个全局变量 carName,即使在函数内进行了赋值。
- myFunction();//变量
-
-
- // 此处的代码能够使用 carName 变量
-
- function myFunction() {
- carName = "porsche";
- }
- 'use strict'
- function qj(){
- var x=1;
- x=x+1;
- }
- x=x+2;//Uncaught ReferenceError: x is not defined
在js中 var定义变量实际是有作用域的 假设在函数体中声明,则在函数体外不可以使用
- function qj(){
- var x=1;
- x=x+1;
- }
-
- function qj(){
- var x='A';
- x=x+1;
- }
如果两个函数使用了相同的变量名,只要在函数内部,就不冲突
假设外部存在同名的函数变量,则内部函数会屏蔽外部函数的变量
JavaScript 块作用域
通过 var
关键词声明的变量没有块作用域。
在块 {} 内声明的变量可以从块之外进行访问。
- {
- var x = 10;
- }
- // 此处可以使用 x
在 ES2015 之前,JavaScript 是没有块作用域的。
可以使用 let
关键词声明拥有块作用域的变量。
在块 {} 内声明的变量无法从块外访问:
- {
- let x = 10;
- }
- // 此处不可以使用 x
重新声明变量
使用 var
关键字重新声明变量会带来问题。
在块中重新声明变量也将重新声明块外的变量:
- var x = 10;
- // 此处 x 为 10
- {
- var x = 6;
- // 此处 x 为 6
- }
- // 此处 x 为 6
使用 let
关键字重新声明变量可以解决这个问题。
在块中重新声明变量不会重新声明块外的变量:
- var x = 10;
- // 此处 x 为 10
- {
- let x = 6;
- // 此处 x 为 6
- }
- // 此处 x 为 10
循环作用域
在循环中使用 var
:
- var i = 7;
- for (var i = 0; i < 10; i++) {
- // 一些语句
- }
- // 此处,i 为 10
在循环中使用 let
:
- let i = 7;
- for (let i = 0; i < 10; i++) {
- // 一些语句
- }
- // 此处 i 为 7
HTML 中的全局变量
使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。
在 HTML 中,全局作用域是 window 对象。
通过 var
关键词定义的全局变量属于 window 对象:
- <!DOCTYPE html>
- <html>
- <body>
-
-
- <p id="demo"></p>
-
- <script>
- var carName = "Audi";
-
- // 此处的代码能够使用 window.carName
- document.getElementById("demo").innerHTML = "我可以显示 " + window.carName;
- </script>
-
- </body>
- </html>
通过 let
关键词定义的全局变量不属于 window 对象:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p id="demo"></p>
-
- <script>
- let carName = "Audi";
-
- // 此处的代码能够使用 window.carName
- document.getElementById("demo").innerHTML = "我不能显示 " + window.carName;
- </script>
-
- </body>
- </html>
重新声明
允许在程序的任何位置使用 var
重新声明 JavaScript 变量:
- var x = 10;
-
- // 现在,x 为 10
-
- var x = 6;
-
- // 现在,x 为 6
在相同的作用域,或在相同的块中,通过 let
重新声明一个 var
变量是不允许的:
- var x = 10; // 允许
- let x = 6; // 不允许
-
- {
- var x = 10; // 允许
- let x = 6; // 不允许
- }
在相同的作用域,或在相同的块中,通过 let
重新声明一个 let
变量是不允许的:
- let x = 10; // 允许
- let x = 6; // 不允许
-
- {
- let x = 10; // 允许
- let x = 6; // 不允许
- }
在相同的作用域,或在相同的块中,通过 var
重新声明一个 let
变量是不允许的:
- let x = 10; // 允许
- var x = 6; // 不允许
-
- {
- let x = 10; // 允许
- var x = 6; // 不允许
- }
在不同的作用域或块中,通过 let
重新声明变量是允许的:
- let x = 6; // 允许
-
- {
- let x = 7; // 允许
- }
-
- {
- let x = 8; // 允许
- }
通过 const
定义的变量与 let
变量类似,但不能重新赋值:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p id="demo"></p>
-
- <script>
- try {
- const PI = 3.141592653589793;
- PI = 3.14;
- }
- catch (err) {
- document.getElementById("demo").innerHTML = err;
- }
- </script>
-
- </body>
- </html>
常量对象可以更改
您可以更改常量对象的属性:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p>声明常量对象不会使对象属性不可更改:</p>
-
- <p id="demo"></p>
-
- <script>
- // 创建对象:
- const car = {type:"Porsche", model:"911", color:"white"};
-
- // 更改属性:
- car.color = "red";
-
- // 添加属性:
- car.owner = "Steve";
-
- // 显示属性:
- document.getElementById("demo").innerHTML = "车主是:" + car.owner+",车颜色是:" + car.color;
- </script>
-
- </body>
- </html>
常量数组可以更改
您可以更改常量数组的元素:
- <!DOCTYPE html>
- <html>
- <body>
-
-
- <p id="demo"></p>
-
- <script>
- // 创建数组:
- const cars = ["Audi", "BMW", "Porsche"];
-
- // 更改元素:
- cars[0] = "Toyota";
-
- // 添加元素:
- cars.push("Honda");
-
- // 显示数组:
- document.getElementById("demo").innerHTML = cars;
- </script>
-
- </body>
- </html>
但是您无法重新为常量数组赋值:
- const cars = ["Audi", "BMW", "porsche"];
- cars = ["Honda", "Toyota", "Volvo"]; // ERROR
Object形式的自定义对象
---------------------------------------------------------
对象的定义:
var 变量名=new Object();//对象实例(空对象)
变量名.属性名=值; //定义一个属性
变量名.函数名 = finctoion(){}//定义一个函数
---------------------------------------------------------
对象的访问:
变量名.属性名/函数名();
--------------------------------------------------------
- function getAge(){
- //今年-出生年
- var now=new Date().getFullYear();
- return now-this.bitrh
- }
-
- var kuangshen = {
- name:'哈哈',
- bitrh:2000,
- age:getAge
- };
- var xiaoming = {
- name:'小明',
- bitrh:2000,
- age:getAge
- };
-
- getAge.apply(kuangshen,[]);
在真实生活中,汽车是一个对象。
汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法:
属性 | 方法 |
car.name = porsche | car.start() |
car.model = 911 | car.drive() |
car.length = 4499mm | car.brake() |
car.color = white | car.stop() |
var car = {type:"porsche", model:"911", color:"white"};
访问对象属性
- 例子1:person.lastName;
- 例子2:person["lastName"];
访问对象方法
person.fullName();
1.使用一个不存在的对象属性,不会报错!underfined person.haha underfined 2.动态的删除属性,通过delete删除对象的属性 delete person.name true peson 3.动态的添加,直接给新的属性添加即可 person.haha="haha" “haha” person 4.判断属性一个是否在这个对象中,xxx in xxx! 'toString' in person true 5.判断一个属性是否是这个对象自身拥有的hasOwnProperty() person.hasOwnProperty('toString') false person.hasOwnProperty('age') true
--------------------------------------------------------
对象的定义:
var 变量名 = { //空对象
属性名:值, //定义一个属性
属性名:值, //定义一个属性
函数名:function(){}
};
注:每一个属性以逗号隔开
------------------------------------------------------------
- var now=new Date();
- now.getFullYear();//年
- now.getMonth();//月
- now.getDate();//日
- now.getDay();//星期几
- now.getHours();//时
- now.getMinutes();//分
- now.getSeconds();//秒
-
- now.getTime();
JSON 是存储和传输数据的格式。
JSON 经常在数据从服务器发送到网页时使用。
什么是 JSON?
- JSON 指的是 JavaScript Object Notation
- JSON 是轻量级的数据交换格式
- JSON 独立于语言 *
- JSON 是“自描述的”且易于理解
* JSON 的语法是来自 JavaScript 对象符号的语法,但 JSON 格式是纯文本。读取和生成
JSON 数据的代码可以在任何编程语言编写的。
JSON 格式评估为 JavaScript 对象
JSON 格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,JavaScript 程序可以很容易地将 JSON 数据转换成本地的 JavaScript 对象。
JSON 语法规则
"firstName":"Bill"
JSON 名称需要双引号。JavaScript 名称不需要。
JSON 对象
JSON 对象是在花括号内书写的。
类似 JavaScript,对象能够包含多个名称/值对:
{"firstName":"Bill", "lastName":"Gates"}
JSON 数组
JSON 数组在方括号中书写。
类似 JavaScript,数组能够包含对象:
- "employees":[
- {"firstName":"Bill", "lastName":"Gates"},
- {"firstName":"Steve", "lastName":"Jobs"},
- {"firstName":"Alan", "lastName":"Turing"}
- ]
在上面的例子中,对象 "employees" 是一个数组。它包含了三个对象。
通过 id 查找 HTML 元素
DOM 中查找 HTML 元素最简单的方法是,使用元素的 id。
本例查找 id="intro" 的元素:
- <!DOCTYPE html>
- <html>
- <body>
-
- <h1>通过 id 查找 HTML 元素</h1>
-
- <p id="intro">Hello World!</p>
-
- <p>本例演示 <b>getElementsById</b> 方法。</p>
-
- <p id="demo"></p>
-
- <script>
- var myElement = document.getElementById("intro");
- document.getElementById("demo").innerHTML =
- "来自 intro 段落的文本是:" + myElement.innerHTML;
- </script>
-
- </body>
- </html>
如果元素被找到,此方法会以对象返回该元素(在 myElement 中)。
如果未找到元素,myElement 将包含 null
。
通过标签名查找 HTML 元素
本例查找所有 <p>
元素:
- <!DOCTYPE html>
- <html>
- <body>
-
-
-
- <p>Hello World!</p>
-
- <p id="demo"></p>
-
-
- <script>
- var x = document.getElementsByTagName("p");
- document.getElementById("demo").innerHTML =
- '第一段中的文本 (index 0) 是:' + x[0].innerHTML;
- </script>
-
- </body>
- </html>
Document 对象中的方法介绍
效果图:
HTML DOM 方法是您能够(在 HTML 元素上)执行的动作。
HTML DOM 属性是您能够设置或改变的 HTML 元素的值。
DOM 编程界面
HTML DOM 能够通过 JavaScript 进行访问(也可以通过其他编程语言)。
在 DOM 中,所有 HTML 元素都被定义为对象。
属性是您能够获取或设置的值(就比如改变 HTML 元素的内容)。
方法是您能够完成的动作(比如添加或删除 HTML 元素)。
- <html>
- <body>
-
- <p id="demo"></p>
-
- <script>
- document.getElementById("demo").innerHTML = "Hello World!";
- </script>
-
- </body>
- </html>
getElementById 方法
访问 HTML 元素最常用的方法是使用元素的 id。
在上面的例子中,getElementById
方法使用 id="demo" 来查找元素。
innerHTML 属性
获取元素内容最简单的方法是使用 innerHTML
属性。
innerHTML
属性可用于获取或替换 HTML 元素的内容。
innerHTML
属性可用于获取或改变任何 HTML 元素,包括 <html>
和 <body>
。
更新DOM结点
<div id="id1"></div>
修改不了文本的属性
id1.innerText='<strong>123</strong>'
'<strong>123</strong>'
删除结点
删除结点的步骤:先获取父结点,通过父结点删除自己
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script>
- var self=document.getElementById('p1');
- </script>
- </head>
- <body>
-
- <div id="father">
- <h1>标题一</h1>
- <p id="p1">p1</p>
- <p class="p2">p2</p>
- </div>
-
- </body>
- </html>
p1.parentElement 获得父节点
father.removeChild(p1) 移除子结点
father.removeChild(father.childern[0])
删除多个结点的时候,children是在变化的
创建和插入dom结点
我们获得某个dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素,但是这个dom节点已经存在元素了,我们就不能这么干了,会覆盖
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script>
- var js=document.getElementById('js');
- var list=document.getElementById('list');
- </script>
- </head>
- <body>
-
- <p id="js">javascript</p>
- <div id="list">
- <p id="se">javase</p>
- <p id="ee">javaee</p>
- <p id="me">javame</p>
- </div>
- </div>
- </body>
- </html>
list.appendChild(js)
可以把id=js的元素放到最后
创建一个新的标签
- var newP=document.createElementById('p');
- newP.id='newP';
- newP.innerText='hello';
- list.appendChild(newP);
- //通过这个属性 可以设置任意的值
- var myScript=document.createElement('Script');
- myScript.setAttribute('type','text/javascript');
获得和设置表单的值
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script>
- var input_text=document.getElementById('username');
- var boy=document.getElementById('boy');
- var girl=document.getElementById('girl');
- //得到输入框的值
- //input_text.value
- //修改输入框的值
- //input_text.value='123'
- //boy.value
-
- //对于单选框,多选框等待固定值 noy.value只能取到当前的值
- boy.checked;//查看返回的结果,是否为true 如果为true 则被选中
- girl.checked=true;//赋值
- </script>
- </head>
- <body>
- <form action="post">
- <p>
- <span>用户名:</span><input type="text" id="username">
- </p>
- <p>
- <span>性别:</span>
- <input type="radio" name="sex" value="man" id="boy">男
- <input type="radio" name="sex" value="woman" id="gril">女
- </p>
- </form>
- </body>
- </html>
什么是事件?事件是电脑输入设备与页面进行交互的响应
HTML 事件是发生在 HTML 元素上的“事情”。
- <!DOCTYPE html>
- <html>
- <body>
-
- <h1>JavaScript 事件</h1>
-
- <button onclick="document.getElementById('demo').innerHTML=Date()">时间是?</button>
-
- <p id="demo"></p>
-
- </body>
- </html>
在上面的例子中,JavaScript 代码改变了 id="demo" 的元素的内容。
在接下来的例子中,代码(使用 this.innerHTML
)改变了其自身元素的内容:
- <!DOCTYPE html>
- <html>
- <body>
-
- <h1>JavaScript 事件</h1>
-
- <button onclick="this.innerHTML=Date()">时间是?</button>
-
- </body>
- </html>
onclick事件
- <!DOCTYPE html>
- <html>
- <body>
-
- <h1 onclick="this.innerHTML='谢谢!'">请点击此文本!</h1>
-
- </body>
- </html>
从事件处理程序调用函数:
- <!DOCTYPE html>
- <html>
- <body>
-
- <h1 onclick="changeText(this)">请点击此文本!</h1>
-
- <script>
- function changeText(id) {
- id.innerHTML = "谢谢!";
- }
- </script>
-
- </body>
- </html>
静态注册
动态注册
效果图:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p>请点击按钮来显示日期。</p>
-
- <button onclick="displayDate()">时间是?</button>
-
- <script>
- function displayDate() {
- document.getElementById("demo").innerHTML = Date();
- }
- </script>
-
- <p id="demo"></p>
-
- </body>
- </html>
在上例中,名为 displayDate 的函数会在按钮被点击时执行。
使用 HTML DOM 分配事件
HTML DOM 允许您使用 JavaScript 向 HTML 元素分配事件:
为 button 元素指定 onclick
事件:
- <!DOCTYPE html>
- <html>
- <body>
-
- <p>请点击“试一试”按钮,以执行 displayDate() 函数。</p>
-
- <button id="myBtn">试一试</button>
-
- <p id="demo"></p>
-
- <script>
- document.getElementById("myBtn").onclick = displayDate;
-
- function displayDate() {
- document.getElementById("demo").innerHTML = Date();
- }
- </script>
-
- </body>
- </html>
onload事件
onload 和 onunload 事件
当用户进入后及离开页面时,会触发 onload
和 onunload
事件。
onload
事件可用于检测访问者的浏览器类型和浏览器版本,然后基于该信息加载网页的恰当版本。
onload
和 onunload
事件可用于处理 cookie。
- <!DOCTYPE html>
- <html>
- <body onload="checkCookies()">
-
- <p id="demo"></p>
-
- <script>
- function checkCookies() {
- var text = "";
- if (navigator.cookieEnabled == true) {
- text = "Cookie 已启用";
- } else {
- text = "Cookie 未启用";
- }
- document.getElementById("demo").innerHTML = text;
- }
- </script>
-
- </body>
- </html>
效果图:
效果图:
失去焦点事件: 常用用于输入框失去焦点后验证其输入内容是否合法。
效果图:
内容发生改变事件: 常用于下拉列表和输入框内容发生改变后操作
- <!DOCTYPE html>
- <html>
- <head>
- <script>
- function myFunction() {
- var x = document.getElementById("fname");
- x.value = x.value.toUpperCase();
- }
- </script>
- </head>
- <body>
-
- 请输入您的名字:<input type="text" id="fname" onchange="myFunction()">
-
- <p>离开输入字段时,会触发一个函数,将输入文本转换为大写。</p>
-
- </body>
- </html>
效果图:
动态
效果图:
效果图:
onmouseover 和 onmouseout 事件
onmouseover移上来
- <!DOCTYPE html>
- <html>
- <body>
-
- <div onmouseover="mOver(this)" onmouseout="mOut(this)"
- style="background-color:#D94A38;width:120px;height:20px;padding:40px;">
- 点击有奖</div>
-
- <script>
- function mOver(obj) {
- obj.innerHTML = "骗你的"
- }
-
- function mOut(obj) {
- obj.innerHTML = "拜拜咯"
- }
- </script>
-
- </body>
- </html>
onmousedown, onmouseup 以及 onclick 事件
onmousedown
, onmouseup
以及 onclick
事件构成了完整的鼠标点击事件。
首先当鼠标按钮被点击时,onmousedown
事件被触发;然后当鼠标按钮被释放时,onmouseup
事件被触发;最后,当鼠标点击完成后,onclick
事件被触发。
- <!DOCTYPE html>
- <html>
- <body>
-
- <div onmousedown="mDown(this)" onmouseup="mUp(this)"
- style="background-color:#D94A38;width:90px;height:20px;padding:40px;">
- 点击鼠标</div>
-
- <script>
- function mDown(obj) {
- obj.style.backgroundColor = "#1ec5e5";
- obj.innerHTML = "你已按下,可松开";
- }
-
- function mUp(obj) {
- obj.style.backgroundColor="#D94A38";
- obj.innerHTML="已松开";
- }
- </script>
-
- </body>
- </html>
方括号
[abc] //查找方括号之间的任何字符
[^abc] //查找任何不在方括号之间的字符
[0-9] //查找0到9的数字
[a-z] //查找任何从小写a到小写z的字符
[A-Z] //查找任何从大写A到大写Z的字符
[A-z] //查找任何从大写A到小写z的字符
[adgk] //查找给定集合内的任何字符
[^adgk] //查找给定集合外的任何字符
(red|blue|green) //查找任何指定的选项
元字符
元字符(Metacharacter) 是拥有特别含义的字符
: //查找单个字符,除了换行和行结束符
\w //查找单词字符(单词字符包括:a-z、A-Z、0-9,以及下划线,包括_(下划线)字符)
\W //查找非单词字符
\d //查找数字
\D //查找空白字符
\s //查找空白字符
\S //查找非空白字符
Cookie 让您在网页中存储用户信息。
什么是 cookie?
Cookie 是在您的计算机上存储在小的文本文件中的数据。
当 web 服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切。
Cookie 是为了解决“如何记住用户信息”而发明的:
当浏览器从服务器请求一个网页时,将属于该页的 cookie 添加到该请求中。这样服务器就获得了必要的数据来“记住”用户的信息。
如果浏览器已关闭本地 cookie 支持,则以下实例均无法工作。
通过 JavaScript 创建 cookie
JavaScript 可以用 document.cookie
属性创建、读取、删除 cookie。
通过 JavaScript,可以这样创建 cookie:
document.cookie = "username=Bill Gates";
您还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:
document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC";
通过 path
参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。
document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";
通过 JavaScript 读取 cookie
通过 JavaScript,可以这样读取 cookie:
var x = document.cookie;
document.cookie
会在一条字符串中返回所有 cookie,比如:cookie1=value; cookie2=value; cookie3=value;
通过 JavaScript 改变 cookie
通过使用 JavaScript,你可以像你创建 cookie 一样改变它:
document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";
通过 JavaScript 删除 cookie
删除 cookie 非常简单。
删除 cookie 时不必指定 cookie 值:
直接把 expires
参数设置为过去的日期即可:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
设置 cookie 的函数
首先,我们创建一个函数,将访问者的名字存储在 cookie 变量中:
- function setCookie(cname, cvalue, exdays) {
- var d = new Date();
- d.setTime(d.getTime() + (exdays*24*60*60*1000));
- var expires = "expires="+ d.toUTCString();
- document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
- }
上面这个函数的的参数是:cookie 的名字(cname),cookie 的值(cvalue),以及知道 cookie 过期的天数(exdays)。
通过把 cookie 名称、cookie 值和过期字符串相加,该函数就设置了 cookie。
获取 cookie 的函数
然后,我们创建一个函数返回指定 cookie 的值:
- function getCookie(cname) {//把 cookie 作为参数(cname)
- var name = cname + "=";//创建变量(name)与要搜索的文本(CNAME”=”)。
-
- //解码 cookie 字符串,处理带有特殊字符的 cookie,例如 “$”。
- var decodedCookie = decodeURIComponent(document.cookie);
-
- //用分号把 document.cookie 拆分到名为 ca(decodedCookie.split(';'))的数组中。
- var ca = decodedCookie.split(';');
-
- //遍历 ca 数组(i = 0; i < ca.length; i++),然后读出每个值 c = ca[i]。
- for(var i = 0; i <ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') {
- c = c.substring(1);
- }
-
-
- //如果找到 cookie(c.indexOf(name) == 0),则返回该 cookie 的值(c.substring(name.length, c.length)。
- if (c.indexOf(name) == 0) {
- return c.substring(name.length, c.length);
- }
- }
- return "";//如果未找到 cookie,则返回 ""。
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。