逐个注释

好的!针对你给出的代码示例,我为你详细解释每一部分。<html lang="zh-CN" dir="ltr"> 中:

  • lang="zh-CN"lang 属性用于声明页面的主要语言,便于搜索引擎、屏幕阅读器等识别。zh-CN 表示“中文(简体)”,如果是繁体则用 zh-TWzh-HK,英文则用 en
  • dir="ltr"dir 属性定义文本的书写方向。ltrleft-to-right(从左到右),适用于大多数语言;rtlright-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:数字(minmax
    • date:日期选择
    • color:颜色选择
    • range:滑块(配合 <output> 显示值)
    • file:文件上传(accept 限制类型)
    • search:搜索框
    • tel:电话
    • url:网址
    • checkbox:复选框
    • radio:单选框(name 相同为一组)
  • <select>:下拉列表,<optgroup> 分组选项,<option> 选项。
  • <textarea>:多行文本。
  • <button>:按钮,type="submit|reset|button"
  • <progress>:进度条(valuemax)。
  • <meter>:度量条(valueminmax)。

6. 多媒体

  • <picture> + <source> + <img>:响应式图片,根据媒体条件加载不同图片。
  • <img>:图片,属性 srcaltloading="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 与可访问性

  • rolearia-label 等属性增强辅助技术支持。
  • aria-hiddenaria-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-inlinepadding-blockborder-inline-start 等,根据书写方向自动调整。
  • 物理属性对应:margin-leftpadding-top 等。

5. @media 媒体查询

  • 根据设备特征应用不同样式,如 max-widthmin-widthprefers-color-schemeprefers-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:使 paddingborder 包含在总宽度内。

8. 定位

  • static(默认)、relative(相对自身偏移)、absolute(相对最近定位祖先)、fixed(相对视口)、sticky(滚动时粘住)。
  • 偏移属性:toprightbottomleft,逻辑属性可用 inset

9. 浮动与清除

  • float: left/right/inline-start/inline-end
  • clear: both 清除浮动。

10. Flexbox

  • 容器:display: flex,属性 justify-contentalign-itemsflex-wrapgap
  • 项目:flex-growflex-shrinkflex-basisorder

11. Grid 布局

  • 容器:display: gridgrid-template-columns/rowsgap
  • 项目:grid-columngrid-rowspan
  • 高级:repeat()auto-fillminmax()
  • subgrid:子网格继承父网格轨道。

12. 多列布局

  • column-countcolumn-gapcolumn-rule

13. 容器查询

.container-query-demo { container-type: inline-size; }
@container (min-width: 500px) { ... }
  • 根据容器尺寸而非视口尺寸应用样式。

14. 过渡与动画

  • transition: 属性 时长 缓动函数 延迟
  • @keyframes 定义动画关键帧,animation 应用。
  • 缓动函数:easelinearcubic-bezier()steps()
  • 滚动驱动动画:animation-timeline: view()scroll()

15. 变换

  • transform: translate() rotate() scale() skew()
  • 3D 变换:perspectiverotateX()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-shadowtext-decorationletter-spacingword-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()、滚动驱动动画等)。建议初学者对照代码中的注释和实际显示效果,逐一实践每个知识点,以加深理解。

如果需要更详细的某个知识点的讲解,可以告诉我,我会单独展开。

posted @ 2026-08-25 16:07  华腾智算  阅读(9)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL