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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「 典型安全漏洞系列 」12.OAuth 2.0身份验证漏洞

在浏览网页时&#xff0c;你肯定会遇到允许你使用社交媒体帐户登录的网站。此功能一般是使用流行的OAuth 2.0框架构建的。本文主要介绍如何识别和利用OAuth 2.0身份验证机制中发现的一些关键漏洞。 1. OAuth产生背景 为了更好的理解OAuth&#xff0c;我们假设有如下场景&#…

全国日照时数空间分布数据/月度降雨量分布/月均气温分布

引言 地理遥感生态网结合1971-2021年各地区地面气象监测站数据&#xff0c;应用气候数据空间插值软件Anusplin预测全国日照时数分布数据成果。得出全国各个省市自治区日照时数分布图&#xff0c;全国各省市自治区日照时数数据产品是地理遥感生态网推出的气象气候类数据产品之一…

自定义实现shell/bash

文章目录 函数和进程之间的相似性shell打印提示符&#xff0c;以及获取用户输入分割用户的输入判断是否是内建命令执行相关的命令 全部代码 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#…

人工智能研究生前置知识—jupyter notebook快速上手使用

jupyter notebook快速上手使用 前置说明 使用的前置要求安装了anaconda的环境 特点&#xff1a;以代码块和单元块为基础&#xff0c;可以嵌入Markdown格式的说明文字 通知可以嵌入魔法函数&#xff0c;并导出为指定的格式 格式.ipynb&#xff09;&#xff08;不仅仅可以运行py…

支持多元AI场景应用,宁畅“NEX AI Lab”开放试用预约中

3月29日&#xff0c;宁畅在京举行发布会&#xff0c;正式发布“全局智算”战略&#xff0c;并在会上推出战略性新品“AI算力栈”&#xff0c;旨在有效解决大模型产业落地的全周期问题。 据宁畅CTO赵雷介绍&#xff0c;“AI算力栈”集成了宁畅在AI计算领域的软硬件能力&#xff…

FJSP:蜣螂优化算法( Dung beetle optimizer, DBO)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题&#xff08;Flexible Job Shop Scheduling Problem&#xff0c;FJSP&#xff09;&#xff0c;是一种经典的组合优化问题。在FJSP问题中&#xff0c;有多个作业需要在多个机器上进行加工&#xff0c;每个作业由一系列工序组成&a…

实现点击用户头像或者id与其用户进行聊天(vue+springboot+WebSocket)

用户点击id直接与另一位用户聊天 前端如此&#xff1a; <template><!-- 消息盒子 --><div class"content-box" :style"contentWidth"><!-- 头像&#xff0c;用户名 --><div class"content-box-top box--flex">&l…

大数据毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 计算机毕业设计 机器学习 深度学习 人工智能

附件3 文山学院本科生毕业论文&#xff08;设计&#xff09;开题报告 姓名 性别 学号 学院 专业 年级 论文题目 基于协同过滤算法的高考志愿推荐系统的设计与实现 □教师推荐题目 □自拟题目 题目来源 题目类别 指导教师 选题的目的、意义(理论…

C++从入门到精通——初步认识面向对象及类的引入

初步认识面向对象及类的引入 前言一、面向过程和面向对象初步认识C语言C 二、类的引入C的类名代表什么示例 C与C语言的struct的比较成员函数访问权限继承默认构造函数默认成员初始化结构体大小 总结 前言 面向过程注重任务的流程和控制&#xff0c;适合简单任务和流程固定的场…

spring boot学习第十六篇:配置多数据源

1、代码参考&#xff1a; dynamic-ds/spring-boot-dynamic-ds at main veminhe/dynamic-ds GitHub 2、验证 2.1调用POST接口http://localhost:8081/hmblogs/blog/addBlog 2.2改动数据源为BJ 然后调用接口添加数据 然后查看ds0库的博客数据

Open CASCADE学习|放样建模

在CAD软件中&#xff0c;Loft&#xff08;放样&#xff09;功能则是用于创建三维实体或曲面的重要工具。通过选取两个或多个横截面&#xff0c;并沿这些横截面进行放样&#xff0c;可以生成复杂的三维模型。在CAD放样功能的操作中&#xff0c;用户可以选择不同的选项来定制放样…

Redis实战篇-集群环境下的并发问题

实战篇Redis 3.7 集群环境下的并发问题 通过加锁可以解决在单机情况下的一人一单安全问题&#xff0c;但是在集群模式下就不行了。 1、我们将服务启动两份&#xff0c;端口分别为8081和8082&#xff1a; 2、然后修改nginx的conf目录下的nginx.conf文件&#xff0c;配置反向代…

matrix-breakout-2-morpheus 靶机渗透

信息收集&#xff1a; 1.nmap存活探测&#xff1a; nmap -sn -r 192.168.10.1/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-06 12:13 CST Nmap scan report for 192.168.10.1 Host is up (0.00056s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap…

深入go泛型特性之comparable「附案例」

写作背景 如果你经常遇到一些操作&#xff0c;比如将 map 转换为 slice&#xff0c;判断一个字符串是否出现在 map 中&#xff0c;slice 中是否有重复元素等等&#xff0c;那你对下面这个库肯定不陌生。 github.com/samber/lo最近抽业余时间在看了源码&#xff0c;底层用了范…

c语言实现2048小游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h>int best 0 ;// 定义2048游戏的结构体 typedef struct { int martix[16]; // 当前4*4矩阵的数字 int martixPrior[16]; // 上一步的4*4矩阵的数字 int emptyIndex[16…

4.6(信息差)

&#x1f30d; 山西500千伏及以上输电线路工程首次采用无人机AI自主验收 &#x1f30b; 中国与泰国将开展国际月球科研站等航天合作 ✨ 网页版微软 PowerPoint 新特性&#xff1a;可直接修剪视频 &#x1f34e; 特斯拉开始在德国超级工厂生产出口到印度的右舵车 1.马斯克&…

Qt 使用QPropertyAnimation动画效果的图片浏览器

文章目录 效果图功能点代码解析图片切换显示与动画效果图片缩放 总结 效果图 功能点 加载指定路径下的所有图片并显示滑动滑动条查看指定图片&#xff0c;也滚轮切换图片滑动条缩略图加入动画效果图片可以进行缩放移动查看 代码解析 整体来说相对&#xff0c;显示图片的是一…

4.1 JavaScript的使用

JavaScript有两种使用方式&#xff1a;一是在HTML文档中直接添加代码&#xff1b;二是将JavaScript脚本代码写到外部的JavaScript文件中&#xff0c;再在HTML文档中引用该文件的路径地址。 这两种使用方式的效果完全相同&#xff0c;可以根据使用率和代码量选择相应的开发方式。…

【Qt】:常用控件(一:概述和QWidget核心属性)

常用控件 一.概述二.QWidget核心属性1.enabled&#xff08;是否可用&#xff09;2.geometry&#xff08;设置坐标&#xff09;3.WindTitle&#xff08;窗口标题&#xff09;4.windowIcon1.绝对路径2.qrc机制 5.windowOpacity&#xff08;透明度&#xff09; 一.概述 Widget是Q…

Spring源码解析-容器基本实现

spring源码解析 整体架构 defaultListableBeanFactory xmlBeanDefinitionReader 创建XmlBeanFactory 对资源文件进行加载–Resource 利用LoadBeandefinitions(resource)方法加载配置中的bean loadBeandefinitions加载步骤 doLoadBeanDefinition xml配置模式 validationMode 获…