【大白话前端 04】HTML 头部的底层逻辑:决定网页解析与检索的隐形配置单
HTML 文档只有两个核心区域: 别觉得看不见就不重要。如果 计算机底层只认识 0 和 1。想在屏幕上正常显示中文字,就需要指定一本“翻译字典”。早期错用了只包含英文字母的字典,大家在看中文网页时就会满屏乱码。 这个标签是专门留给搜索引擎爬虫看的。你在这里写的一段话,会直接用来当作搜索结果里大标题下方的那段灰色摘要文字。 Open Graph(开放图谱协议)旨在解决链接分享时的富媒体展示问题。 真实场景说明: 常见的刚需级配置项包含这三条: 也叫 favicon,就是日常打开网页时,显示在浏览器最顶端标签页最左边的那个微型图标,你把网页存到手机桌面时通常也是用它做图标。 现在不用死磕老旧的 为了后续修改方便并让多个页面能共用一套代码,我们一般不会把样式和交互全糊在一个文件里,而是把负责“长啥样”的 CSS 和负责“有什么动作”的 JS 单独存成文件,再通过头部把它们接进网页来。 当浏览器读到这句代码时,会故意停一下加载页面的手头工作,专门去等 如果不加防备直接引入 JS 文件(比如写成 想解决这个问题,加上 加上 写在代码最顶层的 配完 在下一篇《05. HTML标题与段落》里,我们会讲讲机器是怎么“读”网页的,以及怎么用一套严丝合缝的标题(<body> 和 <head>。<body> 放的是用户真正在屏幕上能看到的具体内容(比如文字、按钮和图片);而 <head> 则是网页的“幕后配置区”。<head> 里的信息不会显示在页面的正文里,但它主要负责告诉浏览器这网页该怎么显示、告诉搜索引擎这网页讲了啥内容,以及规范在社交软件中转发链接时图文卡片长什么样。<head> 没配好,页面很容易出现中文乱码、加载卡白屏,或者在各大搜索引擎里压根搜不到你。一、
<head> 应该写在哪?<head> 标签必须放在 <html> 标签内部,并且一定要写在 <body> 前面。
因为浏览器读取代码的规则是死理,永远“从上到下”。它必须先拿到 <head> 里的各项前置配置和规则,才能正确去画后续 <body> 里的肉眼可视内容。<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>基础页面定义</title>
</head>
<body>
<!-- 页面正文内容 -->
</body>
</html>二、
<title>:网页的“大名”1.
<title> 和 <h1> 别搞混<title> 是整个网页的名字。它不占页面里的排版空间,只显示在浏览器的最顶端标签页上、浏览器的收藏书签里,以及搜索结果的首行蓝字上。每个页面只能写一个 <title>。<h1> 则是写在你的网页正文里、一眼就能看到排版大标题。2.
<title> 的三个实际用处<title>,写清楚了才能让用户一眼找到并切回你的网页。<title> 里的字当做保存名字,不需要手打。<title> 看得极重。你的 <title> 里包含了什么词,直接决定了别人搜哪些词能找到你。三、
<meta>:网页的“说明书”<meta> 标签专门用来存各种“设置说明”和“摘要”,全靠它跟浏览器以及搜索引擎的爬虫沟通。1. 字符编码:
<meta charset="utf-8">UTF-8 是现在全球通用的标准,支持世界上几乎所有的文字。加上这句,只要是现代浏览器就绝不会乱码。
注意:这行代码必须是 <head> 里的第一行!要确保浏览器在往下遇到任何中文字之前,已经被通知要用这本“最全字典”去解码。<head>
<meta charset="utf-8"> <!-- 必须放在其他所有标签之前 -->
<title>基础页面</title>
</head>2. 页面简介:
<meta name="description"><meta name="description" content="本文为你拆解HTML头部的6大核心配置,帮你彻底解决页面乱码与搜索盲区大坑。"><meta name="keywords"> 标签,现在已经被各大搜索引擎当做作弊废弃了,千万别再写。)3. Open Graph (OG) 标签:社交图谱属性数据
假设你写了一篇文章,把文章链接发到微信聊天框或朋友圈。<meta property="og:title" content="社交卡片独立抓取的加粗标题">
<meta property="og:description" content="社交卡片下的描述区域文本">
<meta property="og:image" content="https://xxx.com/cover.jpg"> <!-- 建议采用 1200x630 的通用规则外链图 -->四、 网站小图标:
<link rel="icon">.ico 格式了。建议直接拿一张你的 .png 或 .svg 图片放进去,主流终端现在全兼容:<link rel="icon" href="/favicon.png" type="image/png">五、 引入外部文件:CSS 和 JavaScript
1. 引入 CSS
<link rel="stylesheet" href="style.css">style.css 文件下载完。这么干是为了保证用户第一眼看到的就是带颜色、带排版的工整网页,而不是先看到毫无样式的黑白丑文章,等 CSS 来了才突然“闪一下”大变样。2. 引入 JS 与防卡顿神器
defer<script src="script.js"></script>)极易出大事故:浏览器遇到这行代码,会立刻定住网页内容的读取进度,非去下载再运行这写 JS 代码不可。万一代码里写了“点击网页最下面的XX按钮”,但刚才浏览器因为被卡住还没画出这个按钮,整个网页就会当场报错崩溃死在那。defer 参量就行了:<script src="script.js" defer></script>defer,其实就是给浏览器传了个话:“你去后台悄悄把这 JS 下载着,别耽误前面正常读代码铺网页。等到整个网页的内容全被你按顺序画完了,你再把下载好的 JS 拿出来运行”。完美做到画面秒开、零卡顿。六、 声明当前网页的语言:
<html lang="zh-CN"><html> 标签上,用来向外界明确声明这个网页的主体是什么语言。看似是个没啥用的细节,但不写很容易踩三个暗坑:小结与下篇预告
<head> 的 7 个核心配置:<meta charset="utf-8">:防乱码。<title>:定页面大名、抢搜索排名。<meta name="description">:提供搜索页的灰色摘要。OG 标签:搞定微信转发卡片的图文展示。<link rel="icon">:挂载标签栏小图标。<link>:引入 CSS 铺样式;<script defer> 引入 JS 加动作且防卡顿加载。<html lang="zh-CN">:敲定网页所属语言。<head>,终于要进入能在网页上写字的 <body> 区域了。
但很多人上来就会踩一个坑:为了让字变大,直接写一大堆 <span> 和 <div> 然后强行加粗变大。这种做法在机器眼里完全是无效信息。h1~h6)和段落(<p>)搭出清晰的页面骨架。