











好的!针对你给出的代码示例,我为你详细解释每一部分。<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 的核心知识点。
<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
lang:语言,zh-CN 表示简体中文。dir:文本方向,ltr 为从左到右。<head>
<meta charset="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">
<title>前端学习全景图 · HTML5 + CSS3 全部知识点</title>
<style>
@import url('https://fonts.googleapis.com/css2?...');
</style>
@import 用于在 CSS 中引入外部资源,这里加载了 Google Fonts 的 Inter 和 JetBrains Mono 字体。<header>:页眉区域,通常包含 logo、导航等。<nav>:导航链接区域。<main>:页面主内容,每个页面只能有一个。<section>:文档中的独立章节。<article>:独立、可分发的内容块(如文章、评论)。<aside>:侧边栏或附加内容。<footer>:页脚,包含版权、联系信息等。<header class="site-header" role="banner">
role="banner":ARIA 地标角色,帮助辅助技术识别页眉。<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 块级。<ul>:无序列表,子项 <li>。<ol>:有序列表,属性 start 指定起始序号,reversed 倒序。<dl>:描述列表,包含 <dt>(术语)和 <dd>(描述)。<table>
<caption>前端技术对比表</caption>
<thead> ... </thead>
<tbody> ... </tbody>
<tfoot> ... </tfoot>
</table>
<caption>:表格标题。<thead>、<tbody>、<tfoot>:表格头部、主体、尾部。<tr>:行;<th>:表头单元格(scope="col" 表示列头);<td>:普通单元格。colspan:跨列。<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)。<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> 等。<details> / <summary>:折叠面板,open 属性默认展开。<dialog>:原生对话框,用 showModal() 打开。popover 属性:原生弹出层,用 togglePopover() 切换。contenteditable="true":使元素可编辑。draggable="true":使元素可拖拽。data-* 自定义属性:存储私有数据,如 data-tooltip="提示文字"。role、aria-label 等属性增强辅助技术支持。aria-hidden、aria-live 等。@layer 级联层@layer reset, base, components, utilities, animations;
:root 与 CSS 自定义属性(变量):root {
--clr-bg: oklch(0.13 0.02 260);
}
:root 表示 <html> 元素,常用于定义全局变量。--变量名 定义自定义属性,使用 var(--变量名) 引用。oklch():现代颜色空间,参数为(亮度、饱和度、色相)。color-mix():混合两种颜色,如 color-mix(in oklch, 颜色1 比例, 颜色2)。rgb()、hsl()、lab()、lch() 等。margin-inline、padding-block、border-inline-start 等,根据书写方向自动调整。margin-left、padding-top 等。@media 媒体查询max-width、min-width、prefers-color-scheme、prefers-reduced-motion。.)、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(输入框占位符)box-sizing: border-box:使 padding 和 border 包含在总宽度内。static(默认)、relative(相对自身偏移)、absolute(相对最近定位祖先)、fixed(相对视口)、sticky(滚动时粘住)。top、right、bottom、left,逻辑属性可用 inset。float: left/right/inline-start/inline-end。clear: both 清除浮动。display: flex,属性 justify-content、align-items、flex-wrap、gap。flex-grow、flex-shrink、flex-basis、order。display: grid,grid-template-columns/rows、gap。grid-column、grid-row、span。repeat()、auto-fill、minmax()。subgrid:子网格继承父网格轨道。column-count、column-gap、column-rule。.container-query-demo { container-type: inline-size; }
@container (min-width: 500px) { ... }
transition: 属性 时长 缓动函数 延迟。@keyframes 定义动画关键帧,animation 应用。ease、linear、cubic-bezier()、steps()。animation-timeline: view() 或 scroll()。transform: translate() rotate() scale() skew()。perspective、rotateX()、rotateY()。filter: blur() brightness() contrast() grayscale() 等。mix-blend-mode:元素与背景混合。clip-path:裁剪形状。mask:遮罩。.parent {
color: blue;
& .child { color: red; }
&:hover { ... }
}
& 表示父选择器。calc()、min()、max()、clamp()。text-wrap: balance / pretty。text-overflow: ellipsis,配合 white-space: nowrap; overflow: hidden。-webkit-line-clamp 多行截断。text-shadow、text-decoration、letter-spacing、word-spacing。scroll-behavior: smooth。scroll-snap-type + scroll-snap-align 滚动吸附。aspect-ratio:宽高比。object-fit:图片填充方式。content-visibility: auto:提升渲染性能。@supports:特性检测。@scope:限定样式作用域。@property:注册自定义属性类型。@view-transition:视图过渡动画。will-change:提示浏览器优化。const canvas = document.getElementById('demo-canvas');
const ctx = canvas.getContext('2d');
这个页面几乎涵盖了 HTML5 和 CSS3 的所有重要知识点,并且使用了大量现代 CSS 特性(如 @layer、嵌套、容器查询、:has()、滚动驱动动画等)。建议初学者对照代码中的注释和实际显示效果,逐一实践每个知识点,以加深理解。
如果需要更详细的某个知识点的讲解,可以告诉我,我会单独展开。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。