HTML网页开发从入门到精通:从标签到表单的完整指南

文章目录

一、什么是网页布局?Web标准是什么?

网页布局是网页设计的核心,它决定了网页内容的组织方式和视觉呈现效果。简单来说,布局就是如何在页面上安排和摆放各个元素,比如导航栏、内容区、侧边栏、页脚等。

布局的重要性

  • 用户体验:良好的布局让用户更容易找到需要的信息
  • 可读性:合理的布局提高内容的可读性
  • 响应式:适应不同设备屏幕大小
    为什么需要Web标准?
    不同浏览器是渲染引擎不同,对于相同代码解析的效果会存在差异,如果用户想看一个网页,结果用不同浏览器打开效果不同,用户体验极差!
    Web标准:让不同的浏览器按照相同的标准显示结果,让展示的效果统一!
    Web标准中分为三个构成
构成 语言 说明
结构 HTML 页面元素和内容
表现 CSS 网页元素的外观和位置等页面样式
行为 JavaScript 网页模型的定义与页面交互

Web标准要求页面实现:结构、表现、行为三层分离

HTML是构建网页的基础骨架,它通过标签来描述网页的结构、内容(文字、图片、链接等),浏览器会解析这些标签并渲染出可视化的页面。

二、开发工具

下载地址: 官方链接: vscode.

三、常用的HTML标签

1、标签与元素

HTML的基本组成单位是元素,而元素有标签包裹内容构成,格式通常是:

html 复制代码
<标签名>内容</标签名>  <!-- 双标签:有开始和结束标签 -->
<标签名>  <!-- 单标签:无需包裹内容,通常用于插入资源(如图片) -->

比如:

html 复制代码
<p>这是一个段落</p>  <!-- 双标签:p是段落标签 -->
<img src="图片地址">  <!-- 单标签:img是图片标签 -->

2、HTML文档的基本结构

一个完整的HTML文档有固定的"骨架",所有的内容都要写在这个结构里:

html 复制代码
<!DOCTYPE html>  <!-- 声明:告诉浏览器这是HTML5文档 -->
<html>  <!-- 根元素:整个网页的容器 -->
  <head>  <!-- 头部:存放网页的"元信息"(不直接显示在页面上) -->
    <meta charset="UTF-8">  <!-- 字符编码:确保中文等文字正常显示 -->
    <title>我的第一个网页</title>  <!-- 网页标题:显示在浏览器标签栏 -->
  </head>
  <body>  <!-- 主体:网页的可见内容都写在这里 -->
    <h1>这是一级标题</h1>
    <p>这是一段正文内容</p>
  </body>
</html>

3、基础标签详解

  • 标题标签:h1~h6,表示1-6级标题(h1层级最高,字体最大)
html 复制代码
<h1>一级标题(通常一个页面只有1个)</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
  • 段落标签:p,用于包裹一段文字,自动换行并与其他内容留空行
html 复制代码
<p>这是第一段内容,HTML会自动将段落分开显示,不需要手动打很多换行~</p>
<p>这是第二段内容,段落之间会有默认的间距哦。</p>
  • 换行/水平线
    • <br> :强制换行(单标签)
    • <hr>:插入一条水平线(单标签)
html 复制代码
<p>第一行内容<br>第二行内容(用br实现换行)</p>
<hr>  <!-- 插入水平线分隔内容 -->
<p>水平线下面的内容</p>
  • 链接标签:a(实现页面跳转)
    a标签的核心属性是href,表示"链接目标地址";target="_blank"表示"在新标签页打开"。
html 复制代码
<!-- 跳转到外部网站 -->
<a href="https://www.csdn.net" target="_blank">点击访问CSDN官网</a>

<!-- 跳转到本地页面(比如同文件夹下的index2.html) -->
<!-- 注意文件一定要存在并且要存在在同一文件夹下-->
<a href="index2.html">点击跳转到我的第二个页面</a>
  • 文本格式化标签
    让文本有加粗、下划线、倾斜、删除线文本的格式效果
html 复制代码
 <!-- 第⼀组 -->
 <b>加粗</b>
 <u>下划线</u>
 <i>倾斜</i>
 <s>删除线</s>
 <br>
 <!-- 第二组:推荐使用,语义更加强烈 -->
 <strong>加粗</strong>
 <ins>下划线</ins>
 <em>倾斜</em>
 <del>删除线</del>
  • 图片标签:img(插入图片)
    img是单标签,核心属性:
    • src:图片的地址(本地图片写路径,网页图片写URL)
    • alt:图片加载失败时显示的替代文字(必写,提升兼容性)
    • width/height:设置图片宽度/高度(单位通常是像素px)
      注意: 1、如果只设置图片的宽度或者高度,此时另一个会自动等比例缩放
      2、如果同时设置了两个,若设置不当此时图片可能会变形
    • title:鼠标移动到图片上方时显示的提示文字(更方便用户对图片的理解)
html 复制代码
<!-- 插入网络图片 -->
<img src="https://img-blog.csdnimg.cn/20231010123456/abc123.jpg" 
     alt="这是一张Python相关的图片" 
     width="300">  <!-- 宽度设为300px,高度会自动等比例缩放 -->

<!-- 插入本地图片(图片放在同文件夹的images目录下) -->
<img src="images/myphoto.jpg" alt="我的个人照片" width="200">
  • 媒体标签
    • 音频标签:audio,核心属性:
      • src:音频路径
      • controls:播放控件
      • autoplay:自动播放(部分浏览器不支持)
      • loop:循环播放
    • 视频标签:video,核心属性:
      • src:视频路径
      • controls:播放控件
      • autoplay:自动播放(部分浏览器不支持)-> 在谷歌浏览器中写muted可以完成静音的自动播放
      • loop:循环播放
html 复制代码
<audio src="./music.mp3" controls autoplay loop></audio>
<video src="./video.mp4" controls autoplay muted loop></video>
  • 容器标签(用于分组排版)
    • div:块级容器,默认独占一行,常用于"大区域"的分组(比如页面的头部、主体、底部)
    • span:行内容器,默认和其他内容在同一行,通常用于"小范围文字"的样式修改
html 复制代码
<!-- div:页面头部区域 -->
<div>
  <h1>我的个人主页</h1>
  <p>欢迎访问我的页面~</p>
</div>

<!-- span:修改部分文字颜色(后续结合CSS) -->
<p>我正在学习<span>HTML</span>和<span>CSS</span>,感觉很有趣!</p>

四、列表与表格

  • 无序列表:ul(列表容器)+ li(列表项),默认显示"圆点"标记
  • 有序列表:ol(列表容器)+ li(列表项),默认显示"数字标记"
  • 自定义列表:dl(列表容器)+ dt(列表项)+ dd(列表项中的内容)
html 复制代码
<!-- 无序列表:比如"我的爱好" -->
<h3>我的爱好</h3>
<ul>
  <li>看电影</li>
  <li>写代码</li>
  <li>阅读技术文章</li>
</ul>

<!-- 有序列表:比如"学习步骤" -->
<h3>HTML学习步骤</h3>
<ol>
  <li>先学基础标签</li>
  <li>练习写简单页面</li>
  <li>结合CSS美化页面</li>
</ol>

<!-- 定义列表:比如"食物分类" -->
<h3>食物分类</h3>
<dl>
	<dt>水果类</dt>
	<dd>西瓜</dd>
	<dd>香蕉</dd>
	<dd>水蜜桃</dd>

    <dt>蔬菜类</dt>
	<dd>西红柿</dd>
	<dd>黄瓜</dd>
	<dd>土豆</dd>
</dl>

表格用于有序呈现多行多列的信息(比如课程表、成绩表),核心标签是table(表格容器) tr(行) td(单元格),还有辅助标签th(表头单元格)

html 复制代码
<table border="1">  <!-- border="1" 显示表格边框(默认无) -->
  <!-- 表头行:th默认居中、加粗 -->
  <tr>
    <th>姓名</th>
    <th>年龄</th>
    <th>专业</th>
  </tr>
  <!-- 数据行:td是普通单元格 -->
  <tr>
    <td>张三</td>
    <td>18</td>
    <td>计算机</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>19</td>
    <td>软件工程</td>
  </tr>
</table>

表格的合并单元格

通过colspan(跨列合并) rowspan(跨行合并)实现单元格合并:

html 复制代码
<h3>跨行</h3>
<table border="1" width="600px" height="300px"><!-- width与height是设置单元格的宽度和高度-->
	<tr align="center"><!--align="center"是设置内容居中显示 -->
	    <td>姓名</td>
	    <td>年龄</td>
		<td>地址</td>
	</tr>
	<tr align="center">
		<td>张三</td>
		<td colspan="2">无</td>
	</tr>
	<tr align="center">
		<td>李四</td>
		<td>20</td>
		<td>成都</td>
	</tr>
</table>
		
<h3>跨列</h3>
<table border="1" width="600px" height="300px">
	<tr align="center">
		<td>姓名</td>
		<td>年龄</td>
		<td>地址</td>
	</tr>
	<tr align="center">
    	<td>张三</td>
		<td>18</td>
		<td rowspan="2">深圳</td>
	</tr>
	<tr align="center">
		<td>李四</td>
		<td>20</td>
	</tr>
</table>

五、表单

表单时网页和用户交互的核心(比如登录、注册、搜索),核心标签是form(表单容器),配合各种表单控件(输入框、按钮等)

form标签的核心属性:

  • action:表单提交 ,数据发送到的服务器地址(暂时可以写#表示"当前页面")
  • method:数据提交方式(常用get/post
html 复制代码
<form action="#" method="get">
  <!-- 表单控件写在这里 -->
  <p>用户名:<input type="text" name="username"></p>
  <p>密码:<input type="password" name="password"></p>
  <p><button type="submit">提交</button></p>
</form>

效果:输入用户名和密码后,点击 "提交",浏览器会把数据拼接到地址栏(get方式)。

常用表单控件

  • 输入框类:input(通过type区分类型)
html 复制代码
<!-- 1. 单行文本框 -->
<p>姓名:<input type="text" placeholder="请输入姓名"></p>  <!-- placeholder是提示文字 -->

<!-- 2. 密码框(输入内容隐藏) -->
<p>密码:<input type="password" placeholder="请输入密码"></p>

<!-- 3. 单选按钮(name相同则互斥) -->
<p>性别:
  <input type="radio" name="gender" value="male" id="male">
  <label for="male">男</label>  <!-- label和input绑定,点击文字也能选中 -->
  
  <input type="radio" name="gender" value="female" id="female">
  <label for="female">女</label>
</p>

<!-- 4. 复选框(可多选) -->
<p>爱好:
  <input type="checkbox" name="hobby" value="code" id="code">
  <label for="code">写代码</label>
  
  <input type="checkbox" name="hobby" value="read" id="read">
  <label for="read">阅读</label>
</p>

<!-- 5. 文件上传 -->
<p>头像:<input type="file" name="avatar"></p>
  • 下拉选择框:select+option
html 复制代码
<p>学历:
  <select name="edu">
    <option value="">请选择</option>  <!-- 默认提示项 -->
    <option value="high">高中</option>
    <option value="college">大专</option>
    <option value="uni">本科</option>
  </select>
</p>
  • 多行文本框:textarea
html 复制代码
<p>个人介绍:
  <textarea name="intro" rows="5" cols="30" placeholder="请输入个人介绍"></textarea>
</p>

rows:代表默认显示的行数

cols:代表默认显示的列数

  • 按钮类
html 复制代码
<!-- 1. 提交按钮:触发表单提交 -->
<button type="submit">提交表单</button>

<!-- 2. 重置按钮:清空表单内容 -->
<button type="reset">重置内容</button>

<!-- 3. 普通按钮:需配合JS实现功能 -->
<button type="button">普通按钮</button>

六、综合案例

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单</title>
	</head>
	<body>
		<p>青春不常在,抓紧谈恋爱</p>
		<hr />
		<p>
			昵称:<input type="text" value="" placeholder="请输入昵称"/>
		</p>
		<p>
			性别:<input type="radio" value="男" name="sex" checked="checked"/>男
			<input type="radio" value="女" name="sex"/>女
		</p>
		<p>
			所在城市:<select name="city">
				<option spellcheck="true">上海</option>
				<option>杭州</option>
				<option>深圳</option>
				<option>怀化</option>
				<option>长沙</option>
				<option>成都</option>
			</select>
		</p>
		<p>
			婚姻状况:<input type="radio" value="未婚" name="marrige" checked="checked"/>未婚
			<input type="radio" value="已婚" name="marrige"/>已婚
			<input type="radio" value="保密" name="marrige"/>保密
		</p>
		<p>
			喜欢的类型:<input type="checkbox" value="可爱"/>可爱
			<input type="checkbox" value="性感"/>性感
			<input type="checkbox" value="御姐"/>御姐
			<input type="checkbox" value="萝莉"/>萝莉
			<input type="checkbox" value="小鲜肉"/>小鲜肉
			<input type="checkbox" value="大叔"/>大叔
		</p>
		<p>个人介绍:</p>
		<p>
			<textarea name="输入框" rows="10" cols="80"></textarea>
		</p>
		<h3>我承诺</h3>
		<ul>
			<li>年满18岁、单身</li>
			<li>抱着严肃的态度</li>
			<li>真诚寻找另一半</li>
		</ul>
		<p>
			<input type="checkbox" value="我同意所有条款" /> 我同意所有条款
		</p>
		<p>
			<input type="button" value="免费注册" />
			<input type="reset" value="重置"/>
		</p>
	</body>
</html>

结语

这篇文章带你系统地入门了HTML网页开发的核心知识。从理解Web标准开始,到掌握基础标签、列表表格、以及最重要的表单交互,每一步都为你的前端之路打下了坚实基础。记住,HTML是搭建网页的骨架,多动手练习是掌握它的最好方式。现在,你已经准备好用代码构建自己的第一个网页了。

相关推荐
LabVIEW开发7 小时前
LabVIEW QMH 队列消息处理架构
架构·labview·labview知识·labview功能·labview程序
代码搬运媛7 小时前
Jest 测试框架详解与实现指南
前端
counterxing8 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq8 小时前
windows下nginx的安装
linux·服务器·前端
rising start8 小时前
二、全面理解MySQL架构
mysql·架构
之歆8 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜8 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
麦客奥德彪8 小时前
Android Skills
架构·ai编程
Maimai108088 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
candyTong8 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构