JavaWeb前端基础(HTML CSS JavaScript)

本文用于检验学习效果,忘记知识就去文末的链接复习

1. HTML

1.1 HTML基础

结构

  • <head>
  • 身体<body>

内容

  • 图片<img>
  • 段落<p>
  • 图标<link>

标签

  • 单标签
  • 双标签

常用标签

  • div:分割块
  • span:只占需要的大小
  • p:段落
  • br:换行
  • hr:一根横线(与页面宽度一样)
  • h1,h2,h3,h4,h5,h6:一级/二级/三级/四级/五级/六级标题
  • a:链接
  • ol,li:有序列表
  • ul,li:无序列表
  • teble,thead,tr,th,tbody,tr,tb:表格

转义字符

  • &ensp半个空白格子
  • &emsp一个空白格子
  • &nbsp更小的空白格子
  • &lt<
  • &gt>
  • &amp&
  • &quot"
  • &copy版权
  • &reg已注册商标
  • &times乘号
  • &divide除号
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><title>hello title</title><link rel="icon" href="./img/法案_bill.png" type="image/x-icon" />
</head><body><div id="anchor1">这是页面顶端(锚点位置)</div><h1>这是一级标题</h1><h2>这是二级标题</h2><h3>这是三级标题</h3><div class="b1"><p>【这是第1块,第1段】</p><p>【这是第1块,第2段】<br />《望庐山瀑布》<br />唐·李白<br />日照香炉生紫烟,遥看瀑布挂前川。<br />飞流直下三千尺,疑是银河落九天。</p><p>【这是第1块,第3段】&lt;&ensp;&gt;&lt;&emsp;&gt;&lt;&nbsp;&gt;</p></div><div class="b2"><p>【这是第2块】</p><a href="https://www.bilibili.com/">点击这里访问粉色小破站</a><ol>有序列表<li>这是第一项</li><li>这是第二项</li><li>这是第三项</li><li>这是第四项</li><li>这是第五项</li><li>这是第六项</li></ol><ul>无序列表<li>这是第一项</li><li>这是第二项</li><li>这是第三项</li><li>这是第四项</li><li>这是第五项</li><li>这是第六项</li></ul><table border=""><thead><tr><th>学号</th><th>姓名</th><th>班级</th></tr></thead><tbody><tr><th>001</th><th>小明</th><th>计科</th></tr><tr><th>002</th><th>小红</th><th>软工</th></tr></tbody></table></div><div><p>【这是第3块】</p><p><img width="300" src="./img/可厉害.png" alt="可厉害" /><img width="300" src="./img/可厉害.png" alt="可厉害" /></p><p><img width="300" src="./img/可厉害.png" alt="可厉害" /><img width="300" src="./img/可厉害.png" alt="可厉害" /></p><p><a href="#anchor1">跳转到页面顶端(锚点位置)</a></p></div>
</body></html>

1.2 HTML表单(写登录界面)

标签

  • label
  • input
  • button
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><title>hello title</title><link rel="icon" href="./img/法案_bill.png" type="image/x-icon" />
</head><body><div><h1>登录网站</h1><hr /><label>账号:<input type="text" name="username" id="username" placeholder="账号" /><br />密码:<input type="password" name="password" id="password" placeholder="密码" /><br />颜色:<input type="color" name="color" id="color" /><br />选择文件:<input type="file" name="file" id="file" /><br />选择日期:<input type="date" name="date" id="date" /><br />备注<textarea name="textarea" id="textarea" cols="30" rows="10" placeholder="多行文本"></textarea><br /><hr /><a href="http://www.baidu.com">忘记密码</a><button>登录</button><br /></label><label><input type="checkbox" name="checkbox" id="checkbox" />我同意本网站的隐私政策<a href="http://www.baidu.com">《隐私政策》</a></label><br><label><input type="radio" name="role" />学生<input type="radio" name="role" />老师<input type="radio" name="role" />管理员<br>选择身份<select><option value="1">学生</option><option value="2">老师</option><option value="3">管理员</option></select></label></div>
</body></html>

2. CSS

用CSS自定样式

  • 用外部css文件
  • 在元素标签中用style=""
  • 在头部定义样式<style>

CSS选择器(指定元素的方式)

  • 标签名: input{}(直接写)
  • class: .test{}(加点)
  • id: #test{}(加#)
  • 所有元素:*
  • 位于某元素内部的元素div label(所有div标签中的label标签)

CSS选择器有优先级(下面从高到低排序)

  • 以最高级为准
  • 最高级:!important
  • 内联选择器
  • ID选择器
  • 类选择器
  • 元素选择器
  • 通配符选择器*

CSS边距

  • 浏览器自带边距
  • 外边距:margin
  • 内边距:padding

常用属性

  • background-color
  • margin
  • padding
  • text-align

制作一个登录界面
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><title>hello title</title><style>body {background-color: #ffffff;margin: 0;text-align: center;}input {border: 0;background: #e0e0e0;line-height: 40px;border-radius: 20px;padding: 0 20px 0 20px;width: 200px;font-size: 16px;margin-top: 20px;}input:focus {outline: 0;}button {margin-top: 20px;background: #6600CC;border-radius: 20px;border: 0;width: 200px;height: 50px;color: white;font-size: 16px;box-shadow: 0px 2px 10px blueviolet;/*按键四周的阴影*/}button:focus {outline: 0;background: #6666CC;}#input-remember {width: auto;}</style>
</head><body style="margin: 0;"><h1>登录</h1><form><hr><div><label for="input-username">账号:</label><input type="text" id="input-username" placeholder="账号" /><br><label for="input-password">密码:</label><input type="password" id="input-password" placeholder="密码" /><br><label for="input-remember">记住我:</label><input type="checkbox" id="input-remember" /><br><a href="#">忘记密码?</a><a href="#">忘记账号?</a></div><div><button type="submit">登录</button></div></form>
</body></html>

3. JavaScript

比起Java,更像Python。弱类型语言

3.1 基础语法

数据类型

  • Number:整数,小数
  • String:字符串
  • Boolean:布尔

特殊值

  • undefined:未定义
  • null:空
  • NaN:非数字(值不合法)

关键字

  • let:变量(不建议用var)
  • const:常量
  • typeof a:查看变量a的类型

常见语法

  • a++
  • for
  • if-else
  • switch-case

关系运算

  • <
  • >
  • <=
  • >=
  • ==:相等
    • 字符串与数字比较,会将字符串转化为数字,如'10'==10输出为true
  • ===:全等(这个类似Java中的 ==

逻辑运算(短路)

  • &&:逻辑与
  • ||:逻辑或
    • 7 || true输出7
    • true || 7输出true
  • !:逻辑非
  • &:按位与
  • |:按位或
  • ?:

输入/输出

  • console.info()
  • window.alert()

3.2 函数

函数

  • function f(){/*函数体*/}
  • 不用写类型(形参,返回值)
/*函数*/
function ff(param) {console.info('得到的参数:'+param)return 998
}/*函数类型变量*/
let k=ff  
k('aa')/*匿名函数*/
let gg=function(){console.info('这是匿名函数')
}
function ff(param) {console.info('函数ff得到的参数:'+param)return 998
}
/*把函数当作参数传递*/
function pp(fp){fp('函数当做参数传递')
}
pp(ff)/*把匿名函数当作参数传递*/
pp(function(a){console.info('匿名函数的形参:'+a)
})
/*匿名函数另一种写法*/
pp((a)=>{console.info('匿名函数的形参:'+a)
})

3.3 数组

数组

  • 一个数组可有不同类型元素共存
  • 可以动态增加
let arr=[23,"Hello",false,undefined,NaN]
/*会自动扩容*/
arr[15] = "kkk";
/* 插入一个元素到数组后面 */
arr.push(100);
/* 从数组后面弹出一个元素 */
arr.pop();

fill方法

arr=[1,2,3,4,5]
/*将数组中的元素全变为1*/
arr.fill(1)
console.log(arr)
/*将下标[1,3)处的元素变为99*/
arr.fill(99,1,3)
console.log(arr);

map方法

arr = [1, 2, 3, 4, 5];
console.log(arr);
/*将数组中的数字全变为字符*/
console.log(arr.map(i => i + ""));
/*将数组中的数字全变为字符,后面加"?"*/
console.log(arr.map(i => i + "?"));

3.4 对象

/*创建对象*/
let a = new Object();
let b = {name: "bname",age: 18,setName(name) {this.name = name;},f: function () {console.log("f function called");},
};
/*动态添加对象*/
a.name = "aname";
a.age = 288;
a.setName = function (name) {this.name = name;
};
a.setName("哦哦哦");
/*若这样写,则this不会绑定到a类的对象*/
a.setName = (name) => {this.name = name;
};console.log(a);
console.log(b);

3.5 事件(js与html)

常用事件

  • onclick: 点击事件
  • oninput:内容输入事件
  • onsubmit:内容输出事件

Dom对象

把整个html界面映射为js对象,从而可在js中操作html中的元素

  • getElementById():通过id获取元素
    • 之后可调用元素的属性,修改元素

【例子】通过按键改变页面元素值
在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>我的网页</title><style>body {text-align: center;}</style><script>function login_click() {document.getElementById("login-state").textContent = "已登录";}function logout_click() {document.getElementById("login-state").textContent = "未登录";}</script>
</head><body><h1>登录到xx系统</h1><p id="login-state">未登录</p><form><div><input type="button" id="login" value="登录" onclick="login_click()" /><input type="button" id="logout" value="注销" onclick="logout_click()" /></div></form>
</body>
</html>

【例子】输入字符长度在[6,20]时,正常,否则边框变为红色
在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>我的网页</title><style>body {text-align: center;}.illegal-pwd {border: red 1px solid !important;box-shadow: 0 0 5px red;}</style><script>function checkIllegal(e) {if (e.value.length <= 20 && e.value.length >= 6) {e.removeAttribute("class");}else {e.setAttribute("class", "illegal-pwd");}}</script>
</head><body><form><div><label for="username">用户名:</label><input type="text" id="username" name="username" oninput="checkIllegal(this)"" required><label for=" password">密码:</label><input type="password" id="password" name="password" required><input type="submit" value="提交" "></div></form>
</body>
</html>

3.6 XHR请求(js与后端)

通过XMLHttpRequest对象,向服务器发送请求

一个发送请求的函数

function httpRequest() {let xhr = new XMLHttpRequest();xhr.open('GET', 'https://www.baidu.com');xhr.send();
}
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>我的网页</title><style>body {text-align: center;}button {width: 100px;height: 50px;margin: 10px;font-size: large;}</style><script>function httpRequest() {let xhr = new XMLHttpRequest();xhr.open('GET', 'https://www.baidu.com');xhr.send();}</script>
</head><body><h1>XHR</h1><hr><div><button style="margin-top: 20px;" onclick="httpRequest()">请求</button></div>
</body></html>

参考

https://www.itbaima.cn/document/k7dfwua3bsezvw9q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/303577.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlserver问题记录

今天在利用sql查询数据时出现如下错误 在执行批处理时出现错误。错误消息为: 引发类型为“System.OutOfMemoryException”的异常。 症状 使用 SSMS 运行返回大量数据的 SQL 查询时&#xff0c;会收到类似于以下内容的错误消息&#xff1a; 执行批处理时出错。 错误消息为&…

nginx工作原理解析

目录 1、master-workers 的工作机制介绍 2、master-workers 的机制的好处 3、设置多少个 worker 4、最大连接数和支持的最大并发数的计算 1、master-workers 的工作机制介绍 nginx在启动后&#xff0c;会有一个master进程和一个或者多个相互独立的worker进程 过来的请求由…

C++模仿qq界面

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口的大小this->resize(645,497);//设置窗口名字this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(QIcon("C:\\zhouzhouMyfile\\qt_proj…

Linux网络编程: TCP协议之SACK与D-SACK详解

一、参考RFC https://www.ietf.org/rfc/rfc2018 https://www.ietf.org/rfc/rfc2883.txt 二、SACK选项&#xff08;RFC2018&#xff09; SACK实现的需要发送方和接收方协作。为此&#xff0c;TCP首部实际上定义了两种选项&#xff1a;SACK允许选项、SACK选项。 SACK允许选项…

突破校园网限速:使用 iKuai 多拨分流负载均衡 + Clash 代理(内网带宽限制通用)

文章目录 1. 简介2. iKuai 部署2.1 安装 VMware2.2 安装 iKuai(1) 下载固件(2) 安装 iKuai 虚拟机(3) 配置 iKuai 虚拟机(4) 配置 iKuai(5) 配置多拨分流 2.3 测试速度 3. Clash 部署(1) 配置磁盘分区(2) 安装 Docker(3) 安装 Clash(4) 设置代理 4. 热点&#xff1a;一起瓜分互…

Redis基本概念

什么是Redis Redis&#xff08;Remote Dictionary Server &#xff09;&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 Redis的用处 缓存 缓存现在几…

shell脚本2

变量 变量是在程序中保存用户数据的一段内存存储空间&#xff0c;变量名是内存空间的首地址 字母、数字、下划线组成&#xff0c;不能以数字开头 原则&#xff1a;直接使用&#xff0c;不需要变量声明 格式&#xff1a;变量名 变量的值 环境变量 关闭窗口即会失效 若要永久生…

数据结构—红黑树

红黑树介绍 红黑树&#xff08;Red Black Tree&#xff09;是一种自平衡二叉查找树。由于其自平衡的特性&#xff0c;保证了最坏情形下在 O(logn) 时间复杂度内完成查找、增加、删除等操作&#xff0c;性能表现稳定。 在 JDK 中&#xff0c;TreeMap、TreeSet 以及 JDK1.8 的 …

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成 目录 数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成&#xf…

深度学习实践(一)基于Transformer英译汉模型

本文目录 前述一、环境依赖二、数据准备1. 数据加载程序解析word_tokenize()将字符串分割为一个个的单词&#xff0c;并由列表保存。 2. 构建单词表程序解析&#xff08;1&#xff09;将列表里每个子列表的所有单词合并到一个新列表&#xff08;没有子列表&#xff09;中。&…

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表 文章目录 RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表1. MQTT概览2. MQTT 5.0 特性1. 特性概要2. Docker中安装RabbitMQ及启用MQTT5.0协议 3. MQTT 5.0 功能列表1. 消息过期1. 描述2. 举例3. 实现 2. 订阅标识…

浅聊java集合框架中的java.util.LinkedList

java集合框架总览 Java集合框架是一个用来代表和操纵集合的统一架构&#xff0c;它为管理和组织对象的集合提供了一组类和接口。这个框架包含三个主要部分&#xff1a;接口、实现和算法。 接口&#xff1a; Collection&#xff1a;这是集合框架的根接口&#xff0c;定义了集…

亚马逊运营必看!如何运用自养号测评获得买家评论转销量?

作为亚马逊卖家&#xff0c;相信大家对亚马逊的产品星级评分 (Rating) 都不陌生&#xff0c;这几颗亮眼的星星&#xff0c;不仅可以让你的Listing脱颖而出&#xff0c;获得足够多、足够高的产品评分&#xff0c;也是促使消费者下单的重要因素之一。 那么&#xff0c;亚马逊运营…

3D可视化技术亮相高铁站,引领智慧出行新潮流

在科技飞速发展的今天&#xff0c;我们的生活正经历着前所未有的变革。高铁站作为现代交通的重要枢纽&#xff0c;也在不断地创新和进步。 3D可视化技术通过三维立体的方式&#xff0c;将高铁站内部和外部的结构、设施、流线等以更加直观、生动的形式呈现出来。乘客们只需通过手…

全国高等学校sql

教育部颁发的最新高等学校名单&#xff0c;sql已整理好(按照省份树形结构)&#xff0c;是mysql8版本的 全国高等学校:预览地址&#xff1a;https://kdocs.cn/l/ckaFzCWMV1jn sql下载地址&#xff1a; https://pan.imgbed.link/file/22581

mac/win使用pyinstaller打包app/exe文件,活着执行脚本,双击运行

&#x1f338; 踩坑记录 python环境最好使用虚拟环境&#xff0c;推荐使用conda管理&#xff0c;并且若本地有python环境&#xff0c;不要使用和 本地环境版本 相同的虚拟环境 这里踩坑较多&#xff0c;已经记不清楚注意点 虚拟环境python版本不要和本地环境一样 mac/win只能…

匿名信一封来信一封云来信表白祝福道歉短信H5公众号,小程序系统搭建(搭建赠送人工传话系统+主机管理面板)

“一封来信”是最近某音上爆火的一个活动话题&#xff0c;可以通过H5网站&#xff0c;编辑自己想要对某人说的话或者祝福&#xff0c;网站会把您想说的发给您预留的号码&#xff0c;可以特定时间&#xff0c;特定话题。 最近的兴起是给朋友或暗恋的人发送新年祝福&#xff0c;…

Leetcode算法训练日记 | day21

一、二叉搜索树的最小绝对差 1.题目 Leetcode&#xff1a;第 530 题 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,…

『大模型笔记』LLMs入门:从头理解与编码LLM的自注意力机制

LLMs入门&#xff1a;从头理解与编码LLM的自注意力机制 这里直接引用我语雀上的的文章&#xff1a;《从头理解与编码LLM的自注意力机制》

python第四次作业

1、找出10000以内能被5或6整除&#xff0c;但不能被两者同时整除的数&#xff08;函数&#xff09; def func():for i in range(10001):if (i % 5 0 or i % 6 0) and i % 30 ! 0:print(i,end " ")func() 2、写一个方法&#xff0c;计算列表所有偶数下标元素的…