HTML学习总结

网页与HTML的关系

1、关于网页

    1)在浏览器中输入网址, 打开一个网页

    2)手机淘宝 与 微信小程

常见浏览器

firefoxEdgeSafariChromeQQIEoperaUC
桌面端7.86%10.07%9.61%66.64%---0.97%2.43%---
移动端------14.78%55.88%8.41%------17.74%

为什么一个网站在不同浏览器中显示内容相同

因为HTML语言定义了相同的格式,即便是在不同的浏览器下也能解析为相同的内容

2、关于html

1、打开一个html文件

网页是网站中的单独页面,而网页文件的格式通常是HTML

网页时构成网站的基本元素,它通常是由图片、链接、文字、声音、视频等元素组成

网页通常格式以 .htm 或者 .html 后缀结尾的文件,通常也叫HTML文件

2、HTML 是超文本标记语言(Hyper Text Markup Language)

描述网页的一种语言,不是编程语言,而是一种标记语言(创建文本写网页图片)

超文本:

1、呈现内容上超越了传统文本 有图片、声音、多媒体等内容(超越了文本)

2、可以从一个文件跳转到另一个文件

3、网页加载过程

前端人员开发代码 -> 浏览器显示代码(解析、渲染)-> 生成Web页面

web标准的指定

Web标准是由W3C组织和其他标准化组织指定的一系列标准的集合。

W3C(万维网联盟)是国际最著名的标准化组织

(1)那为什么要定这样的标准

浏览器不同,它们显示页面的标准必须统一,要求开发人员编写代码必须统一

除此之外,让Web的发展前景更广、内容能被广泛的设备访问、更容易被搜索引擎搜索、降低网站流量费用、网站更易于维护、提高页面浏览速度.

(2)网页标准的组成

主要包括结构、表现、行为

标准说明
结构结构用于对网页元素进行整理和分类,现阶段主要学习的是HTML
表现表现用于设置网页元素的版式、颜色、大小等外观样式,主要指CSS
行为行为是指网页模型的定义以及交互的编写,现阶段主要学习为JavaScript

Web标准的最佳方案就是 结构、表现和行为相互分离(各自在对应文件中编写代码)

例如:(食堂分工)

一个简单的网页

一.基本语法概述

1、HTML标签是由尖括号包围的关键词,例如<html>

2、HTML标签通常是成对出现的,例如<html> 和 </html>,我们称为双标签。标签对中的第一个标签是开始标签,第二个标签是结束标签。

3、有些特殊标签必须是单个标签(很少),例如<br />,我们称为单标签

二.标签关系

包含关系、并列关系

三.基本结构

<html>
    <head>
        <title>Hello页面</title>
    </head>
    <body>
        专业Hello 语句
    </body>
</html>

每一个网页都有结构标签(骨架标签),页面内容也是在这些基本标签上书写的

标签名定义说明
<html></html>HTML标签页面中最大标签,我们称为根标签
<head></head>文档的头部在head标签中必须设置的标签为title
<title></title>文档的标题让页面拥有一个属于自己的网页标题
<body><body>文档的主体元素包含文档的所有内容,页面内容基本都是放到body中的

1、标题标签 <h1> - <h6> (*)

在网页中经常会使用到标题标签,HTML提供了6个等级的网页标题即<h1>~<h6>

<h1>我是一级标题</h1>

特点:

加了标题的文字会变得加粗,字号也会依数字变小变大;一个标题独占一行。

2、段落和换行标签(*)

将网页中的文字分段显示出来,HTML中<P>标签用于定义段落,将网页分成若干段

<p>我是一个段落</p>

特点:

文本可以随着浏览器的窗口大小,自动换行;段落彼此间有空隙

段落中的文字一般会从左往右依次排序,直到右端窗口位置换行。如果需要换行,则应使用换行标签<br />

<br />

特点:

单标签、段落有间隙,换行就是新的一行。

3、文本格式化标签

网页中文字的粗体、斜体或下划线等效果,就要用HTML格式化标签,使文字以特殊的方式显示。

语义标签说明
加粗<strong></strong>或者<b></b>更推荐使用<strong> 标签加粗 语义更强烈
倾斜<em></em>或者<i></i>更推荐使用<em> 标签倾斜 语义更强烈
删除线<del></del>或者<s></s>更推荐使用<del> 标签删除线 语义更强烈
下划线<ins></ins>或者<u></u>更推荐使用<ins> 标签下划线语义更强烈

4、<div>和<span>标签(**)

和是没有语义的标签,它们都是盒子,用来装内容

<div>我是一个大盒子</div>
<span>我是一个小盒子</span>

特点:

<div>标签用来布局,但是现在一行只能放一个<div>。 通俗来说大盒子

<span>标签用来布局,一行上可以多个<span>。小盒子

5、图像标签和路径(**)

在HTML标签中, img 标签用于定义HTML 页面中的图像

<img src="图像URL"/>

src是img标签必须的属性,用于指定图像文件的路径和文件名

所谓属性:就是属于这个标签的特性

图像标签的其他属性

属性属性值说明
src图片路径必须属性
alt文本替换文本。图像不能显示的文字
title文本提示文本。鼠标放到图像上,显示文字
width像素设置图像的宽度
height像素设置图像的高度
border像素设置图像的边框粗细

注意:

图像标签可以拥有多个属性,必须写在标签名的后面;

属性之间不分先后顺序,标签名与属性,属性与属性之间均以空格分开

属性采取键值对的格式,即key =“value” 的格式,属性=“属性值”

问题:图像标签哪个属性是必须要写的;图像标签中的alt和title属性区别

路径:

1)相对路径:以引用文件所在位置为参考基础,而建立出的目录路径

相对路径分类符号说明
同一级路径图像文件位于HTML文件同一级
下一级路径/图像文件位于HTML文件下一级
上一级路径../图像文件位于HTML文件上一级

2)绝对路径:是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径

6、超链接标签(**)

1)链接的语法格式

<a href="跳转目标" target="目标窗口的弹出方式">文本或者图像</a>

anchor 锚

属性作用

属性作用
href用于指定链接目标的url地址,(必须属性)当为标签应用href属性时,它就具有了超链接的功能
target用于指定链接页面的打开方式,其中self为默认值,blank为在新窗口中打开方式

2)链接的分类

外部链接:外部网络地址 百度一下,你就知道

内部链接: index.html

空链接: #

下载链接: 链接中带文件或者压缩包

网页元素:网页中的各种元素,文本、图像、表格、音频、视频等都可以添加超链接

锚点链接:通过链接可以快速定位到页面中的指定位置 (href = "#元素id属性")比如百度百科

基本标签

1、表格标签

1.1 表格标签主要作用

表格主要用于显示、展示数据,因为它可以让数据显示的非常规整,可读性非常好。

 

1.2 表格的基本语法

<table>
    <tr>
        <td>单元格中的文字</td>
        ......
    </tr>
</table>

1)<table></table>是用于定义表格的标签

2)<tr></tr> 标签用于定义表格中的行,必须嵌套在table中

3)<td></td> 用于定义表格中的单元格,必须嵌套在tr中

1.3 表头单元格标签

一般表头单元格位于表格的第一行或第一列,表头单元格里面的文本内容加粗居中显示。

<table>
    <tr>
        <th>项目</th>
        ......
    </tr>
</table> 

1.4 表格属性

属性名属性值描述
alignleft、center、right规定表格相对于周围元素的对齐方式
border数字值规定表格单元是否拥有边框,默认为0,表示没有边框,其余值越大外边界越宽。
cellpadding像素值规定单元边缘与内容之间的空白,默认1像素
cellspacing像素值规定单元格之间的空白,默认2像素
width像素值或百分比规定表格的宽度

1.5表格结构标签

表格标签中,分别用<thead> 标签 表格的头部区域、<tbody>标签 表格的主体区域, 可以分清楚表格的结构

注意:

1.<thead></thead> :用于定义表格的头部,<thead>内部必须有<tr>标签。一般是位于第一行

2.<tbody></tbody> : 用于定义表格的主体,主要用于放数据本体

3.以上的标签都需要在table标签中方能生效

1.6 合并单元格

1.合并单元格方式

  • 跨行合并:rowspan = “合并单元格的数量”

  • 跨列合并:colspan = "合并单元格的数量"

2.目标单元格

  • 跨行:最上侧单元格为目标单元格,写合并代码

  • 跨列:最左侧单元格为目标单元格,写合并代码

3.合并单元格的步骤流程

  • 先确定是跨行还是跨列

  • 找到目标单元格,写上合并方式 ,例如 <td colspan="2"></td>

  • 删除多余的单元格

2、标题标签

<body>

    只是没有标题标签的文字

    <h1>这是一级标题</h1>

    <h2>这是二级标题</h2>

    <h3>这是三级标题</h3>

    <h4>这是四级标题</h4>

    <h5>这是五级标题</h5>

    <h6>这是六级标题</h6>

</body>

    特点 :1、随着h标签的数字越来越大,然后标题的大小变小

                2、h标签 独占一行

通常来说 h1标签 在一个网页只定义一个,h1的内容是搜索引擎的关键字

   3、段落标签

<body>

        <p>内容1</p>

        <p>内容2</p>

</body>

说明:p标签可以划定一个段落

特点:p标签定义的段落之间有一个空隙,将所包裹的内容单独成段,随着窗口大小自动换行

4、换行标签

<body>

        <p>内容1 + </br>内容 </p> + </br>    

</body>

说明:br 标签是html中唯一可以换行的标签  实际开发中很多程序员会写成<br>

基本表格标签

1.表格的认识

<body>

    <!-- 表格标签 table 表格定义 -->

    <table>

        <!-- tr  table row 表格的一行 -->

        <tr>

            <!-- td table data 表格的数据 -->

            <!-- 包含关系 并列关系 -->

            <!-- <td><strong>项目</strong></td> -->

            <!-- 表头单元格 th table head 表头-->

            <th>项目</th>

            <th>单价(元)</th>

            <th>数量</th>

            <th>金额(元)</th>

        </tr>

        <!-- 数据新增一行,就在table中继续添加tr标记 -->

        <tr>

            <td>五年高考三年模拟</td>

            <td>29</td>

            <td>100</td>

            <td>2900</td>

        </tr>

    </table>

</body>

2.表格的属性

  •  table的属性 
  •  align 设置表格的水平位置 left 靠左  center 居中 right 靠右 
  •  border 设置表格的边框 边框为0时,没有单元格边框  边框为1时,就有单元格 
  •  cellpadding 设置内容 和单元格边界之间的举例 
  •  cellspacing 设置(单元格边界——表格外边界)
  •         (单元格边界-单元格边界),之间的距离 
  •  width 设置表格的宽度 属性值: 数字、
  •         百分比(相对于父元素的宽度值的百分数,父元素改变时,table也随之改变
  • 注意: border的内容就是数字没有单位,其余 width\cell...\cell.. 以像素为单位

3.有序和无序列表

<!--无序列表 双标签  -->
    <!-- ul中的li标签(列表项)没有顺序 -->
    <!-- ul中除了li标签外,不能防止任何文字或者元素标签 -->
    <!-- li中可以定义任意元素。 -->
    水果:
    <ul>
        <li>
            苹果
            <img src="./images/电影_movie.png" width="16px" height="16px">
        </li>
        <li>
            香蕉
            <!-- 二级列表 :一级列表的选项中嵌套一个列表 -->
            <ul>
                <li>台湾香蕉</li>
                <li>云南香蕉</li>
            </ul>
        </li>
        <li>西瓜</li>
    </ul>
<body>
    <!-- 有序列表 了解 -->
    <!-- ol中的li标签(列表项)有顺序的 -->
    <!-- ol中除了li标签外,不能防止任何文字或者元素标签 -->
    <!-- li中可以定义任意元素。 -->
    <ol>
        <li>选项1
            <ol>
                <li>选项1-1</li>
                <li>选项1-2</li>
            </ol>
        </li>
        <li>选项2</li>
        <li>选项3</li>
    </ol>
</body>

4.input表单元素

<body>
    <!-- 重要 : input表单元素 必须放置在表单域中 -->
    <form>
        <!-- 单标签:br hr -->
        <!-- 输入标签 -->
        <!-- input默认是一个输入框标签  input一行可以存在多个 -->
        <!-- <input /> -->

        <!-- input中type属性可以决定表单输入内容的类型 -->
        <!-- type="button" 按钮 可点击-->
        <!-- value="" 按钮的名称 -->
        <input type="button" value="这是一个按钮"/> <br />

        <!-- 复选框(多选框) -->
        <!-- type="checkbox" 例如:记住密码 -->
        <!-- 表单输入内容:键值对 name="" value="" -->
        <!-- <input type="checkbox" />记住密码 -->

        <!-- ArrayList add remove -->
        <!-- menu 集合 = ["红烧肉"] -->
        <input type="checkbox" name="menu" value="宫保鸡丁"/>宫保鸡丁<br />
        <input type="checkbox" name="menu" value="红烧肉"/>红烧肉<br />
        <input type="checkbox" name="menu" value="青椒肉丝"/>青椒肉丝<br />

        <!-- 单选框 -->
        <!-- type="radio" 例如:性别 -->
        <!-- 表单输入内容:键值对 name="" value="" -->
        <!-- sex = "female" -->
        <input type="radio" name="sex" value="male"/>男<br />
        <input type="radio" name="sex" value="female"/>女<br />

        <!-- 文件选择 -->
        <!-- type="file" 例如:文件上传 -->
        <!--  upload = 文件路径(文件) -->
        <input type="file" name="upload"/><br />

        <!-- 文本输入 -->
        <!-- type="text" input的默认type值就是text -->
        <!-- 表单输入内容:键值对 name="" value="" -->
        <!-- value实际上就是输入框输入的内容 -->
        <!-- content = "输入的内容" -->
        <input type="text" name="content" value=""/><br />

        <!-- type="password" 基本与text一样 输入格式为密码 -->
        <input type="password" name="password" value=""/><br />
        <!-- type="number" 输入格式为数字 -->
        <input type="number" name="number" value=""/><br />
    </form>
    
</body>

5.重置和提交

<body>
    <h2>登录界面</h2>
    <form action="服务器地址" method="post">
        账号:<input type="text"/><br />
        密码:<input type="password"/><br />
        <!-- type = “submit” 提交按钮 -->
        <!-- submit会将form中的所有表单内容 
            按照action的地址和method的上传方式上传 -->
        <input type="submit" value="登录"/>
        <!-- type = "reset" 重置按钮 -->
        <!-- 一旦被点击,表单的所有内容将会被清空到初始状态 -->
        <input type="reset" value="重置"/>
    </form>
</body>

6.lable标签

<body>
    <h2>登录界面</h2>
    <form action="服务器地址" method="post">
        <!-- label 用for属性,指向对应表单元素input中的id属性 -->
        <!-- 当用户点击对应的label,它的for属性指向的id属性所在输入框就能获取焦点 -->
        <label for="user">账号:</label><input type="text" id="user"/><br />
        密码:<input type="password"/><br />
        <input type="submit" value="登录"/>
        <input type="reset" value="重置"/>
    </form>
</body>

7.select标签

<body>
    <!-- select 是表单元素 -->
    <!-- name属性设置在 select中, value就是option中的字符 -->
    <!-- city = "北京" -->

    <!-- selected属性,selected ="selected" 下拉选项被默认选中 -->
    选择所在城市
    <select name="city">
        <option>北京</option>
        <option>天津</option>
        <option>上海</option>
        <option selected="selected">重庆</option>
    </select>
</body>

CSS样式

1.CSS入门

<head>
<!-- 内部样式 -->
    <!-- 设置一个style标签,在style标签中补充css的内容 -->
    <style>
        /* CSS的注释快捷键 Ctrl + / */
        /* 选择器:针对特定名称或者属性的元素 */
        /* h1针对body中的h1元素 */
        h1{
            /* 样式(style)属性 */
            /* 设置字体颜色 */
            color: red;
            /* 设置字体大小 CSS中的值不加引号 */
            font-size: 100px;
        }

        h1{color:red;font-size: 100px;}
    </style>
</head>

2.CSS中的选择器

 选择分类: 基础选择器、 复合选择器

     基础选择器 :标签选择器、类选择器、id选择器 还有通配符选择 

     复合选择器 : 将上述的基础选择器进行多个组合

3.CSS中的字体属性

<style>
        /* 通配符 */
        *{
            font-size: 16px;
        }
        p{
            /* 设置字体的大小 */
            /* font-size: 50px; */
            /* 设置字体样式 */
            /* 字体的样式是由 系统决定的 */
            /* 注释:如果系统中不存在对应的字体样式,
            则字体会议默认的字体风格呈现 */
            /* font-family: "楷体"; */

            /* 当font-family的第一个参数设置字体加载不出时,由第二个参数设置字体 */
            /* font-family: "楷体1",sans-serif; */

            /* 设置字体加粗 */
            /* font-weight: 1 ~ 1000 ; 值越大字体越粗 */
            /* font-weight: normal; 默认粗细 400 正常粗细 */
            /* font-weight: bold; 700 加粗 不同浏览器标准不同 */

            /* 设置字体以何种方式显示 normal正常 italic斜体 */
            /* font-style: normal; */

            /* 复合写法 */
            /* 复合写法 font: font-style font-weight font-size/line-height font-family */
            /* font:normal bold 30px/30px "黑体",sans-serif; */
            /* 复合写法中,必须保留 font-size font-family  */
            font:30px "黑体",sans-serif;
        }
    </style>

对应标签对应设置属性

4.CSS中的文本属性

<style>
        h1{
            /* 浏览器中内置了英文颜色 */
            /* color: red; */

            /* 十六进制颜色 */
            /* color: #ff0000; */

            /* 十进制 */
            /* color: rgb(255, 0, 0); */

            /* QQ截图功能截取 目标颜色 十进制:按C 十六进制:Ctrl + C  */
            color: rgb(51,136,255);
            color: #3388FF;
        }

        /* div 独占一行 */
        div{
            /* 设置背景颜色 */
            background-color: orange;
            /* 设置字体大小 */
            font-size: 40px;
            /* 设置标签中“文字”的位置 */
            /* text-align: left\center\right */
            text-align: center;

            /* 为文本设置 下划线、删除线、上划线 */
            /* text-decoration:underline; 下划线 */
            /* text-decoration: line-through; 删除线*/
            /* text-decoration:overline; 上划线 */
        }
        p{
            font-size: 20px;
            /* text-indent 缩进属性 */
            /* 缩进两个字 */
            /* 1em 代表一个字的大小,这个大小会随之字体变化而变化 */
            /* text-indent:40px */
            text-indent: 2em;

            /* 设置行间距 */
            line-height: 60px;
        }
    </style>

同上,对应标签对应设置属性

常见的设置与效果

//居中
<style>
        /* margina:auto 只能将块标记,进行水平居中 */
        /* 绝对定位 居中 */
        .a{
            width: 300px;
            height: 200px;
            background-color: red;
            /* margin: auto; */
            position: absolute;
            top: calc(50% - 100px);
            left: calc(50% - 150px);
        }
    }
    </style>
//圆角
<style>
        .a{
            width: 300px;
            height: 100px;
            background-color: red;
            /* border-radius 设置圆角 像素值、百分比 */

            /* 像素设置 */
            /* border-radius: 150px; */
            /* 百分比设置 当前元素的宽高 * 10%*/
            /* border-radius: 50%; */

            /* border-radius: 100px; */
            /* border-radius: 50%; */

            /* border-top-left-radius: 50px;
            border-top-right-radius: 50px;
            border-bottom-left-radius: 50px;
            border-bottom-right-radius: 0px; */
        }
        img{
            width: 100px;
            height: 100px;
            border-radius: 50%;
        }
    </style>
//阴影
<style>
        .a{
            width: 200px;
            height: 200px;
            background-color: blanchedalmond;
            margin: auto;
            /* 设置阴影 */
            /* box-shadow 阴影的坐标位置 */
            /* 0 0 是元素的中心点位置 */
            /* box-shadow: 30px 30px 10px gray; */
        }
        .a:hover{
            box-shadow: 0 0 10px #CCCCCC;
        }
    </style>
//背景渐变
<style>
        .a{
            width: 200px;
            height: 200px;
            /* 设置渐变色 */
            /* linear-gradient 线性渐变 */
            /* background-image: linear-gradient(red,green); */
            /* background-image: linear-gradient(red,green,yellow); */
            /* background-image: linear-gradient(10deg,red,green); */

            /* background-image: radial-gradient(red,green); */
        }
    </style>

JavaScript

JavaScript通常简称为JS,由网景(netScape)公司推出脚本语言。

是一门轻量级、弱类型、面向对象的解释型脚本语言。

弱类型:没有数据类型的限制、变量可以不用定义就使用

解释型:无需编译,通过解释器解释运行。浏览器就是一个JS的解释器。

脚本script:一系列指令。

JS的作用

HTML用于定义页面中的内容。

CSS用于控制HTML元素的外观和样式。

JS用于控制HTML元素的行为。

HTML+CSS+JS就是前端的三要素。

  • 可以在页面中动态嵌入HTML元素

  • 可以操作浏览器

  • 与用户进行数据交互

JS写在哪里

1.写在某个标签的事件中

事件,如鼠标单击事件onclick,鼠标移入事件onmouseenter等

<button onclick="alert('hello js!')">点击按钮</button>

通常用于调用函数。

2.写在<script></script>标签中

该标签可以放在页面的任意位置,通常放在head中或body结束之前。

<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!--放在head中-->
		<script></script>
	</head>
	<body>
		<!-- 放在body结束前 -->
		<script>
			// js代码,默认页面加载时就会执行
			console.log("在控制台中输出");
		</script>
	</body>
</html>

3.将js写到一个独立的.js文件中,再通过<script>标签导入

  • 新建一个.js文件,在其中编写js代码

  • 在页面中

    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
            <script src=".js文件的路径" type="text/javascript" charset="utf-8"></script>
    	</head>
    	<body>
    		
    	</body>
    </html>
    

JS中的输出语句

1.弹出警告框

alert("hello");

2.控制台输出

console.log("hello")

3.页面中输出

document.write("hello");

 

JS的组成

1.ECMAScript

简称ES,是JS的前身,也是JS的标准。

其中要学习JS的核心语法,如数据类型、定义变量、控制语句等。

2.BOM(Browser Object Model)

浏览器对象模型,可以通过js的BOM控制浏览器的行为。

3.DOM(Document Object Model)

文档对象模型,这里的文档指HTML页面。

可以通过js的DOM控制页面中的元素。

ECMAScript

数据类型

基本类型和引用类型。

由于JS是弱类型语言,定义变量时不需要指定数据类型,所以这些类型作为了解既可。

基本类型

基本类型说明
数值型number整数、小数都称为数值型
字符串string用引号引起来的都是字符串
布尔型booleantrue/false
空null某个引用类型变量通过null设置为空
未定义undefined当某个变量没有声明或没有值时

引用类型

数组、对象、函数等都是引用类型,也称为本地对象

JS中定义变量

var 变量名;  
//或
let 变量名;  

var stu_name,age;
let sex;

JS中标识符的命名规则

标识符:变量名、方法名、类名统称为标识符

  • 由字母、数字、下划线和$符号组成
  • 不能以数字开头
  • 不能使用JS中的关键字
  • 命名时尽量使用单词或拼音,达到"见名知意"

变量的初始化

与java不同的是,JS中给某个变量赋什么值,它就是什么类型。

//先定义后赋值
var name;
name="小米";
//定义的同时赋值
var age=20,sex="男";

运算符

JS中的true可以用1表示,false可以用0表示。

算术运算符

//+ - * / %

var a = 5,
    b = 3.2;
//+两端都是数值当做相加,有一端为字符串当做拼接 
console.log(a + b);//8.2(number)
console.log("" + a + b);//53.2
console.log(a + b + "");//8.2(string)
console.log("xxx" + (a + b) + "xxx");xxx8.2xxx
// - * / % 必须是两个数值之间进行运算,如果有非数字参与运算,结果为NaN
//"2"可以参与运算,"b"不可以  
//除+外,字符串类型的数字可以运算
console.log(a / "a"); //NaN  not a number
console.log("5"/ "2");//2.5
// 除法正常显示结果
console.log(5 / 2);//2.5
// a%b  a<b  结果为a
console.log(4 % 7);//4

关系运算符

//> < >= <= == !=  === !==

//> < >= <=用法同java
//js中的==表示判断两个数据字面量是否相同,不会比较数据类型
console.log("123" == 123);//true
//js中的===和!==表示判断两个数据的数据类型和字面量是否相同
console.log("123" === 123);//false
console.log("123" === "123");//true
console.log("123" !== 123);//true

逻辑运算符

//&& || !
//用法同java
//&&如果有一个为false,结果就为false,只有都为true,结果才为true。
//||如果有一个为true,结果就为true,只有都为false,结果才为false。
//!将原结果取反

赋值/复合赋值运算符

//= += -= *= /= %=
//a+=b表示a=a+b;
var a=3,b=4;
//a+=b;
//console.log(a);//7

//将符号两端的数据进行运算后,赋值给符号左侧的变量中
//a*=b+c相当于a=a*(b+c)
a*=b+5;//a=3*(4+5)
console.log(a);//27

自增自减运算符

//++ --
//a++表示a=a+1或a+=1
//--a表示a=a-1或a-=1

//如果符号在后,先使用后加减
//如果符号在前,先加减后使用
var n = 10;
// n++;
// ++n;
// console.log(++n);//11
// console.log(n);//11
// console.log(n++ + n); //10 + 11
// console.log(++n + n); //11 + 11
console.log(n++ + ++n); //10 + 12
console.log(n-- - --n); //12-10	

条件运算符

//表达式一?表达式二:表达式三
//执行表达式一,如果为true,执行表达式二,如果为false,执行表达式三
//相当于双分支if语句if(表达式一){表达式二}else{表达式三}

运算符的优先级

小括号>>>单目运算符(++ – !)>>>算术运算符>>>关系运算符>>>逻辑运算符>>>条件运算符>>>复合赋值/赋值运算符

流程控制语句

条件语句

  • 单分支if

    if(布尔值){
       
    }
    
  • 双分支

    if(布尔值){
    
    }else{
        
    }
    
  • 多分支

    程序从上往下执行,如果有某个if满足条件,则不再判断后续的if

    if(布尔值){
       
    }else if(布尔值){
    
    }else{
        
    }
    
  • if嵌套

    if(布尔值){
        if(布尔值){}
    }else{
        if(布尔值){}
    }
    
  • switch

    js中的switch语句的小括号可以判断任意类型的变量,case后数据的类型也可以不同。其它特性同java

    switch(变量){
        case 可能的情况:
            break;
        case 可能的情况:
            break;
        case 可能的情况:
            break;
        default:
            没有任何case匹配时
            break;
    }
    

如果条件能一一例举出来,使用switch语句,语法更为简洁。

如果条件是范围,只能使用if语句。

循环语句

  • while

    while(循环条件){
        循环体;
    }
    如果条件不成立则会停止循环。所以while循环有可能一次都不执行。
    
  • do-while

    do{
        循环体;
    }while(循环条件);
    先执行一次后再判断是否循环。所以do-while循环至少执行一次。
    
  • for

    for(初始化循环变量;循环条件;更新循环变量){
        循环体;
    }
    

break和continue

  • continue表示停止本次循环,直接执行下一次循环

    循环中遇到continue,不再执行后续代码,直接进入下次循环

    var i=0;
    while(i++<=100){
        if(i%2==0){
            continue;
        }
        console.log(i);
    }
    

//打印0~100以内的奇数


- break表示停止整个循环

```js
var i=0;
while(true){
    if(i++==50){
        break;
    }
    console.log(i);
}
//打印0~49

数组

一组有序的数据集合,可以保存不同类型的数据,数组大小可变。

类似于Java中的ArrayList。以对象的形式存在。

  • 可以保存不同类型的数据
  • 可以改变数组大小
  • 数组中的元素默认为undefined

定义数组

//创建一个指定大小的数组:var 数组名 = new Array(数组大小);
//这里的数组大小可以省略
var list1 = new Array(10);
//创建一个空数组:var list2 = [];
var list2 = [];
//创建一个拥有初始元素的数组
var list3 = new Array(元素1,元素2...);
var list4 = [元素1,元素2...];

数组的赋值和取值

  • 赋值:数组名[索引]=值;
  • 取值:var obj=数组名[索引];

遍历数组

  • 普通for循环

    遍历数组中的所有元素,包含undefined

for(var i=0;i<数组.length;i++){
    var obj=数组[i];
}
var list=new Array(5,"hello",true);
list[10]="xxx";
//这时会打印11个元素,没有赋值的元素输出undefined
for(var i=0;i<list.length;i++){
	console.log(list[i]);    
}
  • “增强for循环”

    遍历数组中的非undefined元素

for(索引 in 数组名){
    var obj= 数组[索引];
}
var list=new Array(5,"hello",true);
list[10]="xxx";
//这时会打印4个实际存在的元素
for(index in list){
	console.log(list[index]);    
}

冒泡排序

//外层循环比较的轮数
for (var i = 1; i <= list.length - 1; i++) {
    //内层循环每轮比较的次数
    for (var j = 1; j <= list.length - i; j++) {
        //如果不满足排序要求。升序用>,降序用<
        if (list[j - 1] > list[j]) {
            //交换位置
            var temp = list[j - 1];
            list[j - 1] = list[j];
            list[j] = temp;
        }
    }
}

常用函数

函数作用
pop()移除最后一个元素
push(object)添加元素到末尾
shift()移除第一个元素
unshift(object)添加元素到头部
sort() /sort(function)无参表示将元素视为string,按第一个字符的ascii码升序排序。
有参时参数为指定的排序方式。
every(function)验证数组中的元素是否都满足指定函数的要求
some(function)检测数组中是否存在满足指定函数要求的元素
indexOf(object)/lastIndexOf(object)得到指定元素第一次/最后一次出现的索引
splice(start,length)从start开始截取length个元素
join(string)使用指定的字符将所有元素拼接成一个整体字符串
reverse()将数组中的元素倒序

Math

是一个包含了很多处理数学相关问题的对象。

如使用π、计算三角函数等方法。这些属性和方法直接通过Math调用。

Math对象的常用函数

常用属性和函数作用
Math.PI得到圆周率
Math.E得到自然常数
Math.abs(num)得到num的绝对值
Math.pow(a,b)得到a的b次幂
Math.max(a,b)得到a和b之间的 最大值
Math.sqrt(num)得到num的平方根
Math.cbrt(num)得到num的立方根
Math.ceil(num)向上取整
Math.floor(num)向下取整
Math.round(num)四舍五入
Math.random()得到[0,1)之间的随机数
  • 得到[min,max)区间内的随机整数:
var num = Math.floor(Math.random() * Math.abs(max - min) + Math.min(max,min));

Date

用于表示日期时间的一个对象。

通过new关键字创建Date对象

var now = new Date();//创建当前日期时间对应的对象

Date对象的常用函数

常用函数作用
toLocaleString()将日期时间转换为本地形式的字符串
toLocaleDateString()将日期转换为本地形式的字符串
toLocaleTimeString()将时间转换为本地形式的字符串
get/setFullYear()获取/设置年份
get/setMonth()获取/设置月份(011表示112月)
get/setDate()获取/设置日期
get/setDay()获取/设置星期(0~6表示周天到周六)
get/setHours()获取/设置小时
get/setMinutes()获取/设置分钟
get/setSeconds()获取/设置秒
get/setTime()获取/设置时间戳(1970年1月1日至指定时间经过了多少毫秒)

字符串

JS中的字符串实际是一个字符数组,可以通过下标获取指定索引上的字符。

var str="hello world";
//可以直接将字符串视为数组使用
console.log(str[0]);

字符串常用函数

常用函数作用
toUpperCase()/toLowerCase()转换为大写/小写
trim()去掉首尾空格
sub()/sup()文字下标/上标
charAt(index)得到index索引对应的字符
indexOf(string)/lastIndexOf(string)得到string第一次/最后一次出现的索引,如果不存在,返回-1
substr(index)/substring(index)从下标index开始截取至字符串末尾
substr(start,length)从下标start开始截取length个字符
substring(from,to)截取[from,to)区间内的字符
split(string)根据string切分字符串,得到字符串数组
replace(旧字符,新字符)替换满足要求的第一个字符串
replaceAll(旧字符,新字符)替换满足要求的所有字符串
replace(正则表达式,新字符)按正则表达式替换

正则表达式

一套自定义规则。用于检索、修改满足规则的字符串。

//创建一个正则表达式
var reg=/规则/;
//reg.test(参数)//验证参数是否满足正则表达式的规则
规则说明举例
/a/匹配指定字符匹配字母"a"
/abc/匹配指定字符匹配字符"abc"整体
/[abc]/匹配指定范围内的字符匹配"a"或"b"或"c"
/[a-z]/匹配指定范围内的字符匹配所有的小写字母
/[^a]/匹配除指定字符之外的字符匹配除字母"a"以外的字符
/[^0-9]/匹配除指定数字之外的字符匹配非数字
/\d/匹配数字匹配0-9
/\D/匹配非数字匹配除0-9以外的字符
/\w/匹配字母、数字和下划线相当于[a-zA-Z0-9_]
/\W/匹配非字母、数字和下划线相当于[^a-zA-Z0-9_]
/\s/匹配空格
/\S/匹配非空格
规则说明举例
/q{2}/匹配2个指定字符匹配qq
/q{2,5}/匹配2-5个指定字符匹配2个、3个、4个或5个q
/q{2,}/匹配至少2个指定字符
/q+/匹配至少1个指定字符相当于q{1,}
/q?/匹配0个或1个指定字符相当于q{0,1}
/q*/匹配0个或多个指定字符相当于q{0,}
^从头开始匹配
$匹配到结尾
g全局匹配
i忽略大小写匹配

jQuery

入门导读

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

jQuery是一个主流的优秀的JavaScript类库,是由John resig在2006年1月创建的。

jQuery库包含核心库、UI、插件和jQuery Mobile等模块。(LayUI)

jQuery凭借着强大的选择器、链式操作以及出色的浏览器兼容性,极大的简化访问和更新HTML页面、DOM操作、事件处理以及执行动画等操作。

“写得少,做的多“

JavaScrit库

jQuery 库包含以下功能:

  • HTML 元素选取 √
  • HTML 元素操作 √
  • CSS 操作 √
  • HTML 事件函数 √
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改 √
  • AJAX √
  • Utilities

jQuery概述

通过封装JS代码的方式简化 操作

jQuery基本使用-文档就绪事件

$(document).ready(function(){

   //代码内容

});

还有更简洁的做法

$(function(){

   // 开始写 jQuery 代码...

});

jQuery顶级对象$

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)“查询"和"查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

实例:

  • $(this).hide() - 隐藏当前元素

  • $(“p”).hide() - 隐藏所有

    元素

  • $(“p.test”).hide() - 隐藏所有 class=“test” 的

    元素

  • $(“#test”).hide() - 隐藏 id=“test” 的元素

DOM对象和jQuery对象

1、jQuery获取的对象,不能直接使用DOM中的方法

2、JQuery获取的对象加上[] 后可以使用DOM中的内容(包括使用get() 方式)

$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

3、同一函数实现set和get

$("#msg").html();                      //  返回id 为msg 的元素节点的html 内容。
$("#msg").html("<b>new content</b>");  // 将“<b>new content</b>” 作为html 串写入id 为msg 的元素节点内容中, 页面显示粗体的new content
$("#msg").text();                      //  返回id 为msg 的元素节点的文本内容。
$("#msg").text("<b>new content</b>");  // 将“<b>new content</b>” 作为普通文本串写入id 为msg 的元素节点内容中, 页面显示<b>new content</b>
$("#msg").height();                    // 返回id 为msg 的元素的高度
$("#msg").height("300");             // 将id 为msg 的元素的高度设为300
$("#msg").width();                     // 返回id 为msg 的元素的宽度
$("#msg").width("300");              // 将id 为msg 的元素的宽度设为300
$("input").val(");                       //  返回表单输入框的value 值
$("input").val("test");                 // 将表单输入框的value 值设为test
$("#msg").click();                     //  触发id 为msg 的元素的单击事件
$("#msg").click(fn);                   // 为id 为msg 的元素单击事件添加函数

4、集合处理

使用each 配合函数可以做集合的遍历和处理

$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})   // 为索引分别为0 ,1 ,2 的p 元素分别设定不同的字体颜色。
$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})   // 实现表格的隔行换色效果
$("p").click(function(){alert($(this).html())})     // 为每个p 元素增加了click 事件,单击某个p 元素则弹出其内容

5、扩展 JQuery对象

$.extend({
   min: function(a, b){return a < b?a:b; },
   max: function(a, b){return a > b?a:b; } 
});   // 为jquery 扩展了min,max 两个方法

6、链式写法

$("p").click(function(){alert($(this).html())})
.mouseover(function(){alert('mouse over event')})
.each(function(i){this.style.color=['#f00','#0f0','#00f'][i]});

7、元素操作

$("#msg").css("background");          // 返回元素的背景颜色
$("#msg").css("background","#ccc") // 设定元素背景为灰色
$("#msg").height(300); $("#msg").width("200");      // 设定宽高
$("#msg").css({ color: "red", background: "blue" });// 以名值对的形式设定样式
$("#msg").addClass("select");        // 为元素增加名称为select 的class
$("#msg").removeClass("select");   // 删除元素名称为select 的class
$("#msg").toggleClass("select");    // 如果存在(不存在)就删除(添加)

 

jQuery基本和层级选择器

基础选择器的使用

复合选择器的使用

jQuery隐式迭代

 let arr = document.querySelectorAll('li')
 for(let i = 0;i < liArr.length;i++) {
         arr[i].onclick = function () {
            console.log('原生循环');
        }
     }

 // 隐式迭代实现
 $(function () {
         $('li').on('click',function () {
            console.log('隐式迭代');
        })
     })
 //可以用无序列表体验一下

jQuery筛选选择器

属性筛选选择器
[att=val] 选取att属性等于val的标记

[att] 选择有att属性的标记

[att|=val] 选取att中以val开头的属性

[att~=val] 选取att中包含val的属性

[att^=val] 选取att中以val开头的属性

[att*=val] 选取att中包含val的属性

[att$=val] 选取att中以val结尾的属性

[att!=val] 选取att中不包含val的属性

jQuery筛选方法-选取父子元素

jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,
比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr),类似于jQuery.parents(expr),
但是是查找所有祖先元素,不限于父元素

jQuery.children(expr).返回所有子节点,这个方法只
会返回直接的孩子节点,不会返回所有的子孙节点

jQuery对象返回,children()则只会返回节点

jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll(),返回所有之前的兄弟节点

jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll(),返回所有之后的兄弟节点

jQuery.siblings(),返回兄弟姐妹节点,不分前后

jQuery.find(expr),跟jQuery.filter(expr)完全不一样。jQuery.filter()是
从初始的jQuery对象集合中筛选出一部分,而jQuery.find()
的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从

p元素开始找,等同于$("p span")

新浪下拉菜单

jQuery其他筛选方法

在jQuery对象数组中,过滤出一部分元素 :
1)、首先获取ul中所有的li子元素,即会产生一个li数组uls
var uls =$("ul>li");

2)、first():获取数组uls中的第一个元素,即第一个li标签.
ls.first().css({"background":"pink"});

3)、last():获取数组uls中的最后一个元素,即最后一个li标签.
=uls.last().css({"background":"pink"});

4)、eq(index):从数组uls中找到下标为2的元素.
                 uls.eq(2).css({"background":"pink"});
                    4.1)、从数组uls中找到倒数第2个元素.
                 uls.eq(-2).css({"background":"yellow"});
5)、filter(selector):匹配到类名为sa的元素。
uls.filter(".sa").css({"background":"yellow"});
    5.1)、匹配到有属性title,并且值为a的元素.
    uls.filter("[title=a]").css({"background":"yellow"});
5.2)、匹配到属性title的值不为a的元素
                     uls.filter("[title!=a]").css({"background":"yellow"});
                    5.3)、匹配到有title属性,且属性值不为a的元素.
                     uls.filter("[title][title!=a]").css({"background":"yellow"});
                    5.4)、从数组uls中过滤出有title属性的元素集合.
                     uls.filter("[title]").css({"background":"blue"});
                6)、has(selector):从数组uls中过滤出有<span>标签的元素集合.
                 uls.has("span").css({"background":"blue"});
                7)、从数组uls中过滤出没有title属性的元素集合.
                 uls.not("[title]").css({"background":"blue"});

jQuery排他思想

1、siblings

    语法:siblings(selector)

    用法:$(".frist").siblings(“li”)

说明:查找兄弟节点,不包括自身元素

2、排他思想

想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。

16-淘宝服饰精品案例

jQuery链式编程

jQuery修改样式css方法

css()设置或返回匹配元素的样式属性。
height()设置或返回匹配元素的高度。
offset()返回第一个匹配元素相对于文档的位置。
offsetParent()返回最近的定位祖先元素。
position()返回第一个匹配元素相对于父元素的位置。
scrollLeft()设置或返回匹配元素相对滚动条左侧的偏移。
scrollTop()设置或返回匹配元素相对滚动条顶部的偏移。
width()设置或返回匹配元素的宽度。

jQuery修改样式操作类

  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  • css() - 设置或返回样式属性

tab栏切换案例

jQuery类操作和className区别

jquery 相当于类名的追加

className相当于覆盖

jQuery显示与隐藏效果

show()

hide()


jQuery滑动效果以及事件切换

jQuery停止动画排队stop

jQuery淡入淡出以及突出显示案例

jQuery自定义动画animate方法

王者荣耀手风琴案例布局分析

王者荣耀手风琴案例制作


jQuery属性操作

方法描述
attr()设置或返回匹配元素的属性和值。
removeAttr()从所有匹配的元素中移除指定的属性。

购物车模块-全选(上)

购物车模块-全选(下)

jQuery内容文本值

$("#msg").html();                      //  返回id 为msg 的元素节点的html 内容。
$("#msg").html("<b>new content</b>");  // 将“<b>new content</b>” 作为html 串写入id 为msg 的元素节点内容中, 页面显示粗体的new content
$("#msg").text();                      //  返回id 为msg 的元素节点的文本内容。
$("#msg").text("<b>new content</b>");  // 将“<b>new content</b>” 作为普通文本串写入id 为msg 的元素节点内容中, 页面显示<b>new content</b>
$("input").val(");                       //  返回表单输入框的value 值
$("input").val("test");                 // 将表单输入框的value 值设为test

购物车模块-增减商品数量

购物车模块-修改商品小计

jQuery遍历对象each方法

$('div').each(function(){
    if($(this).is(':hidden')) return;//跳过隐藏的元素

    //对可见的元素操作
});

jQuery遍历数据$.each

var myArray = ["apple", "mango", "orange", "grapes", "banana"];
$.each(myArray, function (index, value) {
  console.log(index+' : '+value);
});

购物车模块-计算总件数和总额

创建、添加、删除元素

创建元素

$("<li></li>"); // 动态创建了一个li标签

内部添加

// 把内容放入到元素的最后面
element.append("内容");
// 把内容放入到元素的最前面
element.prepend("内容");

外部添加

// 把内容放到元素最后面
element.after("内容");
// 把内容放到元素最前面
element.before("内容");

删除元素

// 删除匹配元素本身 自杀
element.remove(); 
// 删除匹配元素中所有的子节点 也就是删除孩子
element.empty();
// 清空匹配的元素内容 也是删除孩子
element.html("");

购物车模块-清理购物车

购物车模块-选中商品添加背景颜色

jQuery自动触发事件

<div class="login-btn">
    <input type="button" value=“登录” onclick="checkLogin"/>
</div>
$("login-btn input").trigger("click")

 总结

整个HTML内容远不止这些,但也是我们必须经历的。基本标签很多需要我们不断积累,才能熟练掌握。其中每个方面的结构、方法、以及原理都是需要我们不断的练习尝试才能得出结果。

web标准有三层结构:分别是结构(html),表现(css)和行为(Javascript)

其中结构类似人的身体,表现类似人的穿着,行为类似人的行为动作。

理想状态下,他们三层相互独立,放在不同的文件中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值