HTML 基础

在这里插入图片描述

HTML是什么

这是百度的解答:HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言。它不是一种编程语言,而是一种标记语言(markup language),用于描述网页的结构和内容。HTML 使用“标签”(tags)来定义网页中的元素,如段落、标题、链接、图片、列表等。这些标签告诉浏览器如何显示网页内容。

说到前端,人们就会想到 HTML、CSS、JavaScript这三剑客,HTML 定义了网页的结构和内容;CSS 负责网页的样式和布局;JavaScript 实现了网页的动态功能和交互性。

本篇文章将为大家介绍关于 HTML 的知识。注:因为本人主攻后端,所以文章中写到的知识都是最基本的知识,没有特别的深入。

HTML结构

认识HTML标签

HTML 代码是由“标签”构成的,例如:<body>hello</body>

  • 标签名会放在 <> 之间
  • 大部分标签成对存在,<body>为开始标签,</body>为结束标签
  • 少数标签只有开始标签,称为“单标签”
  • 开始标签和结束标签之间,写的是标签的内容
  • 开始标签中可能会带有“属性”,用来控制标签中的格式和行为

HTML文件基本结构

<html>
	<head>
		<title>标题</title>
	</head>
	<body>
		hello
	</hello>
</html>
  • html 标签是整个 html 文件的根标签(最顶层标签)
  • head 标签中写页面的属性
  • body 标签中写的是页面上显示的内容
  • title 标签中写的是页面的标题

在这里插入图片描述

标签层次结构

HTML 的标签之间存在两种关系:父子关系和兄弟关系。上面的代码中 head 标签和 body 标签是 html 标签的子标签,也就是 html 标签是 head 标签和 body 标签的父标签;title 标签是 head 标签的子标签;而 head 标签和 body 标签则是兄弟关系。

标签之间的结构关系,构成了一个 DOM(Document Object Mode ) 树:

在这里插入图片描述
在很多集成编译环境中,往往可以使用 ! + … 来快速生成一个 HTML 主体框架,在 VScode 中使用 ! + enter,在 idea 中使用 ! + Tab。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
  • <!DOCTYPE html> 称为 DTD(文档类型定义),描述当前的文件是一个 HTML5 的文件
  • <html lang=“en”> 其中 lang 属性表示当前页面是一个“英语页面”。这里暂时不用管,有些浏览器会根据此处的声明提示是否进行自动翻译
  • <meta charset=“UTF-8”> 描述页面的编码方式,没有这一行可能会导致中文乱码
  • <meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
    • name="viewport"指的是设备的屏幕上能用来显示我们的网页的那一块区域
    • content=“width=device-width”,init-scale=1.0 在设置可视区和设备宽度等宽,并设置初始缩放为不缩放(这个属性对于移动端开发更重要一些)

HTML常见标签

注释标签

在学任何一个新的语言的时候,首先想到的肯定就是注释了,在 HTML 中使用 <!-- 注释 --> 来达到注释的目的。可以使用 CTRL + / 来达到快速注释的目的。

标题标签

标题标签有六个,从 h1 到 h6,数字越大,字体越小:

<h1>h1</h1>
<h2>h2</h2>
<h3>h3</h3>
<h4>h4</h4>
<h5>h5</h5>
<h6>h6</h6>

在这里插入图片描述

段落标签

当我们给一段非常长的文字的时候,如果直接使用文本形式的话,那么这些文字可能就会称为一整段,这样看着就会不好看,在 HTML 中 <p> 标签可以将文本形成段落。

例如这下面这些文字:

在这里插入图片描述
如果不使用 <p> 标签分段的话,就会成为一段:

在这里插入图片描述
然后使用 <p> 标签就是下面的结果:

在这里插入图片描述

  • p 标签之间会存在一行空隙
  • p 标签的段落不会有缩进,但是后面结合css可以实现缩进
  • 自动根据浏览器宽度决定排版
  • html 内容首尾处的换行,空格均无效
  • 在 html 的文字之间输入多个空格只相当于一个空格
  • html 中直接输入换行不会真的换行,而是相当于一个空格

换行标签

换行表标签 br 是 break 的缩写,是换行的意思/

  • br 是一个单标签(不需要结束标签)
  • br 标签不像 p 标签那样带有一个很大的空隙
  • <br/> 是规范写法,不建议写成 <br>

在这里插入图片描述

格式化标签

  1. 加粗:strong 标签和 b 标签
  2. 倾斜:em 标签和 i 标签
  3. 删除线:del 标签和 s 标签
  4. 下划线:ins 标签和 u 标签
<strong>string 加粗<br/></strong>
<b>b 加粗<br/></b>
<em>em 倾斜<br/></em>
<i>i 倾斜<br/></i>
<del>del 删除线<br/></del>
<s>s 删除线<br/></s>
<ins>ins 下划线<br/></ins>
<u>u 下划线<br/></u>

在这里插入图片描述

图片标签

当我们想要在前端显示图片的时候,往往需要借助 img 标签来实现。img 标签必须带有 src 属性,来指定图片路径。

我将图片放在 html 文件的同一级目录下:

在这里插入图片描述

<img src="bear.jpg">

在这里插入图片描述
如果图片不在当前 html 文件的同一级目录下的话,可以使用 .. 表示当前 html 文件的上一级目录,.表示当前目录,也可以使用图片的绝对路径来表示,图片的网络地址也是可以的:

    <img src="https://ts1.cn.mm.bing.net/th/id/R-C.6a00de959b5801108793b344ef2988ad?rik=OlQAB0P4J80yTA&riu=http%3a%2f%2fimg95.699pic.com%2fphoto%2f50070%2f5999.jpg_wh860.jpg&ehk=nUrNDlAkDzUbcZyyRIpSCFDeeTPjyJnuR14jdQ%2fbE2w%3d&risl=&pid=ImgRaw&r=0">

在这里插入图片描述
img 标签的其他属性:

  • alt:替换文本。当文本不能正常显示的时候,会显示一个替换的文字
  • title:提示文本。鼠标放到图片上面的提示词
  • width/height:控制宽度和高度。高度和宽度一般改一个就行了,另外一个会等比例缩放,否则图片就会失衡
  • border:边框,参数是宽度的像素,但是一般用 CSS 来设定
<img src="bear666.jpg" alt="图片不存在,请检查后重试">

当前不存在 bear666.png,所以当我们访问这个 html 的时候就会显示后面的替换文字:

在这里插入图片描述

<img src="bear.jpg" title="这是一只北极熊哦">

在这里插入图片描述

<img src="bear.jpg" width="2000px">

在这里插入图片描述

<img src="bear.jpg" height="600px">

在这里插入图片描述

<img src="bear.jpg" border="5px">

在这里插入图片描述
如果一个标签中存在多个属性的话,这些属性没有先后顺序。

超链接标签

超链接标签 <a> 就是当我们点击的时候会跳转到指定的位置。

<a href="http://www.baidu.com">这是一个超链接</a>

在这里插入图片描述
在这里插入图片描述

  • href:必须具备,表示点击之后会跳转到哪个页面
  • target:打开方式,默认是 _self,如果是 _blank 则用新的标签打开

这里的 href 可以是其他网站的链接,也可以是我们项目内部页面的链接:

在这里插入图片描述

<a href="test.html">这是一个超链接</a>

点击链接之后跳转:

在这里插入图片描述

href 中的值还可以是 #,表示空链接,不进行跳转,用于在 href 中占位,也可以是一个下载链接。

这个超链接可以是文本格式,也可以是任何形式的元素:

<a href="http://www.baidu.com">
    <img src="bear.jpg">
</a>

在这里插入图片描述
点击图片之后跳转到指定页面:

在这里插入图片描述

a 标签也可以作为锚点链接,可以快速定位到页面中的某个位置:

<a href="#one">跳转到第一段<br/></a>
<a href="#two">跳转到第二段<br/></a>
<a href="#three">跳转到第三段<br/></a>
<a href="#three">跳转到第四段<br/></a>
<p id="one">
    这是第一段<br/>
    11<br/>
    12<br/>
    13<br/>
    14<br/>
    15<br/>
    16<br/>
    17<br/>
    18<br/>
    19<br/>
    20<br/>
</p>
<p id="two">
    这是第二段<br/>
    21<br/>
    22<br/>
    23<br/>
    24<br/>
    25<br/>
    26<br/>
    27<br/>
    28<br/>
    29<br/>
    30<br/>
</p>
<p id="three">
    这是第三段<br/>
    31<br/>
    32<br/>
    33<br/>
    34<br/>
    35<br/>
    36<br/>
    37<br/>
    38<br/>
    39<br/>
    40<br/>
</p>
<p id="four">
    这是第四段<br/>
    41<br/>
    42<br/>
    43<br/>
    44<br/>
    45<br/>
    46<br/>
    47<br/>
    48<br/>
    49<br/>
    50<br/>
</p>

在这里插入图片描述
点击跳转到第四段之后:

在这里插入图片描述
在 a 标签中也可以禁止跳转:<a href="javascript:void(0);"> 或者 <a href="javascript:;">

表格标签

  • table标签:表示整个表格
  • tr:表示表格的一行
  • td:表示一个单元格
  • th:表示表头单元格,会居中加粗
  • thead:表格的头部区域(和 th 相比,thead的范围比th要大)
  • tbody:表格的主体区域

table 包含 tr,tr 包含 td、th。

<table>
    <tr>
        <td>
            姓名1
        </td>
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
    <tr>
        <td>
            姓名2
        </td>
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
    <tr>
        <td>
            姓名3
        </td>
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
</table>

在这里插入图片描述
这样构造的 HTML 页面虽然可以大概看出来是一个表格,但是又是不那么像,这就需要我们添加一些表格的元素使之更像一个表格。

  • align:表格相对于周围元素的对齐方式,align=“center” 不是内部元素的对齐方式,通过这个属性只能达到水平居中的效果,要想达到水平方向和垂直方向都居中的话需要依赖于CSS属性
  • border:表示边框,1 表示有边框(数字越大边框线越粗),""表示无边框
  • cellpadding:内容距离边框的距离,默认1像素
  • cellspacing:单元格之间的距离,默认为2像素
  • width/height:设置表格的尺寸
<table align="center" border="1" cellpadding="50" cellspacing="3" width="500px" height="300px">
        <tr>
            <td>
                姓名1
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
        <tr>
            <td>
                姓名2
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
        <tr>
            <td>
                姓名3
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
    </table>

在这里插入图片描述
th 加粗单元格:

<tr>
    <th>
        姓名1
    </th>
    <th>
        性别
    </th>
    <th>
        年龄
    </th>
</tr>

在这里插入图片描述

合并单元格
  • 跨行合并:rowspan=“n”
  • 跨列合并:colspan=“n”

合并单元格的步骤一般分为下面几步:

  1. 先确定跨行还是跨列合并
  2. 找好目标单元格(跨列合并,左侧是单元格,也就是从左侧向右侧合并;跨列合并,上侧是目标单元格,也就是从上往下合并)
  3. 删除多余的单元格,虽然单元格进行了合并,但也只是相当于将多个单元格中的内容合并到一个单元格中了,这些被合并的单元格还会存在

这里我没有删除被合并的单元格:

<table align="center" border="1" cellpadding="50" cellspacing="0" width="500px" height="300px">
        <tr>
            <td colspan="2">
                姓名1
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
        <tr>
            <td>
                姓名2
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
        <tr>
            <td>
                姓名3
            </td>
            <td>
                性别
            </td>
            <td>
                年龄
            </td>
        </tr>
    </table>

在这里插入图片描述
删除多余的单元格之后:

在这里插入图片描述
合并行:

<table align="center" border="1" cellpadding="50" cellspacing="0" width="500px" height="300px">
    <tr>
        <td rowspan="2">
            姓名1
        </td>
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
    <tr>
        <!-- <td>
            姓名2
        </td> -->
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
    <tr>
        <td>
            姓名3
        </td>
        <td>
            性别
        </td>
        <td>
            年龄
        </td>
    </tr>
</table>

在这里插入图片描述

列表标签

  • 无序列表[重要] ul、li
  • 有序列表[用的不多] ol、li
  • 自定义列表[重要] dl(总标签)dt(小标签)dd(围绕标题来说明)上面有几个小标题,下面有几个围绕着标题来展开的

注意:

  • 列表元素之家需要是并列关系
  • ul/ol 中只能放 li 不能放其他标签,dl 中只能放 dt 和 dd
  • 列表带有自己的样式,可以使用 CSS 来修饰
<h3>有序列表</h3>
    <ol>
        <li>
            HTML
        </li>
        <li>
            CSS
        </li>
        <li>
            JavaScript
        </li>
    </ol>
    <h3>无序列表</h3>
    <ul>
        <li>
            HTML
        </li>
        <li>
            CSS
        </li>
        <li>
            JavaScript
        </li>
    </ul>
    <h3>自定义列表</h3>
    <dl>
        <dt>前端三剑客</dt>
        <dd>
            HTML
        </dd>
        <dd>
            CSS
        </dd>
        <dd>
            JavaScript
        </dd>
    </dl>

在这里插入图片描述
无序列表可以通过 style 属性来改变列表项标记的样式:

  • style="list-style-type: disc; 默认实心圆
  • style="list-style-type: square; 实心方块
  • style="list-style-type: square; 空心圆

在这里插入图片描述
在这里插入图片描述

有序列表中可以使用 type 属性来规定序号的形式:

  • a 表示小写英文字母编号
  • A 表示大写英文字母编号
  • i 表示小写罗马数字编号
  • I 表示大写罗马数字编号
  • 1 表示数字编号(默认)

在这里插入图片描述
也可以通过 start 属性来指定开始序号是多少:

<ol type="a" start="3">
        <li>
            HTML
        </li>
        <li>
            CSS
        </li>
        <li>
            JavaScript
        </li>
    </ol>

在这里插入图片描述

表单标签

表单标签分为两个部分:

  1. 表单域:包含表单元素的区域,重点是 form 标签
  2. 表单控件:输入框,提交按钮等,重点是 input 标签
form 标签

form 标签描述了要把数据按照什么方式,提交到哪个页面中:

<form action="test.html">
	form内容
</form>
input 标签

各种输入控件,单行文本框,按钮,单选框,复选框等。

  • type(必须有):取值种类很多,包括 button、checkbox、text、file、image、password、radio等
  • name:给 input 起了个名字,尤其是对于单选按钮,具有相同的name才能多选一
  • value:input 中的默认值
  • checkbox:默认被选中(用于单选按钮和多选按钮)
  • maxlength:设定最大长度
<form action="text.html">
        <h3>文本框</h3>
        <input type="text">
        <h3>密码框</h3>
        <input type="password">
        <h3>单选框</h3>
        <input type="radio"><input type="radio"><h3>复选框</h3>
        <input type="checkbox"> HTML <input type="checkbox"> CSS <input type="checkbox">JavaScript
    </form>

在这里插入图片描述
密码框会自动对输入的内容进行加密;这里的单选框其实是有问题的,因为既然是单选框,肯定只能选择一个的,但是这里其实可以选入多个:

在这里插入图片描述
要想真正达到单选框的效果,就需要加入前面说的 name 属性:

<h3>单选框</h3>
<input type="radio" name="sex"><input type="radio" name="sex">

在这里插入图片描述
在这里插入图片描述
在单选框中添加 checked 属性可以设置默认选中的元素:

<h3>单选框</h3>
<input type="radio" name="sex" checked><input type="radio" name="sex">

在这里插入图片描述

<h3>普通按钮</h3>
<input type="button" value="这是一个按钮">

在这里插入图片描述

当前按钮点击了之后没有反应,到了后面之后会为大家介绍如何具体的使用 button 按钮,这里我们可以先结合一下 JavaScript 来看看这个按钮点击了之后会干什么:

<h3>普通按钮</h3>
<input type="button" value="这是一个按钮" onclick="alert('你好')">

在这里插入图片描述

<form action="http://www.baidu.com">
    <h3>提交按钮</h3>
    <input type="text" name="username">
    <input type="submit" value="提交">
</form>

在这里插入图片描述
当我输入张三,点击提交之后,就会以 action 中的值,也就是 http://www.baidu.com + ?form表单中国input标签的name属性的值和输入框输入的值的结构访问指定位置:

在这里插入图片描述

<form action="http://www.baidu.com">
    <h3>清空按钮</h3>
    <input type="text" name="username">
    <input type="submit" value="提交">
    <input type="reset" value="清空">
</form>

在这里插入图片描述
点击清空按钮之后,input 标签中的内容就会被清除:

在这里插入图片描述

<form action="http://www.baidu.com">
    <h3>提交文件</h3>
    <input type="file">
</form>

在这里插入图片描述

label标签

label 标签搭配 input 标签使用,让我们点击对应的 label 标签也能选中对应的单选/复选框,提升用户体验:

<form action="http://www.baidu.com">
    <input type="radio" id="male" name="sex"><label for="male"></label>
    <input type="radio" id="female" name="sex"><label for="female"></label>
</form>

在这里插入图片描述
这样就算我点击字的话也是能够选中对应的单选框的。

select标签

下拉菜单:

<select>
    <option>北京</option>
    <option>上海</option>
    <option>广州</option>
    <option>深圳</option>
    <option selected="selected">武汉</option>
</select>

在这里插入图片描述
option 标签中的 selected=“selected” 表示默认选中。

<select>
    <option selected="selected">--请选择城市--</option>
    <option>北京</option>
    <option>上海</option>
    <option>广州</option>
    <option>深圳</option>
    <option>武汉</option> </select>

在这里插入图片描述

textarea标签

文本输入框:

<textarea rows="5" cols="50">
        
</textarea>

在这里插入图片描述
这个文本框的大小是可以拖动的:

在这里插入图片描述
要想文本框的大小不可以拖动,则需要添加 style=resize:none 属性:

<textarea rows="5" cols="50" style="resize: none;">

</textarea>

在这里插入图片描述

无语义标签

无语义标签有两种:div 和 span,div 标签是 division 的缩写,含义是分割,span 的含义则是跨度。

这两个标签可以看作是两个盒子,用于网络布局:

  • div 是独占一行的,是一个大盒子
  • span 不独占一行,是一个小盒子
<div>
        <span>HTML</span>
        <span>HTML</span>
        <span>HTML</span>
    </div>
    <div>
        <span>CSS</span>
        <span>CSS</span>
        <span>CSS</span>
    </div>
    <div>
        <span>JavaScript</span>
        <span>JavaScript</span>
        <span>JavaScript</span>
    </div>

在这里插入图片描述

HTML特殊字符

有些特殊字符在 html 文件中是不能直接表示的,例如:

  • 空格:&nbsp;
  • 小于号:&lt;
  • 大于号:&gt;
  • 按位与:&amp;

在 html 文件中如果不适用特殊符号的话,连续输入多个空格,最终显示在页面上的就是一个空格:

<p>HTML         CSS       JavaScript</p>

在这里插入图片描述
要想显示出多个连续的空格则需要依靠于特殊符号:

<p>HTML&nbsp;&nbsp;&nbsp;&nbsp;CSS&nbsp;&nbsp;&nbsp;JavaScript</p>

在这里插入图片描述

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不能再留遗憾了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值