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是搭建网页的骨架,多动手练习是掌握它的最好方式。现在,你已经准备好用代码构建自己的第一个网页了。

相关推荐
行云流水6269 小时前
前端树形结构实现勾选,半勾选,取消勾选。
前端·算法
diudiu_339 小时前
web漏洞--认证缺陷
java·前端·网络
阿珊和她的猫10 小时前
<video>` 和 `<audio>` 标签的常用属性解析
前端
LSL666_10 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
Dxy123931021610 小时前
MySQL如何做读写分离架构
数据库·mysql·架构
yinuo11 小时前
前端跨页面通讯终极指南⑤:window.name 用法全解析
前端
小飞侠在吗11 小时前
vue computed 和 watch
前端·javascript·vue.js
yinuo11 小时前
前端跨页面通讯终极指南④:MessageChannel 用法全解析
前端
---学无止境---11 小时前
i386 架构中断管理函数详解
linux·架构