HTML+CSS+JavaScript入门教程(万字)

2023-11-09

前言

  • 作为一名后端开发人员,开发过程中,必不可少的与前端进行对接,因此尽管是后端开发者,也需要一定的前端知识,因此写下HTML+CSS+JavaScript入门知识,着重介绍了JavaScript,方便自己复习,也各位小伙伴参考。

一、HTML

1.1什么是HTML

  • HTML是一门语言,所有的网页都是用HTML这门语言编写出来的
  • HTML(HyperText Markup Language):超文本标记语言
    • 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容
    • 标记语言:由标签构成的语言
  • HTML运行在浏览器上,HTML标签由浏览器来解析
  • HTML标签都是预定义好的。例如:使用展示图片
  • W3C标准:网页主要由三部分组成
    • 结构:HTML
    • 表现:CSS
    • 行为:JavaScipt

1.2 基础标签

在这里插入图片描述

1.3 转义字符

在这里插入图片描述

1.4 图片、音频、视频标签

在这里插入图片描述

1.5 超链接标签

在这里插入图片描述

1.6 列表标签

在这里插入图片描述

1.7 表格标签

在这里插入图片描述

1.8 布局标签

在这里插入图片描述
布局标签用来设置css样式,相当于两张白纸提供给你,你自己可以在上面设置任意样式。

  • div占满一整行。(一行)
  • span占自己所占的位置。(一块)

1.9 表单便签

在这里插入图片描述

  • method:指定表单的请求方式
    • 1 get:默认值
      • 请求的参数会拼接在URL后面
      • url的长度会有限制 4kb
    • post:
      • 请求的参数会在http请求协议的请求体系中
      • 请求参数无限制的

表单项

在这里插入图片描述

二、CSS

2.1 什么是CSS

在这里插入图片描述

2.2 CSS导入方式

在这里插入图片描述

2.3 CSS选择器

在这里插入图片描述

三、JavaScript

3.1 什么是JavaScript

  • JavaScipt是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互
  • W3C标准:网页主要由三部分组成
    • 结构:HTML
    • 表现:CSS
    • 行为:JavaScript
  • JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似。
  • JavaScript(简称JS)在1995年由Brendan Eich发明,并于1997年成为一部ECMA标准。
  • ECMAScriot 6(ES6)是在最新的JavaScript版本(发布于2015年)。

3.2 JavaScript的引入方式

  • 内部脚本:将JS代码定义在HTML页面中
    在HTML中,JavaScript代码必须位于标签之间
<script>
	alert("hello JS-")
</script>

提示

  • 在HTML文档中可以在任意地方,放置任意数量的

3.3 基础语法

3.3.1 输出语句

  • 使用window.alert()写入警告框
  • 使用document.write()写入HTML输出
  • 使用console.log()写入浏览器控制台

3.3.2 变量

var

  • JavaScript中使用var关键字(variable的缩写)来声明变量
var test = 20;
test = "张三",
  • var是全局变量,一处定义,全局可用
  • var可以重复声明,取最后的赋值为变量的值

let

  • ECMAScript 6新增了let关键字来定义变量,它的用法类似于var,但是:
    • 它是局部变量,只在所在代码块内有效
    • 不允许重复声明
      const
  • const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。

3.3.3 数量类型和转换

数量类型
JavaScript中分为:原始类型和引用类型
五种原始类型:

  • number:数字(整数、小数、NAN(Not a Number))
  • string:字符、字符串、单双引皆可
  • boolean:布尔。(true、false)
  • null:对象为空
  • undefined:当声明的变量没有进行初始化的时候,该变量的默认值为undefined

使用typeof运算法可以获取数据类型

var age = 3//此处打印出来是age的数据类型为:number
alert(typeof age);

类型转换

  • 其他类型转换为number:

    • String:按照字符的字面值,转换为数字,如果字面值不是数字,则转为NaN,一般使用parseInt()
    • boolean:true转换为1false 转为0
  • 其他类型转换为boolean:

    • number:0NaN转为false ,其他的数字转换true
    • string:空字符串转为false ,其他的字符转为true。
    • null:转为false
    • undefined:转为false

注意在JavaScript下列代码1和2的写法等价

var flag = "" 

if(flag != null && flag.length >0) //1
if(flag)//2
//在JavaScript中1和2的写法等价

3.3.4运算符

这里与java运算符一样,不过多赘述。
在这里插入图片描述
需要注意=====的区别

  • ==先判断类型是否一样,如果不一样,则进行类型转换后,再比较
  • ===先判断类是否一样,不一样直接返回FALSE,若一样才再进行比较
var age1 = 20;  //number
var age2 = "20";//String

alert(age1 == age2); //true
alert(age1 === age2);//false

3.3.5 流程控制语句

JavaScript的流程控制语句和Java的一样,这里不再赘述,需要注意的是,在使用流程控制语句的时候,变量的定义建议使用let关键字,局部定义

  • if
  • for
  • switch
  • while
  • do…while

3.3.6 函数

函数(方法)是被设计为执行特定任务的代码块

  • 定义:JavaScript函数通过function关键字进行定义,有两种方式

方式一

/**
function functionName(参数1,参数2...){
函数体
}
*/

//函数定义
function add(a,b){
return a+b;
}
//调用函数
let result = add(1,2);//返回值为3

注意与Java不同的是

  • 形式参数不需要数据类型,因为JavaScript是弱类型语言
  • 返回值也不需要定义类型,直接return即可

方式二

/**
var functionName = function(参数1,参数2...){
函数体
}
*/

//函数定义
var add= function(a,b){
return a+b;
}
//调用函数
let result = add(1,2);//返回值为3
//此外函数调用中可以传递任意个参数
let result = add(1,2,3);//返回值仍然为3
//只传递了一个参数
let result = add(1);//返回值为1+NaN = NaN

3.4 JavaScript对象

  • Array

    • 定义

      var 变量名 = new Array(元素列表);//方式一
      var 变量名 = [元素列表];//方式二
      
      var arr = new Array(1,2,3);//方式1
      var arr = [1,2,3];//方式2
      
      //使用
      arr[0] = 1;
      
    • 注意,JavaScript中数组是变长变类型的,即声明了数组长度为3的数组,也可使用超过三的下标

      //变长
      var arr3 = [1,2,3];
      arr[10] = 3;//这里也不会报错,正常执行
      //变类型
      var arr3 = [1,2,3];
      arr[1] = "abc";//这里也不会报错,正常执行
      
    • Array也是一个对象
      在这里插入图片描述

  • String

    • 定义

      var 变量名 = new String(s);//方式一
      var 变量名 = s;//方式二
      
      var str= new Array("hello");//方式1
      var str= "hello";//方式2
      var str= 'hello';//方式3
      
    • 属性
      在这里插入图片描述

  • 自定义对象

    • 格式

      var 变量名 = {
      						属性名称1:属性值1,
      						属性名称2:属性值2,
      						...
      						函数名称:function(形参列表){}
      						...								
      			}
      
      var person = {
      	name:"zhangsan",
      	age:23,
      	eat:function(){
      	alert("干饭")
      	}
      }
      

3.5 BOM

Browser Object Model 浏览器对象模型
JavaScript 将浏览器的各个组成部分封装为对象
下面逐一介绍

  • Window 浏览器窗口对象(是其他四个的包含,大范围)

    • 获取:直接使用window,其中window。可以省略
      window.alert("abc");
      在这里插入图片描述
      1.alert()//不再赘述
      2.confirm()//其同样弹出一个windows框吗,但是有确认和取消按钮,可以接收两个值,true和false
      3.setTimeout(function,毫秒值)//在指定的时间间隔后执行传入的函数,只执行一次
      
      	setTimeout(function(){
      		alert("只执行一次");
      	},2000)
      
      4.setInterval(function,毫秒值)//在指定的时间间隔后执行传入的函数,重复执行
      
      	setInterval(function(){
      		alert("重复执行");
      	},2000)
      
      
  • Navigator:浏览器对象,不常用,可以上官方文档查阅,不赘述

  • Screen:屏幕对象,不常用,可以上官方文档查阅,不赘述

  • History:历史记录对象

    • 获取 :使用window.history获取,其中window.可以省略

        window.history.方法();
        history.方法();
      
    • 方法
      在这里插入图片描述

  • Location:地址栏对象(网址)

    • 获取 :使用window.location获取,其中window.可以省略

        window.location.方法();
        location.方法();
      
    • 方法
      在这里插入图片描述

3.6 DOM

3.6.1 基本介绍

  • Document Object Model 文档对象模型
  • 将标记语言的各个组成部分分装为对象
    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象
  • 如下图所示
    在这里插入图片描述
  • JavaScript通过DOM,就能够对HTML进行操作了
    • 改变HTML元素的内容
    • 改变HTML元素的样式(CSS)
    • 对HTML DOM事件做出反应
    • 添加和删除HTML元素
  • DOM是W3C(万维网联盟)的标准
  • DOM定义了访问HTML和XML文档的标准
  • W3C DOM标准被分为3个不同的部分:
    • 1.核心DOM:针对任何结构化文档的标准模型
      • Document:整个文档对象
      • Element:元素对象
      • Attribute:属性对象
      • Text:文本对象
      • Comment:注释对象
    • 2.XML DOM:针对XML文档模型(XML是核心DOM的子集
    • 3.HTML DOM:针对HTML文档的标准模型(HTML是核心DOM的子集
      • Image:<img>
      • Button:<input type = 'button'>

3.6.2 获取Element对象

  • 获取:使用Document对象的方法来获取
    • getElementById:根据id属性值获取,返回一个Element对象

      <img id="light" src = "../imgs/off.gif" >
      var img = document.getElementById("light")
      
    • getElementByTagName:根据标签名称获取,返回一个Element对象数组

      <div class="cls">xiaowang</div>
      <div class="cls">xiangli</div>
      var divs= document.getElementByTagName("div")
      for(let i = 0; i<divs.length; i++){
      	alert(divs[i]);
      }
      
    • getElementByName:根据name属性值获取,返回一个Element对象数组

      <imput type="checkbox" name="hobby">电影
      <imput type="checkbox" name="hobby">旅游
      <imput type="checkbox" name="hobby">邮箱
      var hobbys= document.getElementByTagName("hobby")
      for(let i = 0; i<hobbys.length; i++){
      	alert(hobbys[i]);
      }
      
    • getElementByClassName:根据class属性值获取,返回一个Element对象数组

      <div class="cls">xiaowang</div>
      <div class="cls">xiangli</div>
      var clss= document.getElementByTagName("cls")
      for(let i = 0; i<clss.length; i++){
      	alert(clss[i]);
      }
      

3.6.3 常见HTML Element对象的使用

注:非常多,因此查看文档使用
在这里插入图片描述

3.7 事件监听

  • 事件:HTML事件是发生在HTML元素上的”事情“。比如:
    • 按钮被点击
    • 鼠标移动到元素之上
    • 按下键盘按键
  • 事件监听:JavaScript可以在事件被侦测到时执行代码

3.7.1 事件绑定

  • 事件绑定有两种方式
    • 方式1:通过HTML标签中的时间属性进行绑定

      <input type = "button" onclick='on()'>
      function on(){
      	alert("我被点了")
      }
      
    • 方式2通过DOM元素属性绑定

      <input type = "button" id="btn">
      document.getElementByld("btn").onclick = funciton(){
      	alert("我被点了")
      }
      

3.7.2 常见事件

此处只是给出查询地方,需要用请自行到官方文档查找查找
在这里插入图片描述

3.8 正则表达式

  • 概念:正则表达式定义了字符串的组成的规则
  • 定义:
    • 直接量:注意不要加引号
      var reg = /^\w{6,12}$/;
      
    • 创建RegExp对象
      var reg = new RegExp(/^\w{6,12}$/);
      
  • 方法:
  • test(str):判断指定字符串是否符合规则,返回true或false
  • 语法:
    在这里插入图片描述
    在这里插入图片描述

四、总结

以上包含了基础的HTML+CSS+JavaScript入门,前端还有大量知识需要学习,这里知识作为以为后端程序员,至少需要了解的前端知识,有了这些基础,在实际开发中遇到其他前端问题,查阅官方文档即可,文档地址:W3C
以上仅是个人在学习中的学习笔记,供自己复习使用,也供大家参考,欢迎各位小伙伴提出问题和不足,互相交流,如果对你有帮助,请多多点赞,收藏,关注,谢谢!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML+CSS+JavaScript入门教程(万字) 的相关文章

  • PHP/HTML - 如何在表单输入名称中保留空格?

    我有一个带有输入的表单type text和name属性中有空格 当表单提交时 它使用post 空格怎么保留 目前是用下划线替换空格 在输入名称中使用数组
  • 在 JavaScript 中对数组进行排序

    我正在尝试对内部包含整数的数组进行排序 例如 var array 123 3 745 4 643 5 643 2 我如何对其进行排序才能返回类似以下内容的内容 array 745 4 643 2 643 5 123 3 您可以将自定义比较函
  • 查找第一个可滚动父级

    我遇到这种情况 需要将元素滚动到视口中 问题是我不知道哪个元素是可滚动的 例如 在纵向中 主体是可滚动的 而在横向中 它是另一个元素 还有更多情况会更改可滚动元素 现在的问题是 给定一个需要滚动到视口中的元素 找到其第一个可滚动父元素的最佳
  • React Native 中循环 Json 并显示

    How do I go about looping the result i retrieved from Json render function console log this state list contents
  • 在网站的一次导航中仅显示一次弹出窗口

    我有一个使用 Laravel 创建的网站 我希望用户第一次访问我的网站时能够看到弹出窗口 我的意思是第一次 用户访问我网站上的任何页面 这是第一次 访问网站上的一些链接页面 现在 这些页面访问不是第一次 在同一选项卡中打开 facebook
  • SWC with JavaScript:如何处理 CSS 导入以及如何绝对导入?

    TL DR 如何告诉 SWC 编译 React 组件中导入的 CSS 文件 如何告诉 SWC 在测试和 React 组件中编译绝对导入 这是一个最小的可重现示例 https github com janhesters riteway swc
  • React:在哪里扩展对象原型

    我使用创建了一个纯 React 应用程序创建反应应用程序 https github com facebookincubator create react app 我想延长String类并在一个或多个组件中使用它 例如 String prot
  • 接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足

    我正在使用 Angular 7 2 当我进入ng serve 我面临以下问题 致命错误 接近堆限制的无效标记压缩分配失败 JavaScript 堆内存不足 这意味着什么 我该如何解决这个问题 完整的错误消息是 FATAL ERROR Ine
  • 地理编码服务与 gMap 搜索之间的差异结果

    我想获取此地址的纬度和经度 Boulevard de la Marne Zone industrielle COULOMMIERS 77120 France 我将 api 添加到我的页面 当我使用 gmaps 时 结果很好 但是当我想通过
  • 如何减少 jQuery 函数中使用的子级数量?

    我觉得我必须使用太多 children 在我的一些 jQuery 函数中 这是我的 HTML div class goal small container div class goal content div class goal row
  • 以编程方式打开网页并以字符串形式检索其 html 包含内容

    我有一个 Facebook 帐户 我想提取我朋友的照片及其个人详细信息 例如 出生日期 就读学校 等 我能够提取我每个朋友帐户的 Facebook 首页的地址 但我不知道如何以编程方式打开我每个朋友首页的网页并将 html 包含保存为字符串
  • 在 jQuery 中获取最接近元素的形式

    我编写了这个 js jquery 脚本来检查表单中的所有复选框 它工作得很好 但是这会检查页面上的所有复选框 无论它们是什么表单包装器 这是函数 function toggleCheck state var checkboxes jQuer
  • HighCharts - 两个 Y 轴,一个具有最大值

    我在使用 Highcharts 时遇到问题 我已将右 Y 轴设置为 min 0 和 max 100 它是 但它不起作用并生成 125 百分比 怎么了 http jsfiddle net SdTcU http jsfiddle net SdT
  • 仅在页面加载时执行 Javascript,而不是回发 (SharePoint)

    我正在尝试在 SharePoint 网站上的自定义页面上加载页面时执行一些 JavaScript 它使用当前用户填充人员选择器 问题是代码也在回发时执行 这是我不希望的 因为它会重置人员选择器的任何更改 我尝试过使用if IsPostBac
  • 当CSS文件存在时,无法在服务器上找到它们[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 当运行本地服务器时 这一切都运行良好 我有 header html 其中包含以下代码 在 public html 目录 与 header h
  • 嵌套对象的 setState

    我有一个嵌套对象作为状态 并且在组件中有一个表单 我正在考虑每次用户在表单中输入某些内容时更新状态 并且为了避免为每个输入创建许多函数 我正在考虑使用 switch 创建单个函数 使用 switch 创建单一函数是个好主意吗 如何更新对象的
  • 如何从 fetch API 返回 json 响应

    我有一个像这样的函数 check auth fetch Urls check auth credentials include method GET then response gt if response ok return respon
  • 在 JSON 对象中存储和发送原始文件数据

    我正在寻找一种方法来传输任何文件类型的原始文件数据和任何可能的内容 我的意思是文件和文件内容都是用户生成的 在 Backbone 前端中使用 xhr ajax 调用两种方式针对 Django 后端 编辑 也许问题仍然不清楚 如果您在 IDE
  • 解析函数是否异步传递给 Promise 执行器?

    我有以下代码 function myPromiseFunc return new Promise resolve gt resolve Promise resolve 123 据我们所知Promise resolve方法立即用普通值解析 P
  • 为什么 JDOM 的 getChild() 方法返回 null?

    我正在做一个关于 html 文档操作的项目 我想要现有 html 文档中的正文内容将其修改为新的 html 现在我正在使用 JDOM 我想在我的编码中使用 body 元素 为此 我在编码中使用了 getChild body 但它向我的程序返

随机推荐

  • 去掉小数点后面的0(javascript)

  • HTML导航菜单

    frameset html 文件
  • Docker运行gin项目(go mod)

    准备 先在本地把golang的docker镜像拉取下来 docker pull golang Dockerfile文件内容 在gin项目根目录下创建Dockerfile配置文件 指定基础镜像 FROM golang 维护人信息 MAINTA
  • 【TCN回归预测】基于TCN时间卷积神经网络实现数据多输入回归预测附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 信号处理 图像
  • strapi的使用(三)-- 上传图片

    1 建表添加媒体字段 2 前端请求格式 用axios举例 需要注意几点 第一 传文件时 参数前要加前缀files 比如我表里面的媒体文件字段名为img 前端需要传的参数就为files img 第二 传除文件外的其他参数时 需要其他参数包裹在
  • 运用遍历判断无向图(网)是否连通

    基本思路 使用广度优先遍历方法 任选一个结点开始遍历 遍历结束后每个结点都访问到了即为连通 主代码 判断是否连通的isConnected 方法在最末尾 import dataStructure linearList LinkQueue pu
  • Win11安装适用于 Linux 的 Windows 子系统 (WSL)

    一 什么是适用于 Linux 的 Windows 子系统 官方解释 适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU Linux 环境 包括大多数命令行工具 实用工具和应用程序 且不会产生传统虚拟机或双启动设置开
  • 疫情当下,我们如何正确的看待nft数字藏品

    我是一个做传统家居行业的老板 从2019年底开始 国内疫情的反复蔓延 导致家居生意越来越难 线上线下都很难活下去 公司从一开始的裁员 到最后的关门 中间经历了很多挫折 还记得公司在关门的那一刻 手底下员工对我讲期待我东山再起的那一刻 当时数
  • 蓝桥杯2021年第十二届真题第一场-时间显示

    题目 题目链接 题解 就是考查取模运算 我是FW 居然用了牛刀 我是FW啊 而且我居然以为一秒等于一百毫秒 因为时 分 秒 毫秒之间的换算关系是不随着年月日的不同而变化的 所以直接整除就可以了 可以理解为时分之间为60进制进位关系 分秒之间
  • 未启用windows无线服务器,win10未启用对服务器的远程

    win10未启用对服务器的远程 内容精选 换一换 Windows Server 2012 R2操作系统弹性云服务器 本地使用远程桌面连接功能连接云服务器并启用redirected drive功能时 云服务器出现蓝屏 远程桌面连接启用了red
  • Android多线程下载断点续传

    先上图看卡结果 GITHUB Android多线程下载断点续传 下载杵这儿 如图所示点击下载就开始下载 点击停止就会停止再次点击下载就会接着下载了 设计思路是这样的 首先通过广播将下载信息传递给DownService DownService
  • 关于OAM技术的知识总结

    OAM技术 1 OAM技术产生的背景 以太网最初是为局域网设计的 由于局域网本身已具备较高的可靠性和稳定性 因此在设计以太网之初并未建立管理 维护的机制 而随着以太网在局域网 城域网以及广域网上的广泛应用 以太网管理维护机制的缺乏的缺点被放
  • Vue3通透教程【七】生命周期函数

    文章目录 写在前面 生命周期钩子函数 组合式API生命周期 写在最后 写在前面 专栏介绍 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章 应粉丝要求开始更新 Vue3 的相关技术文章 Vue 框架目前的地位大家应该都晓得 所谓三大
  • 卸载 kubesphere

    文章目录 脚本卸载 kk 卸载 脚本卸载 官方文档 从 Kubernetes 上卸载 KubeSphere 获取卸载脚本 卸载脚本 usr bin env bash function delete sure cat lt lt eof ec
  • jupyter notebook目录安装

    目录不是jupyter notebook自带的 需要手动安装 具体安装过程如下 step1 在Windows搜索框输入Anaconda Prompt 打开它 step2 输入pip install jupyter contrib nbext
  • avalon实现if-else

    div div class text1 if 的内容 div div
  • Communications link failure mysql在应用启动后偶发连接断开修复

    最近应用在启动一段时间一后 就会偶发Communications link failure错误 偶尔也会报connect refused 在网上找了一圈 找到比较靠谱的说法 mysql的server端 有自动断连机制 如果一个连接超过tim
  • centos7完全卸载并重装yum和python2.7

    前言 工作中有需要用到gitlab ci cd 需要在服务器上安装 nodejs 结果因为python版本过低问题安装不了 然后在搞python升级到3版本 结果越搞越头大 环境全都搞乱了 一气之下把python全删了 结果发现yum有依赖
  • 引用账户锁定无法登录_win10登陆失败提示引用的帐户已被锁定无法登录怎么办?...

    win10系统出现了一个问题 登录失败提示 引用的帐户当前已被锁定 可能无法登录到 这是因为一直在登录界面输入错误的密码超过五次 就会被锁定导致的 该怎么解决这个问题呢 下面我们就来看看这个问题的多种解决办法 一 问题描述 1 引用的帐户目
  • HTML+CSS+JavaScript入门教程(万字)

    前言 作为一名后端开发人员 开发过程中 必不可少的与前端进行对接 因此尽管是后端开发者 也需要一定的前端知识 因此写下HTML CSS JavaScript入门知识 着重介绍了JavaScript 方便自己复习 也各位小伙伴参考 一 HTM