Web基础知识
- 定义:Web网站即万维网(World Wide Web)上的应用平台,允许用户通过浏览器访问。
Web网站结构
-
前端程序
-
功能:负责页面的样式与布局,将数据以直观、美观的方式展示给用户。
-
技术栈:HTML、CSS、JavaScript、前端框架(Vue、React、Angular等)。
-
-
后端程序
-
功能:负责业务逻辑处理,接收请求、处理数据、调用数据库、返回响应。
-
技术栈:Java、Python(Django/Flask)、Node.js、PHP等。
-
-
数据库
-
功能:存储与管理网站数据。
-
类型:关系型数据库(MySQL、PostgreSQL)与非关系型数据库(MongoDB、Redis)。
-
Web网站的工作流程
-
用户在浏览器地址栏输入 URL 并回车。
-
浏览器向服务器请求页面资源(HTML、CSS、JavaScript)。
-
前端程序加载页面框架与样式。
-
前端通过 HTTP 请求(AJAX、Fetch、Axios等)向后端获取数据。
-
后端处理业务逻辑,访问数据库并获取数据。
-
数据经过处理后返回给前端程序。
-
前端将数据动态渲染到页面,生成最终可视化效果。
Web网站的开发模式
-
静态网站开发模式
-
所有内容提前写好,直接返回给浏览器。
-
优点:访问速度快、无需数据库支撑。
-
缺点:内容固定,不能动态更新。
-
示例:个人简介页面、文档站点。
-
-
动态网站开发模式
-
页面内容通过后端逻辑和数据库动态生成。
-
优点:可实现个性化与交互功能(电商、博客、论坛等)。
-
缺点:开发复杂度高,需要后端和数据库支撑。
-
-
前后端分离开发模式(现代主流模式)
-
前端和后端完全分离,前端负责页面渲染与数据请求,后端提供 API 接口服务。
-
优点:开发效率高、可维护性强、前端可独立部署。
-
示例:Vue + Node.js / React + Spring Boot。
-
HTML 文档结构类
<!DOCTYPE> 文档类型声明
概述: 告诉浏览器当前 HTML 文档使用的版本,HTML5 中必须写在第一行,简洁写法为 <!DOCTYPE html>
。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>HTML快速入门</title>
</head>
<body>
<h1>Hello HTML</h1>
</body>
</html>
语法 | 说明 |
---|---|
<!DOCTYPE html> | HTML5 文档声明 |
lang | 设置文档语言,如 zh-CN (简体中文)、en (英文) |
<html> 根元素
概述: HTML 页面中所有内容都必须包含在 <html>
标签内。
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>我的网页</title>
</head>
<body>
页面内容
</body>
</html>
属性 | 说明 |
---|---|
lang | 定义文档语言(SEO及无障碍支持) |
<head> 文档头部
概述: 用于定义页面的元数据(编码、标题、样式、脚本等),不会直接显示在网页中。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML快速入门</title>
<link rel="stylesheet" href="style.css">
</head>
常用子标签 | 说明 |
---|---|
<meta> | 元信息(如字符集、描述、视口设置) |
<title> | 浏览器标签页标题 |
<link> | 引入外部资源(CSS、字体等) |
<style> | 内部 CSS 样式 |
<script> | 嵌入 JavaScript 脚本 |
<meta> 元信息
概述: 提供有关文档的元数据,不直接显示在网页上,必须位于 <head>
中。
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
属性 | 说明 | 常用值 |
---|---|---|
charset | 设置字符编码 | UTF-8 |
name | 元信息类型 | viewport 、description 等 |
content | 配合 name 使用,定义具体内容 | 如 width=device-width, initial-scale=1.0 |
<title> 页面标题
概述: 定义网页标题,显示在浏览器标签上,也是 SEO 显示标题。
<title>我的第一个网页</title>
位置 | 作用 |
---|---|
<head> 内 | 设置网页标签页上显示的标题 |
<body> 页面主体
概述: HTML 文档的主要内容,用户可见部分均在 <body>
中。
<body>
<h1>欢迎来到我的网站</h1>
<p>这是正文内容。</p>
</body>
说明 |
---|
所有 HTML 可见内容的容器,可通过 CSS 控制样式 |
文本与排版标签
<h1> ~ <h6> 标题标签
概述: 定义不同级别的标题,<h1>
最大也最重要,<h6>
最小。对 SEO 有语义权重。
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
标签 | 说明 |
---|---|
<h1> ~ <h6> | 标题标签,数字越大字号越小,语义层级越低 |
<p> 段落标签
概述: 定义一个段落,浏览器会在段落前后自动留出空白。
<p>这是第一个段落。</p>
<p>这是第二个段落。</p>
标签 | 说明 |
---|---|
<p> | 段落标签,常配合 CSS 调整间距、行高、缩进 |
<br> 换行标签
概述: 单标签,用于强制换行。
第一行<br>第二行
标签 | 说明 |
---|---|
<br> | 换行标签,常用于地址、诗歌等不规则换行场景 |
<hr> 分隔线
概述: 在内容之间插入一条水平分隔线。
段落一<hr>段落二
标签 | 说明 |
---|---|
<hr> | 水平分隔线,可以用 CSS 改颜色、宽度、样式 |
<strong> & <em> 语义强调
概述: <strong>
表示强烈强调,通常加粗;<em>
表示轻微强调,通常斜体。
<strong>重点内容</strong>
<em>轻微强调内容</em>
标签 | 默认样式 | 语义 |
---|---|---|
<strong> | 加粗 | 重要内容强调 |
<em> | 斜体 | 轻度强调 |
<b> & <i> 纯样式加粗/斜体
概述: 与 <strong>
/ <em>
类似,但不具备语义。
<b>纯视觉加粗</b>
<i>纯视觉斜体</i>
标签 | 说明 |
---|---|
<b> | 加粗文本,无语义 |
<i> | 斜体文本,无语义 |
<u> & <ins> 下划线
概述: <u>
表示视觉下划线;<ins>
表示插入文本,有语义。
<u>纯下划线</u>
<ins>插入内容</ins>
标签 | 语义 |
---|---|
<u> | 仅显示下划线 |
<ins> | 插入的内容(语义化) |
<s> & <del> 删除线
概述: <s>
是纯视觉删除线;<del>
表示删去的文本,有语义。
<s>原价¥199</s>
<del>无效内容</del>
标签 | 语义 |
---|---|
<s> | 纯视觉删除线 |
<del> | 表示删除(语义化) |
<span> 内联容器
概述: 无语义内联容器,常用于修改部分文字样式。
<p>这是<span style="color:red">红色</span>文本</p>
标签 | 说明 |
---|---|
<span> | 内联容器,用于局部加样式或脚本 |
链接与多媒体标签
<a> 超链接
概述: 创建超链接,用于从一个页面跳转到另一个页面,也可以跳转到锚点、邮件、电话等。
<!-- 基本用法:当前窗口打开 -->
<a href="https://www.cctv.com">央视网</a>
<!-- 新窗口打开 -->
<a href="https://www.cctv.com" target="_blank" rel="noopener noreferrer">央视网新窗口</a>
<!-- 页面内锚点 -->
<a href="#section1">跳转到第1部分</a>
...
<h2 id="section1">第1部分内容</h2>
<!-- 邮件链接 -->
<a href="mailto:info@example.com">发邮件</a>
<!-- 电话链接(移动端) -->
<a href="tel:13800000000">拨打电话</a>
属性 | 说明 | 常用值示例 |
---|---|---|
href | 链接地址 | https:// 、#section 、mailto: 、tel: |
target | 打开方式 | _self (默认)、_blank (新窗口) |
rel | 与 _blank 配合防安全风险 | noopener 、noreferrer |
title | 鼠标悬停提示文本 | 任意描述文字 |
download | 点击下载而不是打开 | 可为文件名 |
<img> 图片
概述: 用于在网页中插入图片,支持JPG、PNG、GIF、SVG等格式。
<!-- 基础用法 -->
<img src="img/1.png" alt="示例图片" width="300">
<!-- 自适应宽度(保持比例) -->
<img src="img/2.jpg" alt="自适应图片" style="max-width: 100%; height: auto;">
<!-- 高分辨率屏适配(Retina) -->
<img src="img/1.png"
srcset="img/1@2x.png 2x, img/1@3x.png 3x"
alt="高分屏图片">
属性 | 说明 | 常用值/示例 |
---|---|---|
src | 图片地址 | 相对路径 / 绝对路径 / 网络URL |
alt | 替代文本(图片加载失败显示) | 描述性文字 |
width / height | 显示尺寸 | 像素值 / 百分比 |
srcset | 多分辨率资源 | 文件+倍率 |
<video> 视频
概述: 用于在网页中插入视频,支持 mp4/webm/ogg 等格式,可设置播放控件、封面图等。
<!-- 最简单用法 -->
<video src="video/news.mp4" controls width="80%"></video>
<!-- 多格式兼容 -->
<video controls poster="img/cover.jpg" width="640">
<source src="video/news.mp4" type="video/mp4">
<source src="video/news.webm" type="video/webm">
您的浏览器不支持 video 标签
</video>
<!-- 自动播放/静音/循环 -->
<video src="video/banner.mp4" autoplay muted loop></video>
属性 | 说明 | 常用值 |
---|---|---|
src | 视频源地址 | 相对/绝对/URL |
controls | 显示播放控件 | 布尔属性 |
poster | 视频封面 | 图片URL |
autoplay | 自动播放 | 布尔属性 |
muted | 静音播放 | 布尔属性 |
loop | 循环播放 | 布尔属性 |
width /height | 尺寸 | 像素/百分比 |
<audio> 音频
概述: 用于插入音频文件,支持 mp3/ogg/wav 等格式。
<!-- 基础用法 -->
<audio src="audio/news.mp3" controls></audio>
<!-- 多格式兼容 -->
<audio controls>
<source src="audio/news.mp3" type="audio/mpeg">
<source src="audio/news.ogg" type="audio/ogg">
您的浏览器不支持 audio 标签
</audio>
<!-- 循环播放 + 自动播放 -->
<audio src="audio/bgm.mp3" autoplay loop></audio>
属性 | 说明 | 常用值 |
---|---|---|
src | 音频资源地址 | 相对/绝对/URL |
controls | 显示播放器控件 | 布尔属性 |
autoplay | 自动播放(部分浏览器需静音) | 布尔属性 |
loop | 循环播放 | 布尔属性 |
muted | 静音播放 | 布尔属性 |
列表标签
<ul> / <li> 无序列表
概述: <ul>
定义无序列表,<li>
为列表项,列表项默认使用项目符号(•)显示。
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橘子</li>
</ul>
标签 | 说明 |
---|---|
<ul> | 定义无序列表容器 |
<li> | 定义列表中的每一项 |
<ol> / <li> 有序列表
概述: <ol>
定义有序列表,<li>
为列表项,默认用数字编号。
<ol>
<li>第一步</li>
<li>第二步</li>
<li>第三步</li>
</ol>
标签/属性 | 说明 | 常用值 |
---|---|---|
<ol> | 定义有序列表容器 | |
<li> | 定义列表中的每一项 | |
type | 编号类型 | 1 (数字,默认)、A (大写字母)、a (小写字母)、I (大写罗马)、i (小写罗马) |
start | 编号起始值 | 数字 |
<dl> / <dt> / <dd> 定义列表
概述: 定义项目及其描述,用于术语解释、问答等。
<dl>
<dt>HTML</dt>
<dd>超文本标记语言</dd>
<dt>CSS</dt>
<dd>层叠样式表</dd>
</dl>
标签 | 说明 |
---|---|
<dl> | 定义列表容器 (Description List) |
<dt> | 定义术语(Description Term) |
<dd> | 定义术语描述(Description Definition) |
表格标签
<table> 表格容器
概述: 定义表格的最外层容器,所有行和列都必须包含在 <table>
中。
<table border="1">
<tr>
<td>单元格1</td>
<td>单元格2</td>
</tr>
</table>
属性 | 说明 | 常用值 |
---|---|---|
border | 表格边框粗细(HTML5 建议用CSS) | 数字,单位px |
width | 表格宽度 | px / % |
cellpadding | 单元格内边距(HTML5 用CSS替代) | 数字 |
cellspacing | 单元格间距(HTML5 用CSS替代) | 数字 |
<thead> 表头区域
概述: 表格的表头部分,通常包含列标题。与 <tbody>
、<tfoot>
一起用来分隔表格结构。
<table border="1">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
</table>
标签 | 说明 |
---|---|
<thead> | 表格头部容器 |
<tbody> 表格主体
概述: 表格的主要数据区域,可以有多行数据。
<table border="1">
<tbody>
<tr>
<td>张三</td>
<td>20</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
</tr>
</tbody>
</table>
标签 | 说明 |
---|---|
<tbody> | 表格主体容器 |
<tfoot> 表格脚注
概述: 表格的底部区域,用于总结、统计等信息。
<table border="1">
<tfoot>
<tr>
<td>总计</td>
<td>100</td>
</tr>
</tfoot>
</table>
标签 | 说明 |
---|---|
<tfoot> | 表格底部容器 |
<tr> 表格行
概述: 定义表格中的一行。
<tr>
<td>单元格1</td>
<td>单元格2</td>
</tr>
标签 | 说明 |
---|---|
<tr> | 表格行容器 |
<th> 表头单元格
概述: 定义表格中列或行的标题,默认加粗并居中。
<th>姓名</th>
<th>年龄</th>
标签 | 说明 |
---|---|
<th> | 表格头部单元格(加粗居中) |
<td> 数据单元格
概述: 定义表格中普通数据单元格。
<td>张三</td>
<td>20</td>
标签 | 说明 |
---|---|
<td> | 表格数据单元格 |
表单标签
<form> 表单容器
概述: 表单用于收集用户输入,提交到指定的服务器地址。
<form action="/submit" method="post" enctype="multipart/form-data">
<!-- 表单项 -->
</form>
属性 | 说明 | 常用值 |
---|---|---|
action | 提交目标地址 | URL |
method | 提交方式 | get (URL传参) / post (请求体传参) |
enctype | 编码类型,文件上传必须 | multipart/form-data |
<input> 输入框
概述: 用户输入数据的主力标签,通过 type
决定输入类型。
<input type="text" name="username" placeholder="输入用户名">
<input type="password" name="pwd" placeholder="输入密码">
<input type="radio" name="gender" value="male"> 男
<input type="checkbox" name="hobby" value="game"> 游戏
<input type="file" name="avatar">
<input type="hidden" name="userid" value="123">
<input type="submit" value="提交">
<input type="reset" value="重置">
常见 type | 说明 |
---|---|
text | 单行文本输入 |
password | 密码输入(内容隐藏) |
radio | 单选按钮(同 name 组内互斥) |
checkbox | 复选框 |
file | 文件选择 |
hidden | 隐藏字段 |
submit | 提交按钮 |
reset | 重置按钮 |
button | 普通按钮(无默认行为) |
<textarea> 多行文本框
概述: 用于输入多行文本,比如留言、评论等。
<textarea name="description" rows="4" cols="40">默认内容</textarea>
属性 | 说明 |
---|---|
rows | 可见行数 |
cols | 可见列数 |
placeholder | 占位提示文本 |
<select> 下拉列表
概述: 定义下拉列表,配合 <option>
选项标签使用。
<select name="degree">
<option value="">--请选择--</option>
<option value="1">本科</option>
<option value="2">硕士</option>
</select>
属性 | 说明 | 常用值 |
---|---|---|
name | 提交字段名 | 任意字符串 |
multiple | 支持多选 | 布尔属性 |
<option> 下拉选项
概述: 定义下拉菜单里的具体选项。
<option value="1">苹果</option>
<option value="2" selected>香蕉</option>
属性 | 说明 |
---|---|
value | 提交时传给服务器的值 |
selected | 默认选中该选项 |
<label> 标签文本
概述: 标签文字,与表单控件关联,方便点击文字操作表单元素。
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
属性 | 说明 |
---|---|
for | 关联控件的 id 值 |
<button> 按钮
概述: 定义一个可点击按钮,type
属性控制行为。
<button type="button">普通按钮</button>
<button type="submit">提交按钮</button>
<button type="reset">重置按钮</button>
属性 | 说明 | 常用值 |
---|---|---|
type | 按钮类型 | button 、submit 、reset |
语义化布局标签
<header> 页眉
概述: 定义文档或区块的头部区域,通常包含 logo、标题、导航等。具有语义化,利于 SEO。
<header>
<h1>网站标题</h1>
<nav>
<a href="#home">首页</a>
<a href="#about">关于</a>
</nav>
</header>
标签 | 说明 |
---|---|
<header> | 文档头部/内容头部 |
<nav> 导航栏
概述: 定义导航链接部分,通常包含到站点其他部分的链接。
<nav>
<a href="#section1">部分1</a>
<a href="#section2">部分2</a>
</nav>
标签 | 说明 |
---|---|
<nav> | 导航链接区域容器 |
<main> 主内容
概述: 文档主体区域,一个文档中通常只有一个 <main>
,包含主要内容。
<main>
<article>这里是主要内容</article>
</main>
标签 | 说明 |
---|---|
<main> | 页面主要内容容器 |
<section> 章节
概述: 表示文档的一个独立板块,通常有自己的标题。
<section>
<h2>新闻栏目</h2>
<p>新闻内容...</p>
</section>
标签 | 说明 |
---|---|
<section> | 文档章节容器 |
<article> 文章
概述: 独立、完整的内容单元,可以单独分发(如新闻、博客文章)。
<article>
<h2>文章标题</h2>
<p>文章正文内容...</p>
</article>
标签 | 说明 |
---|---|
<article> | 用来包裹一篇完整的文章或独立内容 |
<aside> 侧边栏
概述: 定义与主内容间接相关的内容,如侧边栏、广告、推荐列表等。
<aside>
<h3>相关链接</h3>
<ul>
<li><a href="#">链接一</a></li>
<li><a href="#">链接二</a></li>
</ul>
</aside>
标签 | 说明 |
---|---|
<aside> | 与主要内容相关的附属信息 |
<footer> 页脚
概述: 定义文档或区块的底部区域,例如版权信息、联系信息。
<footer>
<p>版权信息 © 2024</p>
</footer>
标签 | 说明 |
---|---|
<footer> | 文档或区块的底部信息 |
<div> 通用容器
概述: 块级无语义容器,用来对元素分组,便于布局和样式控制。
<div class="box">
<p>这里是一个容器</p>
</div>
标签 | 说明 |
---|---|
<div> | 通用块级容器,可用 class/id 标识,以便设置 CSS |
class | 类名(可多个) |
id | 唯一标识 |