1.第一个 HTML 程序
1.1 如何新建 HTML 文件
第一步,新建文本文档。
第二步,设置文件名,并将文件类型修改为.html
文件。
第三步,开始写代码。
1.2 第一个 HTML 程序大功告成
第四步,使用浏览器打开,看结果。
由于记事本没有高亮和补齐,建议使用 vsCode 进行前端代码编写,对于 HTML,CSS,JS,不用安装额外的插件。
在浏览器中按F12
会出现一个控制台,这个就是用来查看 web 页面的控制台,你可以使用该控制台找到网页中的源码与运行时的输出结果。
先点击下面图中所指的按钮再点击浏览器页面某一处的元素,就能自动跳到该处的源码部分。
1.3HTML 完整结构
其实在 HTML 中,直接写一段文本显示是不规范的,但是由于浏览器是具有鲁棒性的,就算你直接写,也能正常显示。一个完整的 HTML 代码如下:
<!DOCTYPE html>
<html>
<head>
<title>标题</title>
</head>
<body>
hello html!
</body>
</html>
复制代码
在网页中的对应关系如下:
在 vsCode 中可以输入!
+Tab
可以自动生成一个完整的 HTML 模板:
那上面这些自动生成的代码是什么意思呢?
下面我们就来介绍 HTML 的基本语法知识。
2.HTML 基本知识
2.1 问题解释
对于上面自动生成的代码,每行代码的具体意思如下图:
第二行的 html 标签主要用于区分翻译前的语言是什么。
2.2 注释
基本格式:
用法:
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
随便写一句话。
<!-- 这是一段HTML注释-->
</body>
</html>
复制代码
我们发现虽然注释不会在网页展示,但是在浏览器元素查看窗口是能够看到注释的。
在 vsCode 使用快捷键ctrl+/
可以进行注释与非注释之间的转换。
2.3 文本标题
一共分为 6 级标题,级数越小,标题越粗越大。语法规则:
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
复制代码
用法:
2.4 段落
HTML 中使用 p 标签表示段落,每一个 p 标签独占一行,每行之间都有间距,语法:
用法:
<p>这是一个段落:</p>
<p>通过lorem + Tab(或回车) 可以自动填充一段文字。</p>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
Nihil eligendi rem, ab suscipit velit tenetur, doloribus consectetur iste saepe voluptate quia repudiandae doloremque?
Hic sequi laboriosam incidunt cumque dolor distinctio.
</p>
<p>在段落里面使用多个空格实际只会显示一个空格,使用回车无效,需要用到转义字符。</p>
复制代码
通过lorem+Tab
可以自动填充一段字符,便于我们检查段落的格式。
在段落里面使用多个空格实际只会显示一个空格,使用回车无效,需要用到转义字符。如:
<p>这是一个段落:</p>
<p>通过lorem + Tab(或回车) 可以自动填充一段文字。</p>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
Nihil eligendi rem, ab suscipit velit tenetur, doloribus consectetur iste saepe voluptate quia repudiandae doloremque?
Hic sequi laboriosam incidunt cumque dolor distinctio.
</p>
<p>在段落里面
使用多个空 格实际只
会显示 一个空格,使用回车无
效,需要用 到转义字符。</p>
复制代码
对于 HTML 里面单独使用的段落,段首是没有 2 空格的,如果需要设置,则需要用到 CSS。
使用 CSS 对 p 标签的内容进行缩进 2 字符:
浏览器显示:
如果想要使用换行,则需要使用单标签<br>
。
浏览器显示:
如果想要连续使用多个空格则需要使用转义字符,常见 HTML 转义字符如下:
所以我们可以使用 
来表示空格。
2.5 格式化标签
文本格式化常见的有五个,即加粗,倾斜,删除线,下划线,语法为:
<!-- 加粗 -->
<strong>加粗内容</strong>
<!-- 倾斜 -->
<em>倾斜内容</em>
<!-- 删除线 -->
<del>删除线内容</del>
<!-- 下划线 -->
<ins>下划线内容</ins>
复制代码
我们发现网页显示的内容都挤在一起了,就表明这些格式化标签不独占一行,叫做行内元素,反之能独占一行的叫块级元素,如 p 标签。
2.6 图片标签
图片标签也叫img
标签,是单标签,img
标签里面可以定义很多属性,比如src
属性表示图片的路径,可以是相对路径,也可以是绝对路径,也可以是网络路径。
img
标签常用内置属性:
src,表示路径。
alt,表示图片获取失败后显示的内容。
title,表示图片的标题。
width,设置图片宽度。
height,设置图片高度。
当 width 与 height 只设置一个时,图片会等比例缩小或放大。
语法:
用法:绝对路径:
<img src="D:\未见花闻\项目\HTML\1.png" alt="">
复制代码
相对路径:如果图片与代码文件在同一路径可以直接使用相对路径。
<img src=".\1.png" alt="">
复制代码
网络路径:网络路径就是从网站上图片的地址。比如https://img-blog.csdnimg.cn/ca94fbf641674e39a1754cb97a6fb960.png
就是一个网络路径。
<img src="https://img-blog.csdnimg.cn/ca94fbf641674e39a1754cb97a6fb960.png" alt="">
复制代码
至于alt
属性表示如果访问不到图片,就会显示一张默认的图片加一段文字。
<img src="40.png" alt="图片失效!">
复制代码
如果想要为图片配上一句话,可以使用title
标签:
<img src="D:\未见花闻\项目\HTML\1.png" alt="" title="这是一棵漂亮的樱花树!">
复制代码
最后就是你觉得图片太大了或太小了,想改变大小,可以选择 widht 与 height 属性。如果想等比例缩小或放大,只设置其中一个就可以了。涉及到长度,那么一定会涉及长度的单位,比较常用的单位就是px
(像素),我们知道屏幕是由一颗颗像素构成的,因此对于图片的大小常用像素表示。
<img src="D:\未见花闻\项目\HTML\1.png" alt="" title="这是一棵漂亮的樱花树!" width="500px" height="300px">
复制代码
<img src="D:\未见花闻\项目\HTML\1.png" alt="" title="这是一棵漂亮的樱花树!" width="500px">
复制代码
2.6 超链接标签
超链接就是点击一下就能跳转到某一页面,其标签为a
标签,常见属性是href
表示链接地址。
<a href="https://www.bilibili.com/">这是b站的主页链接</a>
复制代码
a 标签属于行内元素,写多个超链接,不会自动换行,此外 a 标签除了能够跳转网页链接,还可以跳转到另一个页面。
<a href="另一个网页.html">跳转到另一个页面</a>
复制代码
使用#
表示空链接,点了之后没有效果,一般在开发阶段使用,因为常常有时候跳转的地址还不知道,先使用#
占一个位置。
href
内还可以设置成一个文件的路径,表示下载文件,可以是压缩包。
<a href="./HTML.zip">点击下载压缩包</a>
复制代码
如果把图片放在 a 标签里面,点击图片也能跳转链接。
2.7 表格标签
表格标签是一组标签,最常用的有:
比如,最简单的表格如下:
<table>
<tr>
<td>1</td>
<td>java</td>
</tr>
<tr>
<td>2</td>
<td>c++</td>
</tr>
<tr>
<td>3</td>
<td>python</td>
</tr>
</table>
复制代码
我们发现这个表格太简陋了,线条都没有,此时我们需要给table
标签添加border
属性增加边框。
<table border="2px">
<tr>
<td>1</td>
<td>java</td>
</tr>
<tr>
<td>2</td>
<td>c++</td>
</tr>
<tr>
<td>3</td>
<td>python</td>
</tr>
</table>
复制代码
但是这个表格貌似有一点点小,我们可以通过width
和height
来调整表格的大小,添加th
标签可以为表格添加表头,使用cellspacing
属性置为0
来去除单元格间的间隙。
<table border="2px" width="300" height = "200" cellspacing="0">
<tr>
<th>序号</th>
<th>语言</th>
</tr>
<tr>
<td>1</td>
<td>java</td>
</tr>
<tr>
<td>2</td>
<td>c++</td>
</tr>
<tr>
<td>3</td>
<td>python</td>
</tr>
</table>
复制代码
我们发现表格的主体部分,是靠左对齐的,看起来有点别扭,文字都居中会更好一点,但是单凭HTML
是无法让表格内容做到居中的需要使用到 CSS。
<style>
td {
text-align: center;
}
</style>
<table border="2px" width="300" height = "200" cellspacing="0">
<tr>
<th>序号</th>
<th>语言</th>
</tr>
<tr>
<td>1</td>
<td>java</td>
</tr>
<tr>
<td>2</td>
<td>c++</td>
</tr>
<tr>
<td>3</td>
<td>python</td>
</tr>
</table>
复制代码
2.8 列表标签
列表主要分为有序列表,无序列表和自定义列表,无序列表使用标签ul
来表示,有序列表使用标签ol
来表示,列表里面每行的内容使用li
来表示,自定义列表使用dl
来表示,自定义列表可以设置一个小标题,使用dt
来表示,列表中的内容使用dd
来表示。
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>列表</title>
</head>
<body>
<h3>无序列表</h3>
<ul>
<li>java</li>
<li>go</li>
<li>python</li>
<li>c++</li>
<li>c</li>
</ul>
<h3>有序列表</h3>
<ol>
<li>java</li>
<li>go</li>
<li>python</li>
<li>c++</li>
<li>c</li>
</ol>
</body>
</html>
复制代码
<h3>自定义列表</h3>
<dl>
<dt>编程语言</dt>
<dd>java</dd>
<dd>go</dd>
<dd>python</dd>
<dd>c++</dd>
<dd>c</dd>
</dl>
复制代码
对于需要将并列的信息布局在一行或一列一般使用列表,对于列表显示的样式,可以通过 CSS 进行修改。
2.9 表单标签
表单标签是 HTML 中与用户进行交互的重要手段,大部分的 HTML 标签都是展示的作用,而表单标签可以让用户进行输入操作。form
标签用于为用户输入创建 HTML 表单。表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。表单用于向服务器传输数据。
2.9.1input 单行文本输入与选择标签
form
就是一个表单标签,借助这个标签可以让用户输入数据,form
里面可以存放一些与用户交互的组件,其中在form
里面存放input
标签就可以实现用户输入,比如登录输入账号与密码,注意input
标签是单标签。
在input
标签中常用的属性有:type 表示文本框的类型,比如 text 表示普通文本,单行文本框,password 表示密码框,用户看不到自己输入的内容,它也是单行文本框,name 表示文本框的名字,id 表示文本框的 id 等。
<h3>登录</h3>
<form>
账号:<input type="text"><br>
密码:<input type="password"><br>
</form>
复制代码
除此之外,当 type 的值为 radio 表示单选框,也是独占一行的。比如性别选择框。
<h3>单选框</h3>
<form>
<input type = "radio">男
<input type = "radio">女
</form>
复制代码
效果:
但是我们发现这个单选框,可以多选,并且选了之后再点一下无法取消。对于上面的情况,我们可以使用 name 属性,使两个单选框只能同时被选中一个,这样选择一个选项,另一个选项会被取消勾选。
<h3>单选框</h3>
<form>
<input type = "radio" name="sex-select">男
<input type = "radio" name="sex-select">女
</form>
复制代码
效果:
我们还可以添加 checked 属性增加默认选中的一个功能。
<h3>单选框</h3>
<form>
<input type = "radio" name="sex-select">男
<input type = "radio" name="sex-select" checked ="checked">女
</form>
复制代码
效果:
有时候那个小圆点比较小,当在手机上进行点击时很难点到这个小圆点,为了解决这个问题,我们可以使用label
标签来实现点击文字也能选中的功能。然后label
里面有一个 for 属性,可以给 for 属性赋予文本输入框的 id,这样它就知道,是要为哪一个文本框实现点击文字等选中功能。
<h3>单选框</h3>
<form>
<input type = "radio" name="sex-select" id="man">
<label for="man">男</label>
<input type = "radio" name="sex-select" id="woman" checked ="checked">
<label for="woman">女</label>
</form>
复制代码
效果:
对于 id 属性,HTML 中任何元素都可以指定 id,并且一个 HTML 文件中,每个元素的 id 不能相同,所以我们可以通过 id 来寻找某一元素。
既然有单选框,那么肯定也有复选框(多选框),type 属性设置为 checkbox 就表示复选框。
<h3>复选框:请问100=?</h3>
<form>
<input type="checkbox">A.50+50<br>
<input type="checkbox">B.50*2<br>
<input type="checkbox">C.1000/10<br>
<input type="checkbox">D.200-100
</form>
复制代码
效果:
同理,复选框也可以设置 checked 属性为 checked 表示默认选项。
<h3>复选框:请问100=?</h3>
<form>
<input type="checkbox" checked="checked">A.50+50<br>
<input type="checkbox">B.50*2<br>
<input type="checkbox">C.1000/10<br>
<input type="checkbox">D.200-100
</form>
复制代码
效果:
同理,复选框也可以搭配label
来使用,和单选框一样。
除了文本框,多选框和单选框,还能实现按钮功能,具体用法如下:
<!-- html中""与''作用一样,如果引用内容有双引号,外面引号使用单引号,反之亦然,如果都有就需要转义字符了。 -->
<h3>按钮</h3>
<form>
<input type="button" value= "这是一个按钮" onclick="alert('不要点我')">
</form>
复制代码
效果:
除此之外直接使用button
标签页可以实现按钮效果。
<button onclick="alert('快来点我')">这是另一个按钮</button>
复制代码
效果:
如果需要选择文件,上传文件,可以设置 type 属性为 file,由于上传文件需要实现服务端才能实现,我们后面再说。
2.9.2select 下拉菜单标签
表单标签除了 input 单行文本输入和选择标签,还有select
选择标签,可以实现下拉菜单功能或者选择日期的功能。
<h3>选择日期</h3>
<form>
<select>
<option>2022年1月1日元旦节</option>
<option>2022年2月1日春节</option>
<option>2022年2月15日元宵节</option>
<option>2022年3月12日植树节</option>
<option>2022年4月1日愚人节</option>
<option>2022年5月1日劳动节</option>
<option>2022年6月1日儿童节</option>
<option>2022年6月3日端午节</option>
</select>
</form>
复制代码
每一个option
表示一项菜单,效果图:
2.9.3textarea 多行文本输入框标签
对于多行的文本输入框可以使用textarea
标签来实现,cols 属性表示显示出的列数,rows 表示显示出的行数,其实就是设置文本框大小使用的,基本用法:
<h3>多行输入框</h3>
<form>
<textarea cols="50" rows="10"></textarea>
</form>
复制代码
当然这些输入文本框和选择提交按钮,没有在 form 标签里也是可以正常显示的,只不过无法向服务器(后端)发送交互数据了。
2.10 无语义标签
HTML 无语义标签有两个,一个是div
标签,另一个是span
标签,这两个标签除了 input 等交互的标签代替不了,其他的有语义标签都能代替。
div 与 span 的主要区别,前者是块级元素,独占一行,后者是行内元素,不独占一行。
3.HTML 案例
3.1 简历格式案例
目标页面:
代码:
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>个人简历</title>
</head>
<body>
<h1>我的简历</h1>
<h2>基本信息</h2>
<img src="https://profile-avatar.csdnimg.cn/203477751713471691ee25f914678fd4_m0_59139260.jpg!1" alt="简历图片" width="100px" height="100px">
<p>姓名:xxx</p>
<p>性别:xxx</p>
<p>学校:XX大学</p>
<p>求职意向:Java开发工程师,C++开发工程师,Go开发工程师,后端开发工程师</p>
<p>联系电话:10086</div>
<p>个人邮箱:weijianhuawen@163.com</p>
<span>博客链接:<span>
<a href="https://weijianhuawen.blog.csdn.net/">CSDN</a>
<a href=" https://juejin.cn/user/1645327890524398">掘金</a>
<a href="https://blog.51cto.com/weijianhuawen">51CTO</a> <br>
<div>github: <a href="https://github.com/weijianhuawen">https://github.com/weijianhuawen</a> <br></div>
<div>gitee: <a href="https://gitee.com/weijianhuawen">https://gitee.com/weijianhuawen</a> <br></div>
<h2>教育背景</h2>
<ol>
<li>xxxx-xx-xx xx小学</li>
<li>xxxx-xx-xx xx中学</li>
<li>xxxx-xx-xx xx大学 xx专业 本科</li>
</ol>
<h2>专业技能</h2>
<ul>
<li>熟悉Java,C/C++语言</li>
<li>熟悉顺序表,链表,栈,队列,二叉树,堆,哈希表等数据结构</li>
<li>掌握常见的排序算法,如希尔排序,快速排序,归并排序,堆排序</li>
<li>熟练使用MySQL增删查改,了解数据库事务,JDBC编程</li>
<li>了解进程线程的概念与区别,熟悉多线程编程,如多线程实现单例模式,定时器,线程池等案例</li>
<li>熟悉网络原理与网络编程,如TCP/IP,UDP,HTTP等网络协议</li>
<li>掌握Web开发能力,能够独立开发一个简单的网页</li>
<li>更多......</li>
</ul>
<h2>我的项目</h2>
<ol>
<!-- 第一个项目 -->
<li>
<h3>留言墙</h3>
<p>开发时间:xxxx.xx-xxxx.xx</p>
<p>功能介绍:</p>
<ul>
<li>支持留言发布</li>
<li>支持匿名留言</li>
</ul>
</li>
<!-- 第二个项目 -->
<li>
<h3>错题本</h3>
<p>开发时间:xxxx.xx-xxxx.xx</p>
<p>功能介绍:</p>
<ul>
<li>支持错题搜索</li>
<li>支持自助错题复习</li>
</ul>
</li>
</ol>
<h2>个人评价</h2>
<div>多次获得奖学金,拥有优秀的自主学习能力</div>
</body>
</html>
复制代码
3.2 简历填写案例
目标页面:
代码:
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简历信息填写</title>
</head>
<body>
<h1>请填写简历信息</h1>
<!-- 姓名 -->
<table>
<tr>
<td>
<img src="./真实姓名.png" width="15px" > 姓名
</td>
<td>
<input type="text">
</td>
</tr>
<!-- 性别 -->
<tr>
<td>
<img src="./性别.png" alt="" width="15px" > 性别
</td>
<td>
<input type="radio" name="sex" id="man" checked="checked">
<label for="man">
<img src="./性别男.png" alt="" width="15px">男
</label>
<input type="radio" name="sex" id="woman">
<label for="woman">
<img src="./性别女.png" alt="" width="15px" >女
</label>
</td>
</tr>
<!-- 出生日期 -->
<tr>
<td>
<img src="./出生日期.png" width="15px">出生日期
</td>
<td>
<select>
<option>-- 请选择年份 --</option>
<option>1990</option>
<option>1991</option>
<option>1992</option>
<option>1993</option>
<option>1994</option>
<option>1995</option>
<option>1996</option>
<option>1997</option>
<option>1998</option>
<option>1999</option>
<option>2000</option>
<option>2001</option>
<option>2002</option>
<option>2003</option>
<option>2004</option>
<option>2005</option>
<option>2006</option>
<option>2007</option>
<option>2008</option>
<option>2009</option>
<option>2010</option>
<option>2011</option>
<option>2012</option>
<option>2013</option>
<option>2014</option>
<option>2015</option>
<option>2016</option>
<option>2017</option>
<option>2018</option>
<option>2019</option>
<option>2020</option>
<option>2021</option>
<option>2022</option>
<option>2023</option>
<option>2024</option>
</select>
<select>
<option>-- 请选择月份 --</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>
<select>
<option>-- 请选择日期 --</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
</td>
</tr>
<tr>
<td>
<img src="./学校.png" alt="" width="15px">学校
</td>
<td>
<input type="text">
</td>
</tr>
<!-- 应聘岗位 -->
<tr>
<td>
<img src="./招聘岗位.png" alt="" width="15px">应聘岗位
</td>
<td>
<input type="checkbox" id="1">
<label for="1">
前端开发
</label>
<input type="checkbox" id="2">
<label for="2">
后端开发
</label>
<input type="checkbox" id="3">
<label for="3">
测试开发
</label>
<input type="checkbox" id="4">
<label for="4">
运维开发
</label>
</td>
</tr>
<!-- 掌握的技能 -->
<tr>
<td>
<img src="./个人技能.png" alt="" width="15px">掌握的技能
</td>
<td>
<textarea cols="50px" rows="10px"></textarea>
</td>
</tr>
<!-- 项目经历 -->
<tr>
<td>
<img src="./项目经历-02.png" alt="" width="15px">项目经历
</td>
<td>
<textarea cols="50px" rows="10px"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="checkbox" id="check">
<label for="check">我已经仔细阅读过公司的招聘要求。</label>
</td>
</tr>
<tr>
<td>
</td>
<td>
<a href="#">点击查看我的招聘状态</a>
</td>
</tr>
<tr>
<td>
</td>
<td>
<h3>请应聘者确认:</h3>
<ul>
<li>以上信息属实</li>
<li>能够尽快去公司实习</li>
<li>能够接受公司的加班文化</li>
</ul>
</td>
</tr>
<tr>
<td>
</td>
<td>
<button onclick="alert('提交成功!')">提交</button>
</td>
</tr>
</table>
</body>
</html>
复制代码
实际效果演示:
有关 HTML 的内容差不多就是这些了,感觉还挺有趣的,下期介绍 CSS。
下期预告:一文带你认识 CSS
评论