写点什么

一文带你认识 HTML

作者:未见花闻
  • 2022 年 6 月 16 日
  • 本文字数:11500 字

    阅读完需:约 38 分钟

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>这是一个段落:</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 转义字符如下:



所以我们可以使用&nbsp来表示空格。



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="路径" alt="">
复制代码


用法:绝对路径:


<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,表示一列。

  • th,表示表头中的单元格,会居中并加粗。

  • thead,表示表格的头部部分,比 th 范围大。

  • tbody,表示表格主体部分。


比如,最简单的表格如下:


    <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>
复制代码



但是这个表格貌似有一点点小,我们可以通过widthheight来调整表格的大小,添加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> &nbsp;&nbsp;&nbsp;    <a href=" https://juejin.cn/user/1645327890524398">掘金</a> &nbsp;&nbsp;&nbsp;    <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

发布于: 刚刚阅读数: 3
用户头像

未见花闻

关注

还未添加个人签名 2021.11.15 加入

还未添加个人简介

评论

发布
暂无评论
一文带你认识HTML_6月月更_未见花闻_InfoQ写作社区