ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HTML基础语法入门:从标签到网页骨架的完整指南

HTML基础语法入门:从标签到网页骨架的完整指南 如果让我给刚接触前端的新手写一句开场白我会说HTML是你在浏览器里看到的每一个网页的骨架。学HTML基础语法其实就是在学怎么把骨架搭对、搭稳。很多初学者一上来就被“标签”“属性”“元素”这些概念绕晕或者把HTML当成一门编程语言来死记硬背结果越学越乱。实际上HTML没那么玄乎它的核心就是“用一套约定好的标记把文字、图片、链接等内容组织起来让浏览器知道该怎么展示”。这篇文章适合所有刚开始学网页制作的人也适合那些已经写过一点HTML、但基础概念还模棱两可的朋友。我会从HTML到底是什么讲起把标签、元素、属性、文档结构这些基础语法全部拆开揉碎再给出一套可以直接照抄的页面骨架模板最后聊聊我平时写HTML时踩过的坑。内容不涉及复杂框架也不依赖任何开发工具你只需要一个记事本加一个浏览器就能跟着操作。1. 先搞清楚HTML到底是门什么“语言”1.1 HTML不是编程语言它是一套“内容标记规则”很多新手会问HTML需要学算法吗需要学逻辑判断吗答案都不需要。HTML全称是HyperText Markup Language中文叫“超文本标记语言”。注意“标记语言”这四个字它和Python、Java、C这类“编程语言”完全是两个物种。编程语言需要处理变量、条件、循环、函数而HTML不负责这些它只负责“告诉你这段文字是标题”“这张图片要放在这里”“这个链接指向哪个地址”。我常打一个比方HTML像是一份装修图纸。图纸上不会写“怎么搅拌水泥”也不会写“电路怎么走”它只标注“这里是卧室”“这里是厨房”“窗户装在这个位置”。浏览器拿到HTML源码后就像装修工人拿到图纸照着标记把网页内容渲染出来。所以学HTML基础语法本质上是在学“看图例、写标注”而不是在学“写程序”。1.2 标签、元素、属性别把它们混成一锅粥HTML语法的基础单位是“标签”。标签用尖括号包裹比如p、h1、div。大部分标签都是成对出现的一个开始标签加一个结束标签结束标签在标签名前加斜杠例如p这里是内容/p。由开始标签、结束标签以及中间的内容组合在一起就构成了一个“元素”。比如下面这段p这是一段文字/p这里的p是开始标签/p是结束标签“这是一段文字”是元素内容整件事合起来是一个p元素。在HTML里“标签”和“元素”经常被混着说但严格讲元素是“标签内容”的整体。标签还可以带上“属性”属性用来给元素补充信息。比如链接标签a光有标签不知道跳转到哪里所以要用href属性指定地址a hrefhttps://example.com点击访问示例网站/a这里hrefhttps://example.com就是一个属性属性名是href属性值是https://example.com。属性写在开始标签内部多个属性之间用空格隔开。属性值一般用双引号包裹虽然某些情况下单引号或者不写引号也能解析但建议养成“属性值一律用双引号”的习惯能省掉很多奇怪的Bug。还有一类标签没有内容叫“空标签”或“自闭合标签”。最典型的是换行标签br和图片标签img他们的写法是在标签内部加一个斜杠例如br /或img srccat.jpg alt一张猫的照片 /。在HTML5的规范里br和br /都合法我个人的习惯是写br简洁且不容易出错。2. 一个页面从骨架开始文档结构与基础骨架2.1 完整页面骨架长什么样学HTML基础语法第一件事就是背下一个最简单的页面骨架。先不用问为什么每行都要这么写等后面我逐行解释完你就全明白了。!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title我的第一个网页/title /head body h1HelloHTML/h1 p这是我用HTML基础语法写出的第一个页面。/p /body /html把这串代码保存成一个index.html文件用浏览器打开就能看到一个最简单的网页。第一行!DOCTYPE html不是标签而是文档类型声明。它的作用是告诉浏览器“我这个文件遵循的是HTML5标准请用现代模式解析。”没有这一行浏览器会进入一种“怪异模式”页面的排版可能跟你想的不太一样。第二行html langzh-CN是根标签整个页面所有内容都包在它里面。langzh-CN是声明页面主要语言为简体中文方便浏览器、搜索引擎和屏幕阅读器识别。国内做中文网页时这个语言属性写成zh-CN或zh-Hans都很常见。2.2 head不直接显示页面内容却极其重要的“幕后信息区”head区域存放的是页面的元信息用户不会直接在网页上看到这些内容title除外它会出现在浏览器标签栏上。基础语法里最常遇到的head标签有这么几类meta charsetUTF-8声明字符编码解决中文乱码问题meta nameviewport contentwidthdevice-width, initial-scale1.0是移动端适配的关键设置它告诉浏览器“把页面宽度当作手机屏幕宽度来渲染初始缩放比例为1”没有这条手机浏览器会强行把页面缩得很小字都看不清title定义网页标题同时也是搜索引擎结果里显示的标题。head区域还会放CSS样式和外部样式表的引用。初学者经常犯的错是把style样式块或script脚本块一股脑全塞进body里虽然浏览器大多数时候能解析但标准做法是CSS放在head里JS脚本放在body的最后位置。这个后面可以单独细说但基础阶段先把“head放头部信息body放页面内容”这个规矩记住。2.3 body用户能看到的全部内容都在这body标签内部就是网页的主体区域。你在页面上看到的文字、图片、表单、按钮、视频全部写在body里。body里面可以继续嵌套其他标签比如h1、p、div、ul这些。嵌套时要注意层级关系就像整理箱子大箱子套小箱子但小箱子不能一半放在大箱子里、一半露在外面。HTML允许在代码里写注释格式是!-- 注释内容 --。注释不会被浏览器显示但写代码的人能看到。我强烈建议新手从第一天就养成写结构化注释的习惯比如在/body前面写!-- 页面底部内容结束 --时间久了维护大文件时会感激当初的自己。3. 最常用的基础语法块从文本到表单3.1 文本标题与段落h1~h6、p、br、hrHTML提供六级标题标签从h1到h6重要性依次递减。h1一般是页面的主标题一个页面建议只出现一次因为搜索引擎很看重它h2到h6可以作为板块标题、子标题层层递进。记住标题标签的作用是“表示文章的层级结构”不是为了把字变大。想要控制字体大小应该用CSS的font-size而不是选一个更大级别的标题。段落标签p用来表示一段文字。浏览器在渲染p元素时默认会在段落上下加一点间距所以你不需要手动加空行。如果你在HTML源码里写了几个连续换行浏览器只会把它当作一个空格处理这就是HTML的“空白折叠”特性。想要真正换行用br标签想要画一条水平分割线用hr标签。br和hr都是空标签不需要结束标签。文本强调方面基础语法里常用strong表示加粗强调em表示斜体强调。注意strong和em带有“强调”的语义含义不只是视觉上的加粗和斜体如果只是想改变样式依然建议交给CSS处理。3.2 链接和图片让页面连接起来的关键语法链接标签a是最能体现“超文本”特点的标签a hrefhttps://www.example.com target_blank打开示例网站/ahref表示链接地址target_blank表示在新标签页打开。还有一个容易被忽视的title属性鼠标悬停在链接上时会出现提示文字用户体验更好也方便SEO。如果是页面内部跳转可以把href指向某个元素的id值比如a href#section1跳转到第一部分/a这就是“锚点跳转”的基本原理也是热词里“HTML一键返回顶部”的基础玩法。图片标签img比链接更特殊它没有结束标签内容通过src属性引入img srcimages/cat.jpg alt一只橘猫趴在窗台上 width400 height300src是图片地址alt是图片加载失败或屏幕阅读器访问时替代展示的文字。width和height可以写像素值但更推荐把尺寸控制交给CSS。千万不要忽略alt它既是无障碍访问的基础也是图片搜索引擎抓取的重要依据。基础语法阶段每次写img标签都强制自己写出有意义的alt文字。3.3 有序列表和无序列表内容结构化的好帮手列表在网页里出现的频率非常高导航菜单、商品参数、新闻列表全都是列表的变体。无序列表用ulunordered list包裹每一项用lilist itemul li苹果/li li香蕉/li li橘子/li /ul有序列表用olordered list浏览器会自动给每一项编号ol li打开编辑器/li li新建HTML文件/li li在浏览器中预览/li /ol列表之间可以互相嵌套比如在li里面再放一个ul做成多级菜单。不过嵌套层级太深会影响阅读和维护一般建议不超过三层。另外要特别留意ul和ol的直接子元素必须是li不要把div或者其他标签直接塞在ul里这是基础语法里一个容易忽略的规则。3.4 表格最基础的数据展示语法表格由table标签包裹内部按行和单元格组织。常见的标签有tr表示一行th表示表头单元格td表示普通数据单元格。table border1 tr th姓名/th th年龄/th th城市/th /tr tr td小明/td td18/td td北京/td /tr tr td小红/td td20/td td上海/td /tr /table我故意在table标签上加了border1方便新手在浏览器里直观看到表格边框。但这属于“表现层”的东西实际开发中应该用CSS的border属性来美化。表格还有colspan跨列合并和rowspan跨行合并属性比如td colspan2合并两个单元格/td。合并单元格是新手比较容易数错的地方合并后该行的列数要和其他行保持一致否则表格会变得歪歪扭扭。3.5 表单和用户交互的第一步表单标签form是网页收集用户输入的核心。基础语法至少要掌握input、textarea、select和button。form action/submit methodpost label forusername用户名/label input typetext idusername nameusername placeholder请输入用户名 br label forpassword密码/label input typepassword idpassword namepassword br textarea idintro nameintro rows4 cols30个人简介/textarea br select namecity idcity option valuebeijing北京/option option valueshanghai上海/option /select br button typesubmit注册/button /formform的action属性表示表单提交到哪个地址method表示用什么方式提交常见的有get和post。input是表单里最灵活的标签通过type属性的不同取值可以变成文本框、密码框、单选按钮、复选框、日期选择器等。label用for属性关联到某个input的id这样点击“用户名”文字时对应的输入框就会获得焦点这个细节在移动端尤其好用。name属性是表单数据的“键”提交到服务器时数据会以用户名某个值密码某个值的形式发送没有name的数据是传不过去的。4. HTML基础语法里那些容易忽略的“暗坑”4.1 布尔属性看到标签就生效HTML里有一类属性叫“布尔属性”它不需要写属性值只要属性名出现在标签里就代表“打开”这个功能。最典型的是disabled、checked、required、readonly、selected。input typetext disabled这段代码表示输入框被禁用用户无法编辑。布尔属性不是不能写值只是值写不写效果都一样checkedchecked和checked都代表选中。新手容易困惑的是“我要让复选框默认选中应该怎么写”答案就是加checked即可input typecheckbox checked 我已阅读用户协议4.2 在网页上显示HTML代码实体字符逃不开如果我想在网页上展示一段HTML代码直接写p的话浏览器会把它解析成一个真实的段落标签画面就乱了。这时候要用HTML实体Entity。常见的实体有显示结果实体写法说明lt;小于号gt;大于号amp;和号空格nbsp;不换行空格©copy;版权符号比如我在本文里要展示这段源码lt;pgt;这是一个段落lt;/pgt;浏览器渲染时会显示为p这是一个段落/p。如果你在页面上看到别的内容莫名消失了不用怀疑大概率是尖括号被浏览器当成了标签开头这时候就要检查是否需要对特殊字符做转义。4.3 标签嵌套的规则别想怎么套就怎么套HTML标签的嵌套逻辑必须像洋葱一样一层一层包住不能交叉。下面的写法是错误的pstrong文字加粗/p/strongp先开始strong后开始那么结束顺序必须是先结束strong再结束p也就是写成pstrong文字加粗/strong/p。浏览器对交叉嵌套有容错处理有时候会自动修正但修正结果不一定是你想要的。与其后面排查一堆诡异问题不如开始写代码时就一层层理顺。另一个嵌套规则和“块级元素”“行内元素”的划分有关。传统上块级元素如div、p、h1、ul、li会独占一行可以设置宽高和上下边距行内元素如span、a、strong、em在一行内排列设置宽高无效。基础语法阶段要记住一个硬性规则p标签里不能嵌套块级元素比如不能在p里放一个div或者一个ul这在HTML5规范里是不合法的。如果想在段落里圈出一块区域设置样式应该用行内元素span。4.4 别再用div一把梭基础语法就有的语义化标签很久以前网页制作流行用div划分页面区域每个区域再加id或class区分。这个做法能用但对阅读代码、搜索引擎优化、屏幕阅读器都很不友好。HTML5在基础语法中加入了一系列语义化标签header表示页眉nav表示导航栏main表示主体内容article表示一篇文章section表示一个区块aside表示侧边栏footer表示页脚。body header网站标题/header nav导航链接列表/nav main article文章内容/article aside侧边栏内容/aside /main footer版权信息/footer /body这些标签在浏览器里默认看起来和div没什么两样但它们携带语义。就好比你搬家时把箱子贴上“厨房用品”“卧室衣物”的标签找东西就快很多。理解HTML基础语法不能只停留在“标签能显示什么”还要理解“标签代表什么意义”这是从“能写”走向“会写”的关键一步。5. 新手高频问题与排查技巧实录5.1 中文乱码了怎么办网页中文乱码的原因基本都是“文件保存的编码”和“浏览器解析的编码”不一致。HTML文件默认保存为UTF-8编码时要在head里写meta charsetUTF-8如果你的编辑器把文件保存成了GBK编码而页面声明的还是UTF-8必然乱码。解决思路是先在编辑器右下角确认文件编码格式再让meta声明的编码和它保持一致。如果用的是VS Code右下角状态栏能直接切换编码方式这个细节我遇到无数次了。5.2 图片不显示链接打不开路径写错了新手经常把图片地址写成src/images/cat.jpg或者srcC:\Users\...\cat.jpg这类形式。前者是绝对路径从根目录开始找后者是电脑本地路径换一台电脑或换一个服务器就失效。正确做法是在项目文件夹内部使用相对路径比如项目根目录下有个images文件夹图片文件就在里面那么应该写srcimages/cat.jpg。如果想引用上一级目录的文件用../。简单记./表示当前目录../表示上一级目录别想当然地写绝对路径。5.3 页面打开是一堆代码而不是网页出现这种情况要么是文件扩展名不是.html要么是系统隐藏了扩展名导致你建了一个index.html.txt浏览器当然不会把它当成网页解析。解决办法是打开文件管理器的“显示文件扩展名”选项确认文件名后缀。还有另一种情况是把HTML文件放在某个在线代码仓库里直接用浏览器访问纯文本链接这时候要确保访问的是页面地址而不是源码下载地址。5.4 我用VS Code写HTML怎么快速预览我自己日常用VS Code写前端代码基础阶段推荐装一个叫Live Server的插件。装好之后在HTML文件上点击右键选择“Open with Live Server”它会在浏览器里启动一个本地预览服务。好处是修改代码保存后浏览器会自动刷新不需要手动按F5。如果你想用最简单的方式也可以直接在文件夹里双击HTML文件用系统默认浏览器打开预览。区别是直接双击打开不走本地服务器一些涉及模块加载或异步请求的功能会受限但纯HTML基础语法展示完全够用。5.5 页面里想实现“一键返回顶部”怎么写这个词在热搜里经常出现我顺便把基础语法能实现的方式写一下。最简单的做法是利用锚点在body最顶端放一个div idtop/div然后在页面靠下位置放一个链接a href#top返回顶部/a点击链接浏览器就会跳到id为top的元素位置也就是页面顶部。想要平滑滚动可以后续加一行CSShtml { scroll-behavior: smooth; }。这个方案不需要任何JavaScript纯HTML加一行CSS就能搞定特别适合验证“属性值通过#来定位页面元素”这个基础知识点。5.6 排错基本法CSS没生效先查标签闭合我刚带新人做网页制作时最常碰到的场景是样式写着写着突然不生效了改了半天CSS没动静。最后一看是前面某个标签没闭合。因为浏览器遇到没闭合的标签会试图“自动补全”补全位置和你预期完全不一样后续元素全被塞进了一个奇怪的嵌套关系里样式自然就乱了。排查方法很简单按F12打开浏览器开发者工具查看Elements面板里元素的实际嵌套关系一眼就能找出被浏览器“纠正”过的地方。记住前端排错永远先把页面结构查清楚再谈样式和脚本。在HTML基础语法这件事上我见过太多人把时间耗在背标签上其实真正常用的标签就那么二十来个多写几次自然就记住了。我自己带新人的体会是真正难的不是标签怎么拼而是元素之间怎么嵌套、路径怎么引用、文档结构怎么组织。这三个点基本功打牢了后面学CSS和JavaScript会顺利很多。最后再分享一个小技巧——每次写完一个HTML文件都试着用浏览器开发者工具检查一下结构或者用一些在线HTML校验工具过一遍慢慢你会发现原来那些奇奇怪怪的显示问题八成都是基础语法里某个细节没写对。HTML基础语法一点也不难难的是愿不愿意静下心来把每个细节都弄明白希望看完整篇文章的你能立刻新建一个HTML文件亲手把骨架搭起来。
返回列表