【Java Web学习 | 第1篇】前端 - HTML

【Java Web学习 | 第1篇】前端 - HTML
在这里插入图片描述

文章目录

Java Web概览

在这里插入图片描述

HTML核心知识点总结

一、HTML基础概念🥝

HTML(HyperText Markup Language)是超文本标记语言,通过标签描述页面结构。

1.1 HTML文档基本结构

一个标准的HTML文档结构如下:

<!DOCTYPEhtml><!--文档类型声明标签 --><htmllang="zh-CN"><!-- 定义语言的种类 en为English zh-CN为中文 --><head><metacharset="UTF-8"><!-- 用于保存文字,不写会乱码--><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>HTML基础标签</title></head><body><!-- 页面内容 --></body></html>
  • <!DOCTYPE html>:声明文档类型为HTML5
  • <html>:根元素,包含整个HTML文档
  • <head>:包含文档的元数据(如字符集、标题等)
  • <body>:包含网页的可见内容

1.2 HTML标签特点

  • 大多数标签成对出现,如<p></p>
  • 部分标签是自闭合的,如<img><input><br>
  • 标签可以嵌套,但不能交叉嵌套
  • 标签名不区分大小写,但推荐使用小写

二、常用HTML标签🧾

2.1 文本标签

  • <h1>-<h6>:标题标签,h1级别最高,h6级别最低
  • <p>:段落标签
  • <strong>/<b>:加粗文本,strong有语义强调
  • <em>/<i>:斜体文本,em有语义强调
  • <br>:换行标签
  • <hr>:水平线标签
  • <span>:行内元素,用于包裹部分文本,一行可以放多个 span
  • <del>/<s>:删除线标签,推荐用 del
  • <ins>/<u>:下划线标签,推荐用 ins
  • &nbsp:空格符号

示例:

<body><h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5>五级标题</h5><h6>六级标题</h6><p>这是一个段落,这里强制换行<br>包含<strong>加粗文本</strong>和<em>斜体文本</em></p><hr> 试验空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格 <hr><!--<del>和<s>都为删除标签 推荐用<del>--> 我是<del>删除线</del> 我是<s>删除线</s><!--<ins>和<u>都为下划线标签 推荐用<ins> --> 我是<ins>下划线</ins> 我是<u>下划线</u></body>

显示效果:

在这里插入图片描述

2.2 链接与图像

  • <a>:链接标签,herf="跳转目标的地址target=“目标窗口的弹出方式”(默认为_self 当前窗口打开页面 _blank 新窗口打开页面)
  • <img>:图像标签,src属性指定图像路径,alt属性提供替代文本(图片无法正常显示时会使用文本),title属性为设置提示文本:鼠标放到图标上的文字,width属性为图像设定宽度,height属性为图像设定高度,border属性为图像设定边框

示例:

<ahref="https://www.ZEEKLOG.net"target="_blank">访问ZEEKLOG</a><imgsrc="../picture/背景2.jpg"alt="这是图片无法正常显示的替换文字"title="这是好看的风景"width="600"border="0"/>

显示效果:

在这里插入图片描述
综合示例
<!DOCTYPEhtml><!--文档类型声明标签 --><htmllang="zh-CN"><!-- 定义语言的种类 en为English zh-CN为中文 --><head><metacharset="UTF-8"><!-- 用于保存文字,不写会乱码--><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>HTML基础标签</title></head><body><!--标题标签 一共有六级 h1到h6--><h1id="top">标题标签</h1><h2>二级标题</h2>1234 <!--锚点链接(href属性设置为 #名字 的形式)(#对应空链接),点击后快速跳转到对应的id标记位置 我写在了最后面--><ahref="#life">生活介绍</a><!-- <br/>为强制换行标签(break)只会简单另起一行,不会有间隙--><!--段落标签存在间隙(段落与段落)--><p>大家好我是<br/> 林晓然</p><!--<strong>或<b>标签为加粗 更推荐用<strong>标签--><p>这是一个<strong>段落</strong>标签,加粗的<b>文字</b></p><!-- <em>与<i>都为倾斜标签 推荐用<em>--> 我是<em>倾斜</em>的文字 我是倾斜的文字 我是<i>倾斜</i>的文字 <!--<del>和<s>都为删除标签 推荐用<del>--> 我是<del>删除线</del> 我是<s>删除线</s><!--<ins>和<u>都为下划线标签 推荐用<ins> --> 我是<ins>下划线</ins> 我是<u>下划线</u><!--<div>标签来布局,就是一个大盒子,独占一行,每行只能放一个<div>--><div>我是一个div标签,我一个人单独占一行</div>123 <div>我是一个div标签,我一个人单独占一行</div><!--<span>标签用来布局(division),一行可以放多个<span>,小盒字(span--》跨度)--><span>我是一个span标签</span><span>百度</span><span>新浪</span><span>微博</span><h2>图像标签的使用</h2><!--<img>标签(单标签)用于定义HTML页面中的图像 src是<img>标签的必须属性,用于指定图像文件的路径和文件名 alt图片不能正常显示时的替换文本(alternative) title为提示文本,鼠标放到图标上的文字 width为图像设定宽度 height为图像设定高度 border为图像设定边框--><imgsrc="img1.jpg"alt="这是图片无法正常显示的替换文字"title="这是好看的风景"width="350"border="100"/><br/><imgsrc="img2.jpg"alt="这是图片无法正常显示的替换文字"title="你好"/><!--图片在相对html文件所在位置的下一级目录 若为上一级目录则用../ --><imgsrc="picture/img1.jpg"height="100"/><!--绝对路径(不推荐)--><imgsrc="E:\WebTest\img1.jpg"height="100"/><!--网络上图片的绝对路径--><imgsrc="https://developer.mozilla.org/zh-CN/docs/Learn_web_development/Getting_started/Environment_setup/Command_line/glitch.png"/><!--超链接标签<a herf="跳转目标的地址 target="目标窗口的弹出方式"(默认为_self 当前窗口打开页面 _blank 新窗口打开页面)>(双标签)--><h4>外部超链接</h4><ahref="http://www.qq.com"target="_blank">腾讯</a><!--内部超链接--><h4>内部超链接(网站内部之间的相互连接)</h4><ahref="web2/web2.html"target="_blank"> 内部跳转</a><!--空链接 用#代替地址(用于开发时先搭建好框架,先不考虑具体地址)--><ahref="#"target="_blank">公司地址</a><!--下载连接 如果href里面的地址是一个文件或者压缩包,会下载这个文件--><ahref="img1.zip">下载链接</a><!--其他网页元素也可以进行超链接--><ahref="http://baidu.com"target="_blank"><imgsrc="img1.jpg"width="100"/></a><br/><!--空格符号 &nbsp; 小于号&lt; 大于号 &gt;--> 试验空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格和&lt;大于小于&gt;符号 <!--锚点连接 使用id进行标记--><h3id="life">这是林晓然的生活简介,噼里啪啦一大堆省略。。。</h3><ahref="#top">返回顶部</a></body></html>

显示效果:

在这里插入图片描述

2.3 列表标签

  • <ul>:无序列表
  • <ol>:有序列表
  • <li>:列表项

示例:

<!-- 无序列表 --><ul><li>项目1</li><li>项目2</li></ul><!-- 有序列表 --><ol><li>第一步</li><li>第二步</li></ol>

显示效果:

在这里插入图片描述

2.4 表格标签

  • <table>:表格容器
  • <tr>:表格行 (table row)
  • <td>:表格单元格 (行中的每个单元格(数据)table data)
  • <th>:表头单元格 (table head)
  • <thead><tbody><tfoot>:表格结构分区
  • cellpadding属性规定单元边沿与其内容之间的空白,默认1像素
  • cellspacing属性规定单元格之间的空白,默认2像素
  • border属性表示表格边框的厚度
  • align表示整个表格的排放位置:left靠左,center居中,right靠右

示例:

<tablealign="left"border="10"cellpadding="20"cellspacing="0"width="300"height="50"><thead><tr><th>姓名</th><th>性别</th><th>年龄</th></tr></thead><tbody><tr><td>立夏</td><td>女</td><td>18</td></tr><tr><td>肖奈</td><td>男</td><td>18</td></tr></tbody></table>

显示效果:

在这里插入图片描述

2.5 表单标签

  • <form>:表单容器,会把它范围内的表单元素提交给服务器

其核心属性说明:

  • action:指定表单数据提交的 URL 地址
  • method:提交方式,主要有get和post两种: get:数据会显示在 URL 中,会暴露信息,适合简单查询(有长度限制);post:数据在请求体中传输,适合提交敏感信息或大量数据

type的常用属性值:

type属性值说明/功能典型应用场景关键属性示例
text单行文本输入(默认类型)用户名、姓名等普通文本输入placeholder=“请输入用户名”
password密码输入(内容加密显示)密码、验证码输入minlength=“6”
number仅允许输入数字年龄、数量、身高体重等数值输入min=“0” max=“120” step=“1”
radio单选按钮(同组name值需相同)
属性checked(属性值只能为checked),作用为一打开界面就默认选中某个表单元素
性别、单选题等互斥选项选择name=“gender” checked
checkbox复选框(可多选)
属性checked(属性值只能为checked),作用为一打开界面就默认选中某个表单元素
爱好、兴趣等多选项选择name=“hobby” value=“reading”
date日期选择器(年/月/日)生日、预约日期等日期输入——
file文件上传控件头像、文档等文件上传accept=“image/*” multiple
email邮箱格式输入(自带格式验证)邮箱地址输入placeholder=“[email protected]
submit表单提交按钮提交表单数据value=“提交”
reset表单重置按钮清空表单内容value=“重置”
select下拉选择框(需配合option使用)城市、学历等固定选项选择size=“1” multiple
textarea多行文本输入(当输入内容可能过多时,就改text为textarea)个人简介、备注等长文本输入rows=“5” cols=“30” maxlength=“500”
解释: rows=“初始显示的行数”
cols=“每行中的字符数”
button普通按钮一般是结合JavaScript启动脚本value=“获取验证码”

注意:

  1. 选择类控件(radio/checkbox)需设置value值,提交时会将选中项的value发送到后端
  2. 同一组单选按钮name值必须相同,才能实现互斥效果;复选框要设置相同name,提交时会以数组形式传递勾选的数据。

示例:

<formaction="/submit"method="get"name="name1"><!-- text 文本框,可以输入任何文字 此处的value值为input元素的初始默认值,会出现在文本框中 maxlength为文本框可输入的最大长度--> 用户名:<inputtype="text"name="username"value="请输入用户名"maxlength="7"/><br/><!-- label标签用于绑定一个表单元素,当点击<label>标签绑定的文本时,浏览器会自动将光标转到或者选择到对应的表单元素上,来增加用户体验 --><!-- label 里用for="..."来指向对应的标签 , 而标签的创建则用id="。。。" --> label标签测试--》 <labelfor="aaa">用户名2</label><inputtype="text"id="aaa"/><labelfor="man">男士</label><inputtype="radio"id="man"/><br/><!-- password 密码框,用户看不见输入的密码 --> 密码:<inputtype="password"/><br/><!-- radio 单选框(圆形), 注意name(表单元素的名字)的值要设置为一样的才可实现单选 --><!-- 此处的value 并不会出现在页面中,主要作用是用户勾选并提交后将用户勾选的结果发送到后台 --><!-- 还有属性checked(属性值只能为checked),它针对单选按钮和复选框,作用为一打开界面就默认选中某个表单元素 --> 男<inputtype="radio"name="sex"value="男"checked="checked"/> 女<inputtype="radio"name="sex"value="女"/><br/><!-- checkbox 复选框(正方形,可以单个用), 注意name的值也要设置为一样 --> 性格:活泼<inputtype="checkbox"name="personality"value="活泼"/> 开朗<inputtype="checkbox"name="personality"value="开朗"checked="checked"/>阳光<inputtype="checkbox"name="personality"value="阳光"/><br/><!-- 普通按钮 button ,一般是结合javaScript启动脚本--><inputtype="button"value="获取验证码"/><br/><!-- file 实现选择文件上传功能 --> 上传头像:<inputtype="file"/><br/><!-- <select>为下拉列表 其至少包含一对<option> 在<option>中定义selected="selected"是,当前项即为默认选项 --> 籍贯: <select><option>山东</option><option>北京</option><option>天津</option><optionselected="selected">广东</option><option>福建</option></select><br/><!-- textarea标签是用于定义多行文本输入的控件,当输入内容可能过多时,就改text为textarea --><!-- rows="初始显示的行数" cols="每行中的字符数" 了解即可,在实际开发中不会使用,都是用CSS来改变大小--> 反馈留言: <textarearows="3"cols="20">我知道这个反馈留言是用textarea来做的</textarea><br/><!-- 当点击提交按钮(submit的默认显示文字为提交,可通过value更改显示的文字)时,会把表单数据发送到服务端 --><inputtype="submit"value="火箭提交"/><!-- reset重置按钮(默认显示文字为 重置,也可通过value修改、) --><inputtype="reset"/></form>

显示效果:

在这里插入图片描述

三、HTML5新增特性🤔

HTML5带来了许多新特性,增强了网页的功能和语义化:

3.1 语义化标签

  • <header>:页面头部
  • <nav>:导航栏
  • <main>:主要内容
  • <article>:独立文章内容
  • <section>:内容区块
  • <aside>:侧边栏
  • <footer>:页脚

语义化标签的优势:

  • 提高代码可读性
  • 有利于SEO优化
  • 方便屏幕阅读器等辅助技术解析

3.2 媒体标签

  • <video>:视频播放
  • <audio>:音频播放

示例:

<audiosrc="..\music\邓壬鑫 - 这一秒只想在爱里沉溺(治愈《恋愛の資格》日语念白-溯 (Reverse).feat.mp3"controlswidth="400"></audio>

显示效果:

在这里插入图片描述

3.3 其他新增特性

  • 本地存储(localStorage、sessionStorage)
  • Canvas绘图
  • 地理定位
  • 拖放API
  • 新的表单类型(如date、time、number等)

四、学习资源推荐🐦‍🔥

  1. MDN Web Docs - 最权威的HTML参考文档
  2. W3Schools - 包含丰富的示例和在线编辑器

如果有任何问题或补充,欢迎在评论区留言讨论!


如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

Read more

Lostlife2.0任务系统智能化:LLama-Factory驱动动态任务生成

Lostlife2.0任务系统智能化:LLama-Factory驱动动态任务生成 在今天的开放世界游戏中,玩家早已不再满足于“前往A点、击败B怪、带回C物品”这种千篇一律的任务链条。他们期待的是一个能感知自身状态、理解行为偏好、甚至记住过往选择的“活”的游戏世界。而要实现这一点,传统脚本化设计显然力不从心——内容量大、维护成本高、缺乏灵活性。 正是在这样的背景下,Lostlife2.0 开始尝试用大语言模型(LLM)重构其任务系统的核心逻辑。我们不再预先编写成千上万条任务指令,而是训练一个能够“根据情境实时生成合理任务”的智能引擎。而支撑这一构想落地的关键工具,正是开源社区中迅速崛起的一站式微调框架——LLama-Factory。 从“写死逻辑”到“学会出题”:为什么我们需要模型来生成任务? 设想这样一个场景:两名等级相同的玩家同时进入幽暗森林。一人背包空空、饥饿值低;另一人则装备齐全但缺少治疗资源。如果系统给两人派发完全相同的任务,比如“去砍10棵树”,那显然既不合理也不有趣。 理想情况下,系统应该像一位经验丰富的DM(地下城主),能结合当前环境、

对比测试:Fun-ASR与Whisper语音识别效果与速度差异

对比测试:Fun-ASR与Whisper语音识别效果与速度差异 在企业办公场景中,每天都有成百上千小时的会议录音、客服通话和培训音频亟待处理。如何高效地将这些声音“翻译”成可搜索、可分析的文字?这不仅是效率问题,更是数据资产化的核心环节。过去几年,语音识别技术突飞猛进,尤其是OpenAI推出的Whisper系列模型,一度被视为行业标杆。然而,在真实中文语境下——口音多样、术语密集、环境嘈杂——通用型模型的表现往往不尽如人意。 正是在这种背景下,钉钉联合通义实验室推出的Fun-ASR逐渐进入开发者视野。它不追求“支持99种语言”的广度,而是聚焦于一件事:把中文说得更准、转得更快、用得更稳。更重要的是,它不是一段代码或一个API,而是一整套可以本地运行、开箱即用的语音识别系统,自带Web界面、热词增强、批量处理和历史管理功能。对于需要私有化部署、保障数据安全的企业来说,这种设计思路显然更具现实意义。 那么,当Fun-ASR真正面对Whisper时,差距究竟在哪里?是精度更高,还是速度快到质变?又或者只是“本地可用”这一点就足以决定胜负? 我们不妨从一次真实的批量转写任务说起。 假

Llama-3.2-3B部署实录:Ollama本地大模型从下载到生成仅需90秒

Llama-3.2-3B部署实录:Ollama本地大模型从下载到生成仅需90秒 想体验最新的大语言模型,但又担心复杂的部署流程和漫长的等待时间?今天,我要分享一个极其简单的方案:使用Ollama在本地部署Meta最新发布的Llama-3.2-3B模型。整个过程从下载模型到生成第一段文字,最快只需要90秒,而且完全免费,不需要任何复杂的配置。 Llama-3.2-3B是Meta推出的轻量级多语言大模型,虽然只有30亿参数,但在很多任务上的表现已经相当出色。更重要的是,它非常“亲民”,对普通电脑配置要求不高,通过Ollama这个工具,你可以像安装一个普通软件一样把它装到自己的电脑上,随时随地调用。 这篇文章,我将带你走一遍完整的部署流程,从零开始,手把手教你如何用最简单的方法,在自己的电脑上跑起这个强大的AI助手。 1. 准备工作:认识我们的工具和模型 在开始动手之前,我们先花一分钟了解一下今天要用到的两个核心:Ollama和Llama-3.2-3B模型。了解它们是什么,能帮你更好地理解后面的每一步操作。 1.1 Ollama:你的本地大模型管家 你可以把Ollama想象成

llama.cpp终极内存优化指南:让大模型推理性能飙升200%

llama.cpp终极内存优化指南:让大模型推理性能飙升200% 【免费下载链接】llama.cppPort of Facebook's LLaMA model in C/C++ 项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp 在资源受限环境下运行大型语言模型时,内存管理往往成为制约性能的关键瓶颈。llama.cpp作为C/C++实现的LLaMA模型移植项目,通过创新的内存池架构从根本上解决了这一挑战。本文将深入解析其内存优化策略,为技术决策者和架构师提供完整的性能调优方案。 从内存碎片化到高效推理的技术演进 传统动态内存分配在大模型推理场景下面临严峻挑战:频繁的malloc/free操作导致内存碎片化严重,KV缓存的持续分配与释放直接拖累推理速度。llama.cpp采用预分配与复用机制的革命性思路,在模型启动时根据参数分配连续内存块,通过状态标记实现内存块的循环利用。 图:矩阵乘法中行优先与列优先存储方式对内存访问模式的影响 架构设计哲学:分层抽象与统一接口 llama.cpp的内存管理体系建立在三个关键