Web开发(一)HTML5

Web开发(一)HTML5

写在前面

参考黑马程序员前端Web教程做的笔记,主要是想后面自己搭建网页玩。

这部分是前端HTML5+CSS3+移动web视频教程的HTML5部分。主要涉及到HTML的基础语法。

HTML基础

标签定义

HTML定义

HTML(HyperText Markup Language),即超文本标记语言。

超文本:链接

标记:标签,带尖括号的文本。

image-20250112165358466

标签语法定义如下,但凡需要包裹内容的就是双标签,只有几个是单标签。

image-20250112170719026

基本骨架

在vscode中按!后配合Enter/Tab可以快速生成

image-20250112171004109

如下所示。image-20250112171447904

标签的关系

包括父子关系(嵌套关系)、兄弟关系(并列关系)。

如下所示,head和body就是兄弟关系,外面的html和内层head、body属于父子关系。

image-20250112194823051

注释

<!-- 注释内容 -->

标题标签

标题标签同typora自带的六级标题一样。标题标签会自动换行。一般来说h1标签在一个网页只用一次,用来放新闻标签或网页logo。

image-20250112195737929

段落标签

顾名思义,用于写文字的一段。

image-20250112195925735

image-20250112200311135

换行和水平线标签

这两个都是单标签。

image-20250112200629509

换行中,浏览器不会识别代码中的Enter换行。因为不管是一个间隙还是多个间隙,浏览器可以识别为1个空格。如果要多个空格,就得输入&nbsp;

&nbsp; 是 HTML 中的一个特殊字符实体(Entity),表示"不换行空格"(Non-Breaking Space)。它有以下几个主要作用:

  1. 插入空格:在 HTML 中,多个连续的普通空格会被浏览器解析为一个空格,而&nbsp; 可以强制插入一个空格。

  2. 保持不换行:它可以防止文本在这个位置换行。

示例结果如下:

    <!-- 使用普通空格 -->
    第一行内容 第二行内容
    <br>
    <!-- 使用&nbsp; -->
    第一行内容&nbsp;第二行内容
    <br>
    <!-- 使用多个&nbsp;可以创建更大的间距 -->
    第一行内容&nbsp;&nbsp;&nbsp;第二行内容

image-20250112201135040

文本格式化标签

image-20250112201633152

通常用strong、em、ins、del标签写文本格式化标签(而不是b,i,u,s)。

em:emphasis

ins:insert

del:delete

b:bold,即粗体

i:italic,即斜体

u:underline,即下划线

s:strike-through,指的是穿过文本的删除线。

image-20250112201801148

图像标签

图片的URL存放图片的位置,

image-20250112202959413

vscode自带alt参数,alt是图片的替换文字,当图片显示错误时显示alt的文字。

image-20250112203223168

主要用到alt参数和title参数。

image-20250112203716125

另外还有width和height属性,但它们通常通过CSS得到。如果指定width(height),浏览器会等比例缩放height(width)。image-20250112203628806

路径指定,友情链接也属于绝对路径的应用。本地一般用相对路径。

image-20250112204659946

超链接标签

image-20250112215415510

点击后跳转到其他页面,为双标签。如下所示,href中写目标网页地址

<a href="">跳转文字描述</a>

用target="_blank"可以选择新窗口打开。

image-20250112215058312

在开发初期,不知道超链接的跳转地址,href属性值写#,来表示空链接,不会跳转。

<a href="#">空链接</a>

音频、视频标签

音频标签

音频在默认情况下不会自动播放。

image-20250112215843777

control用于显示音频控制面板。**在HTML5中,如果属性名和属性值完全一样,那么可以简写为一个单词。**即下两者是等价的。

(1)controls = "controls"
(2)controls

image-20250112220116756

对于loop、autoplay同样可以简写为一个单词。但是即使设置了autoplay属性,仍然无法播放,因为浏览器一般禁用自动播放功能。

image-20250112220610895

视频标签

image-20250112220716321

autoplay需要配合muted属性设置才能生效。否则不会自动播放。

image-20250112220941834

综合案例1——个人简介

整体目标与代码

思路如下,从上到下,先整体后局部。

image-20250112224524807

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>个人简介</title>
</head>
<body>
    <h1><strong>尤雨溪</strong></h1>
    <hr>
    <p>
        尤雨溪,前端框架<a href="#">Vue.js</a>的作者,<a href="#">HTML5</a>版Clear的打造人,独立开源开发者。曾就职于Google Creative Labs和Meteor Development Group。由于工作中大量接触开源的<a href="#">JavaScript</a>项目,最后自己也走上了开源之路,现全职开发和维护<a href="#">Vue.js</a></p>
    <img src="cat.gif" alt="一只猫的gif" title="一只猫的gif">
    <h2>学习经历</h2>
    <p>
        尤雨溪毕业于上海复旦附中,在美国完成大学学业,本科毕业于Colgate University,后在Parsons设计学院获得Design & Technology艺术硕士学位,任职于纽约Google Creative Lab。
    </p>
    <h2>主要成就</h2>
    <p>
        尤雨溪<strong>大学专业并非是计算机专业</strong> ,在大学期间他学习专业是室内艺术和艺术史,后来读了美术设计和技术的硕士,<ins>正是在读硕士期间,他偶然接触到了JavaScript ,从此被这门编程语言深深吸引,开启了自己的前端生涯。</ins>
    </p>
    <p>
        2014年2月,开发了一个前端开发库Vue.js。Vue.js 是构建 Web 界面的 JavaScript 库,是一个通过简洁的API提供高效的数据绑定和灵活的组件系统。
    </p>
    <h2>社会任职</h2>
    <p>
        2016年9月3日,在南京的JSConf上,Vue作者尤雨溪正式宣布加盟阿里巴巴Weex团队,尤雨溪称他将以技术顾问的身份加入Weex团队来做 Vue 和 Weex 的 JavaScript runtime 整合,目标是让大家能用 Vue 的语法跨三端。
    </p>
</body>
</html>
小tips

一段的文字过长,可以用alt+z快捷键换行,方便观看。

image-20250112222942895

如果要在段落中插入超链接,可以在光标后先打一个空格,这样就可以有vscode的编译提示。

image-20250112223142402

综合案例2——Vue简介

image-20250112231502990

完整代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue简介</title>
</head>
<body>
    <h1>Vue.js</h1>
    <p>
        Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。
    </p>
    <p>
        其作者为<a href="./test1_cv.html" target="_blank">尤雨溪</a>
    </p>
    <h2>主要功能</h2>
    <p>
        Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
    </p>
    <p>
        Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
    </p>
    <p>
        Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时 [2] ,Vue.js 也能驱动复杂的单页应用。
    <video src="./vue.mp4" controls></video>
    </p>    
</body>
</html>

HTML进阶语法

列表

一般来说,无序列表用的最多。

image-20250113094311893

无序列表

注意事项

  1. ul标签中只能包裹li标签,无法包裹如段落p其他标签
  2. li标签中可以包裹任何内容。
  3. ul:unorder list

image-20250113094427438

image-20250113094732888

有序列表

ol:ordered list

image-20250113094948715

定义列表

dl:define list

dt:define title

dd:define detail

image-20250113095443181

1736733240509

表格

与Excel表格类似。

tr(table row)

th(table headline)

td(table data)

image-20250113100218490

image-20250113100137526

表格的结构,这儿的thead、tbody是给浏览器看的,目的是代码优化,浏览器更好识别内容。

image-20250113100352705

image-20250113100635054

合并单元格

image-20250113101820051

跨行合并例子image-20250113101948011

跨列合并例子

image-20250113102050759

不能跨结构标签(thead,tbody,tfoot)合并,即不能合并tbody中的“李四”和tfoot中的“总结”。

image-20250113102147288

表单

定义

image-20250113102403997

input标签
基础

input为单标签

image-20250113102524068

image-20250113103108802

占位文本

用于提示信息。

image-20250113103217147

image-20250113103426937

单选框radio

image-20250113103906459

image-20250113103712944

设置默认选择“checked”,会默认选择对应单选框。

image-20250113103813856

上传多个文件

image-20250113103938364

image-20250113104037101

多选框checkbox

image-20250113104205882

image-20250113104245842

下拉菜单

image-20250113104802766

image-20250113105011266

文本域

默认的col和row不用html设计,而是后面用css设计。

image-20250113105231976

image-20250113105439897

这里应该在前面的方括号后面添加placeholder=“请输入评论”,否则会和用户输入混淆。image-20250113105752705

label标签

image-20250113110006513

label有两种方法

image-20250113110332551

完整写法代码示例

image-20250113110201326

简易写法示例

image-20250113110305947

按钮button

默认type属性为submit

image-20250113111842573

需要定义form标签,来定义表单区域。

image-20250113112158335

无语义的布局标签

image-20250113112544573

div一般称为大盒子,span称为小盒子。

image-20250113112734677

使用示例,三个红框都是用div标签隔出来的。

image-20250113112904659

字符实体

lt:less than

gt:greater than

中文字符大小的空格字符:&emsp;

image-20250113114104546

image-20250113114330458

综合案例1——体育新闻列表

对应实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>体育新闻列表</title>
</head>
<body>
    <ul>
        <li>
            <img src="./img/1.jpg" alt="主帅安东尼奥回西班牙休假 国青抵达海口进行隔离">
            <h3>主帅安东尼奥回西班牙休假 国青抵达海口进行隔离</h3>
        </li>
        <li>
            <img src="./img/2.jpg" alt="梅州主帅:申花有强有力的教练组 球员体能水平高">
            <h3>梅州主帅:申花有强有力的教练组 球员体能水平高</h3>
        </li>
        <li>
            <img src="./img/3.jpg" alt="马德兴:00后球员将首登亚洲舞台 调整心态才务实">
            <h3>马德兴:00后球员将首登亚洲舞台 调整心态才务实</h3>
        </li>
    </ul>
</body>
</html>

综合案例2——注册信息

完成示例:

image-20250113140250395

这儿的确认密码和密码相同是通过js确认的,现在只需要设计出样式即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册信息</title>
</head>
<body>
    <h1>注册信息</h1>
    <form action="">
        <h2>个人信息</h2>
        <label>姓名:</label><input type="text" placeholder="请输入真实姓名">
        <br><br>
        <label>密码:</label><input type = "password" placeholder="请输入密码">
        <br><br>
        <label>确认密码:</label><input type = "password" placeholder="请再次输入密码">
        <br><br>
        <label>性别:</label>
        <label><input type="radio" name="gender"></label>
        <label><input type="radio" name="gender" checked></label>
        <br><br>
        <label>居住城市:</label>
        <select>
            <option>北京</option>
            <option>上海</option>
            <option>广州</option>
            <option>深圳</option>
            <option selected>武汉</option>
        </select>

        <h2>教育经历</h2>
        <label>最高学历:</label>
        <select>
            <option>本科</option>
            <option selected>硕士</option>
            <option>博士</option>
            <option>大专</option>
        </select>
        <br><br>
        <label>学校名称:</label>
        <input type="text">
        <br><br>
        <label>所学专业:</label>
        <input type="text">
        <br><br>
        <label>在校时间:</label>
        <select>
            <option>2015</option>
            <option>2016</option>
            <option>2017</option>
            <option>2018</option>
        </select>
        --
        <select>
            <option>2019</option>
            <option>2020</option>
            <option>2021</option>
            <option>2022</option>
        </select>
        <h2>工作经历</h2>
        <label>公司名称:</label>
        <input type="text">
        <br><br>
        <label>工作描述:</label>
        <br>
        <textarea placeholder="请输入工作描述"></textarea>
        <br><br>
        <label><input type="checkbox">已阅读并同意以下协议:</label>
        <br>
        <ul>
            <li>
                <a href="#">《用户服务协议》</a>
            </li>
            <li>
                <a href="#">《隐私政策》</a>
            </li>
        </ul>
        <br><br>
        <button>免费注册</button>
        <button type="reset">重新填写</button>
    </form>

</body>
</html>

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

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

相关文章

软件设计大致步骤

由于近期在做软件架构设计&#xff0c;这里总结下大致的设计流程 软件设计流程 1 首先要先写系统架构图&#xff0c;将该功能在整个系统的位置以及和大致的内部模块划分 2 然后写内部的结构图&#xff0c;讲内部的各个子系统&#xff0c;模块&#xff0c;组件之间的关系和调用…

Hadoop3.x 万字解析,从入门到剖析源码

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

UML系列之Rational Rose笔记九:组件图

一、新建组件图 二、组件图成品展示 三、工作台介绍 最主要的还是这个component组件&#xff1b; 然后还有这几个&#xff0c;正常是用不到的&#xff1b;基本的使用第四部分介绍一下&#xff1a; 四、基本使用示例 这些&#xff0c;主要是运用package还有package specifica…

RabbitMQ 高可用方案:原理、构建与运维全解析

文章目录 前言&#xff1a;1 集群方案的原理2 RabbitMQ高可用集群相关概念2.1 设计集群的目的2.2 集群配置方式2.3 节点类型 3 集群架构3.1 为什么使用集群3.2 集群的特点3.3 集群异常处理3.4 普通集群模式3.5 镜像集群模式 前言&#xff1a; 在实际生产中&#xff0c;RabbitM…

React Fiber框架中的Render渲染阶段——workLoop(performUnitOfWork【beginWork与completeWork】)

触发渲染过程——renderRoot renderRoot 是一个函数&#xff0c;用于触发渲染工作。它通常会调用并递归地执行一系列的渲染任务&#xff0c;直到完成整个更新过程。这个过程包括执行 Fiber 树中的 beginWork 和 completeWork&#xff0c;以及渲染新状态或 DOM。 function ren…

一体机cell服务器更换内存步骤

一体机cell服务器更换内存步骤&#xff1a; #1、确认grdidisk状态 cellcli -e list griddisk attribute name,asmmodestatus,asmdeactivationoutcome #2、offline griddisk cellcli -e alter griddisk all inactive #3、确认全部offline后进行关机操作 shutdown -h now #4、开…

uni-app编写微信小程序使用uni-popup搭配uni-popup-dialog组件在ios自动弹出键盘。

uni-popup-dialog 对话框 将 uni-popup 的type属性改为 dialog&#xff0c;并引入对应组件即可使用对话框 &#xff0c;该组件不支持单独使用 示例 <button click"open">打开弹窗</button> <uni-popup ref"popup" type"dialog"…

SYS_OP_MAP_NONNULL NULL的等值比较

无意在数据库中发现了这个操作SYS_OP_MAP_NONNULL。 SYS_OP_MAP_NONNULL应该不是数据库中的对象&#xff0c;因为在DBA_OBJECTS中根本找不到它&#xff0c;而在STANDARD和DBMS_STANDARD包中也找不到函数说明。 SQL> SELECT * 2 FROM DBA_OBJECTS 3 WHERE OBJECT_NAME…

基于Java的百度AOI数据解析与转换的实现方法

目录 前言 一、AOI数据结构简介 1、官网的实例接口 2、响应参数介绍 二、Java对AOI数据的解析 1、数据解析流程图 2、数据解析实现 3、AOI数据解析成果 三、总结 前言 在当今信息化社会&#xff0c;地理信息数据在城市规划、交通管理、商业选址等领域扮演着越来越重要的…

深度学习中的学习率调度器(scheduler)分析并作图查看各方法差异

文章目录 1. 指数衰减调度器&#xff08;Exponential Decay Scheduler&#xff09;工作原理适用场景实现示例 2. 余弦退火调度器&#xff08;Cosine Annealing Scheduler&#xff09;工作原理适用场景实现示例 3. 步长衰减调度器&#xff08;Step Decay Scheduler&#xff09;工…

IPSEC实验

实验要求 某小型企业为扩大网络规模&#xff0c;设立分公司&#xff0c;今日要求分公司能够访问主公司对应的资源&#xff0c;为此很是苦恼 为满足其跨区域访问对端网络的要求&#xff0c;现要求使用IPSEC搭建隧道使得分公司能够与主公司通讯 实验拓扑 该公司与分公司拓扑大…

[c语言日寄]精英怪:三子棋(tic-tac-toe)3命慢通[附免费源码]

哈喽盆友们&#xff0c;今天带来《c语言》游戏中[三子棋boss]速通教程&#xff01;我们的目标是一边编写博文&#xff0c;一边快速用c语言实现三子棋游戏。准备好瓜子&#xff0c;我们计时开始&#xff01; 前期规划 在速通中&#xff0c;我们必须要有清晰的前期规划&#xf…

TensorFlow DAY3: 高阶 API(Keras,Estimator)(完)

TensorFlow 作为深度学习框架&#xff0c;当然是为了帮助我们更便捷地构建神经网络。所以&#xff0c;本次实验将会了解如何使用 TensorFlow 来构建神经网络&#xff0c;并学会 TensorFlow 构建神经网络的重要函数和方法。 知识点 Keras 顺序模型Keras 函数模型Keras 模型存储…

数据结构(Java版)第九期:LinkedList与链表

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 目录 一、LinkedList的模拟实现 1.1. 头插法 1.2. 尾插法 1.3. 插入中间节点 1.4. 删除某个节点 1.5. 删除所有为key的元素 二、LinkedList的使用 2.1. 什么是LinkedList 2.2. LinkedList的使⽤ 三、…

ubuntu18.04开发环境下samba服务器的搭建

嵌入式linux的发展很快&#xff0c;最近准备在一个新项目上采用新一代的linux核心板&#xff0c;发现linux内核的版本已经更新到5.4以上甚至6.0以上&#xff1b;之前常用的linux内核版本是2.6.4&#xff0c;虽然在某些项目上还能用但是明显跟不上时代的步伐了&#xff0c;所以要…

【优先算法】滑动窗口--(结合例题讲解解题思路)(C++)

目录 1. 例题1&#xff1a;最大连续1的个数 1.1 解题思路 1.2代码实现 1.3 错误示范如下&#xff1a;我最开始写了一种&#xff0c;但是解答错误&#xff0c;请看&#xff0c;给大家做个参考 2. 将 x 减到 0 的最小操作数 2.1解题思路 2.2代码实现 1. 例题1&#xff…

数据结构二叉树-C语言

数据结构二叉树-C语言 1.树1.1树的概念与结构1.2树的相关术语1.3树的表示1.4树形结构实际运用场景 2.二叉树2.1概念与结构2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 2.3二叉树存储结构2.3.1顺序结构2.3.2链式结构 3.实现顺序结构的二叉树4.实现链式结构二叉树4.1前中后序遍…

Qt/C++进程间通信:QSharedMemory 使用详解(附演示Demo)

在开发跨进程应用程序时&#xff0c;进程间通信&#xff08;IPC&#xff09;是一个关键问题。Qt 框架提供了多种 IPC 技术&#xff0c;其中 QSharedMemory 是一种高效的共享内存方式&#xff0c;可以实现多个进程之间快速交换数据。本文将详细讲解 QSharedMemory 的概念、用法及…

【vue3项目使用 animate动画效果】

vue3项目使用 animate动画效果 前言一、下载或安装npm 安装 二、引入组件三、复制使用四、完整使用演示总结 前言 提示&#xff1a;干货篇&#xff0c;不废话&#xff0c;点赞收藏&#xff0c;用到会后好找藕~ 点击这里&#xff0c;直接看官网哦 &#x1f449; 官网地址&#…

Android 15应用适配指南:所有应用的行为变更

Android系统版本适配&#xff0c;一直是影响App上架Google Play非常重要的因素。 当前Google Play政策规定 新应用和应用更新 必须以 Android 14&#xff08;API 级别 34&#xff09;为目标平台&#xff0c;才能提交到Google Play。现有应用 必须以 Android 13&#xff08;AP…