逐个注释
好的!针对你给出的代码示例,我为你详细解释每一部分。<html lang="zh-CN" dir="ltr"> 中:
lang="zh-CN":lang属性用于声明页面的主要语言,便于搜索引擎、屏幕阅读器等识别。zh-CN表示“中文(简体)”,如果是繁体则用zh-TW或zh-HK,英文则用en。dir="ltr":dir属性定义文本的书写方向。ltr是 left-to-right(从左到右),适用于大多数语言;rtl是 right-to-left(从右到左),适用于阿拉伯语、希伯来语等;auto表示由浏览器自动判断。
下面是完整代码的逐段注释讲解,覆盖 HTML5 与 CSS3 的核心知识点。
一、HTML 结构
<!DOCTYPE html>
- 声明文档类型为 HTML5,告诉浏览器使用标准模式渲染。
<html lang="zh-CN" dir="ltr">
lang:语言,zh-CN表示简体中文。dir:文本方向,ltr为从左到右。
<head>
- 头部区域,包含元数据、标题、样式引入等,不会直接显示在页面上。
<meta charset="UTF-8">
- 声明字符编码为 UTF-8,可显示全球几乎所有文字。
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
viewport:控制移动端布局视口。width=device-width:视口宽度等于设备宽度。initial-scale=1.0:初始缩放比例为 1。viewport-fit=cover:适配刘海屏等异形屏。
<meta name="description" content="前端学习全景图...">
- 网页描述,用于搜索引擎结果摘要。
<meta name="theme-color" content="#0f172a">
- 设置浏览器地址栏等 UI 的主题色(移动端有效)。
<title>前端学习全景图 · HTML5 + CSS3 全部知识点</title>
- 浏览器标签页标题。
<style>
@import url('https://fonts.googleapis.com/css2?...');
</style>
@import用于在 CSS 中引入外部资源,这里加载了 Google Fonts 的 Inter 和 JetBrains Mono 字体。
二、HTML 主体中的标签与属性
1. 语义化结构标签
<header>:页眉区域,通常包含 logo、导航等。<nav>:导航链接区域。<main>:页面主内容,每个页面只能有一个。<section>:文档中的独立章节。<article>:独立、可分发的内容块(如文章、评论)。<aside>:侧边栏或附加内容。<footer>:页脚,包含版权、联系信息等。
<header class="site-header" role="banner">
role="banner":ARIA 地标角色,帮助辅助技术识别页眉。
2. 文本标签
<strong>/<b>:加粗,<strong>表示语义重要。<em>/<i>:斜体,<em>表示强调。<mark>:高亮文本。<del>:删除线。<ins>:插入线。<sub>:下标。<sup>:上标。<small>:小号字(法律声明等)。<abbr title="...">:缩写,title显示完整形式。<cite>:引用作品标题。<q>:行内短引用。<code>:行内代码。<kbd>:键盘输入。<samp>:程序输出示例。<var>:变量。<time datetime="2024-01-15">:机器可读的时间。<bdo dir="rtl">:强制文本方向。<bdi>:隔离文本方向(避免外部方向影响)。<span>/<div>:无语义容器,span行内,div块级。
3. 列表
<ul>:无序列表,子项<li>。<ol>:有序列表,属性start指定起始序号,reversed倒序。<dl>:描述列表,包含<dt>(术语)和<dd>(描述)。
4. 表格
<table>
<caption>前端技术对比表</caption>
<thead> ... </thead>
<tbody> ... </tbody>
<tfoot> ... </tfoot>
</table>
<caption>:表格标题。<thead>、<tbody>、<tfoot>:表格头部、主体、尾部。<tr>:行;<th>:表头单元格(scope="col"表示列头);<td>:普通单元格。colspan:跨列。
5. 表单
<form>:表单容器,onsubmit事件处理提交。<fieldset>:分组,<legend>为组标题。<label for="id">:标签,与控件关联。<input>的 type 属性:text:单行文本email:邮箱password:密码number:数字(min、max)date:日期选择color:颜色选择range:滑块(配合<output>显示值)file:文件上传(accept限制类型)search:搜索框tel:电话url:网址checkbox:复选框radio:单选框(name相同为一组)
<select>:下拉列表,<optgroup>分组选项,<option>选项。<textarea>:多行文本。<button>:按钮,type="submit|reset|button"。<progress>:进度条(value、max)。<meter>:度量条(value、min、max)。
6. 多媒体
<picture>+<source>+<img>:响应式图片,根据媒体条件加载不同图片。<img>:图片,属性src、alt、loading="lazy"(懒加载)、decoding="async"(异步解码)。<figure>/<figcaption>:图文组合。<audio>:音频,controls显示控制条,<source>指定文件。<video>:视频,poster封面,controls。<canvas>:画布,用 JavaScript 绘制图形。<svg>:矢量图形,内部可包含<rect>、<circle>、<polygon>、<text>等。
7. 交互元素
<details>/<summary>:折叠面板,open属性默认展开。<dialog>:原生对话框,用showModal()打开。popover属性:原生弹出层,用togglePopover()切换。contenteditable="true":使元素可编辑。draggable="true":使元素可拖拽。data-*自定义属性:存储私有数据,如data-tooltip="提示文字"。
8. ARIA 与可访问性
role、aria-label等属性增强辅助技术支持。aria-hidden、aria-live等。
三、CSS 核心知识点
1. @layer 级联层
@layer reset, base, components, utilities, animations;
- 定义样式层的顺序,后面的层优先级更高。可以将不同功能的样式分开管理,避免冲突。
2. :root 与 CSS 自定义属性(变量)
:root {
--clr-bg: oklch(0.13 0.02 260);
}
:root表示<html>元素,常用于定义全局变量。--变量名定义自定义属性,使用var(--变量名)引用。
3. 颜色函数
oklch():现代颜色空间,参数为(亮度、饱和度、色相)。color-mix():混合两种颜色,如color-mix(in oklch, 颜色1 比例, 颜色2)。- 还支持
rgb()、hsl()、lab()、lch()等。
4. 逻辑属性
margin-inline、padding-block、border-inline-start等,根据书写方向自动调整。- 物理属性对应:
margin-left、padding-top等。
5. @media 媒体查询
- 根据设备特征应用不同样式,如
max-width、min-width、prefers-color-scheme、prefers-reduced-motion。
6. 选择器
- 基础:元素、类(
.)、ID(#)、通配符(*)、属性([attr])。 - 组合:后代(空格)、子代(
>)、相邻兄弟(+)、通用兄弟(~)。 - 伪类:
:hover、:active、:focus、:focus-visible:first-child、:last-child、:nth-child(n)、:nth-of-type(n):not()、:is()、:where():has()(父选择器,根据子元素选择父元素):empty、:checked、:disabled、:target、:focus-within
- 伪元素:
::before、::after(插入内容)::first-letter、::first-line::selection(选中样式)::marker(列表标记)::placeholder(输入框占位符)
7. 盒模型
box-sizing: border-box:使padding和border包含在总宽度内。
8. 定位
static(默认)、relative(相对自身偏移)、absolute(相对最近定位祖先)、fixed(相对视口)、sticky(滚动时粘住)。- 偏移属性:
top、right、bottom、left,逻辑属性可用inset。
9. 浮动与清除
float: left/right/inline-start/inline-end。clear: both清除浮动。
10. Flexbox
- 容器:
display: flex,属性justify-content、align-items、flex-wrap、gap。 - 项目:
flex-grow、flex-shrink、flex-basis、order。
11. Grid 布局
- 容器:
display: grid,grid-template-columns/rows、gap。 - 项目:
grid-column、grid-row、span。 - 高级:
repeat()、auto-fill、minmax()。 subgrid:子网格继承父网格轨道。
12. 多列布局
column-count、column-gap、column-rule。
13. 容器查询
.container-query-demo { container-type: inline-size; }
@container (min-width: 500px) { ... }
- 根据容器尺寸而非视口尺寸应用样式。
14. 过渡与动画
transition: 属性 时长 缓动函数 延迟。@keyframes定义动画关键帧,animation应用。- 缓动函数:
ease、linear、cubic-bezier()、steps()。 - 滚动驱动动画:
animation-timeline: view()或scroll()。
15. 变换
transform: translate() rotate() scale() skew()。- 3D 变换:
perspective、rotateX()、rotateY()。
16. 滤镜与混合模式
filter: blur() brightness() contrast() grayscale()等。mix-blend-mode:元素与背景混合。clip-path:裁剪形状。mask:遮罩。
17. CSS 嵌套
.parent {
color: blue;
& .child { color: red; }
&:hover { ... }
}
- 原生嵌套,
&表示父选择器。
18. 数学函数
calc()、min()、max()、clamp()。
19. 文本样式
text-wrap: balance/pretty。text-overflow: ellipsis,配合white-space: nowrap; overflow: hidden。-webkit-line-clamp多行截断。text-shadow、text-decoration、letter-spacing、word-spacing。
20. 滚动行为
scroll-behavior: smooth。scroll-snap-type+scroll-snap-align滚动吸附。
21. 其他特性
aspect-ratio:宽高比。object-fit:图片填充方式。content-visibility: auto:提升渲染性能。@supports:特性检测。@scope:限定样式作用域。@property:注册自定义属性类型。@view-transition:视图过渡动画。will-change:提示浏览器优化。
四、JavaScript 部分(仅 Canvas 示例)
const canvas = document.getElementById('demo-canvas');
const ctx = canvas.getContext('2d');
- 获取画布和绘图上下文,绘制矩形、文字、圆形等。
五、总结
这个页面几乎涵盖了 HTML5 和 CSS3 的所有重要知识点,并且使用了大量现代 CSS 特性(如 @layer、嵌套、容器查询、:has()、滚动驱动动画等)。建议初学者对照代码中的注释和实际显示效果,逐一实践每个知识点,以加深理解。
如果需要更详细的某个知识点的讲解,可以告诉我,我会单独展开。

浙公网安备 33010602011771号