HTML5——基础知识及使用

HTML 文件基本结构

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

HTML 标签

HTML 代码是由 "标签" 构成的.

例如:<body> hello </body>

  • 标签名 (body) 放到 < > 中.
  • 大部分标签成对出现. 为开始标签, 为结束标签.
  • 少数标签只有开始标签, 称为 "单标签".
  • 开始标签和结束标签之间, 写的是标签的内容,例如hello.
  • 开始标签中可能会带有 "属性". id 属性相当于给这个标签设置了一个唯一的标识符.例如:<body id="myId">hello</body>

标签的层次结构

html 复制代码
<html>
    <head>
    	<title>第一个页面</title>
    </head>
    <body>
    	hello world
    </body>
</html>
  • head 和 body 是 html 的子标签.
  • html 是 head 和 body 的父标签.
  • title 是 head 的子标签.
  • head 是 title 的父标签.
  • head 和 body 之间是兄弟关系.

标签之间的结构关系, 构成了一个 DOM 树,DOM 是 Document Object Mode (文档对象模型) 的缩写。


快速生成代码框架

在 IDEA 中创建文件 xxx.html , 直接输入 ! , 按 tab 键, 此时能自动生成代码的主体框架

html 复制代码
<!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>称为文档类型定义,描述当前的文件是一个 HTML5 的文件.
  • < html lang="en"> lang 属性表示当前页面是一个 "英语页面".
  • < meta charset="UTF-8" >描述页面的字符编码方式.
  • name="viewport" ,viewport 指设备的屏幕上用来显示我们的网页的那一块区域.
  • content="width=device-width, initial-scale=1.0" ,设置可视区和设备宽度等宽, 并设置初始缩放为不缩放

HTML 常见标签

注释标签

<!-- 我是注释 -->

  • ctrl + / 快捷键可以快速进行注释/取消注释

标题标签

标题标签有六个, 从 h1 - h6. 数字越大, 则字体越小

html 复制代码
<h1>hello</h1>
<h2>hello</h2>
<h3>hello</h3>
<h4>hello</h4>
<h5>hello</h5>
<h6>hello</h6>  

段落标签

p 标签表示一个段落

html 复制代码
<p>这是一个段落</p>
  • p 标签之间存在一个空隙.
  • 当前的 p 标签描述的段落, 前面还没有缩进.
  • 自动根据浏览器宽度来决定排版.
  • html 内容首尾处的换行, 空格均无效.
  • 在 html 中文字之间输入的多个空格只相当于一个空格.
  • html 中直接输入换行不会真的换行, 而是相当于一个空格.

换行标签

br 是 break 的缩写,表示换行

  • br 是一个单标签。
  • br 标签不像 p 标签那样带有一个很大的空隙.
  • < br/>是规范写法

格式化标签

  • 加粗: strong 标签 和 b 标签
  • 倾斜: em 标签 和 i 标签
  • 删除线: del 标签 和 s 标签
  • 下划线: ins 标签 和 u 标签
  • 使用 CSS 也可以完成类似的效果,实际开发中以 CSS 方式为主.
html 复制代码
<strong>strong 加粗</strong>
<b>b 加粗</b>

<em>倾斜</em>
<i>倾斜</i>

<del>删除线</del>
<s>删除线</s>

<ins>下划线</ins>
<u>下划线</u>

图片标签

img图片标签必须带有 src 属性. 表示图片的路径,路径分为绝对路径和相对路径。

HTML 复制代码
<img src="rose.jpg">

img 标签的其他属性

  • alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.
  • title: 提示文本. 鼠标放到图片上, 就会有提示.
  • width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片失衡.
  • border: 边框, 参数是宽度的像素. 但是一般使用 CSS 来设定.
  • 属性可以有多个, 不能写到标签之前; 属性之间用空格分割, 可以是多个空格, 也可以是换行;属性之间不分先后顺序;属性使用 "键值对" 的格式来表示.

例如:

html 复制代码
<img src="rose.jpg" alt="鲜花" title="这是一朵鲜花" width="500px" height="800px"border="5px">

超链接标签

a超链接标签

html 复制代码
<a>hello</a>

超链接标签属性:

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

例如:

html 复制代码
<a href="http://www.baidu.com">百度</a>

链接方式:

  • 外部链接: href 引用其他网站的地址
html 复制代码
<a href="http://www.baidu.com">百度</a>
  • 内部链接: 网站内部页面之间的链接
html 复制代码
<!-- 在一个目录中, 先创建一个 1.html, 再创建一个 2.html-->
<!-- 1.html -->
我是 1.html
<a href="2.html">点我跳转到 2.html</a>
<!-- 2.html -->
我是 2.html
<a href="1.html">点我跳转到 1.html</a>
  • 空链接: 使用 # 在 href 中占位
html 复制代码
<a href="#">空链接</a>
  • 下载链接: href 对应的路径是一个文件.
html 复制代码
<a href="test.zip">下载文件</a>
  • 网页元素链接: 把元素放到 a 标签中,可以给任何元素添加链接
html 复制代码
<a href="http://www.sogou.com">
	<img src="rose.jpg" alt="">
</a>
  • 锚点链接: 可以快速定位到页面中的某个位置
html 复制代码
<a href="#one">第一集</a>
<a href="#two">第二集</a>
<a href="#three">第三集</a>
<p id="one">...</p>
<p id="two">...</p>
<p id="three">...</p>

表格标签

  • table 标签: 表示整个表格.
  • tr: 表示表格的一行.
  • td: 表示一个单元格.
  • th: 表示表头单元格,会居中加粗.
  • thead: 表格的头部区域.
  • tbody: 表格得到主体区域.
  • table 包含 tr , tr 包含 td 或者 th.

表格标签有一些属性,可以用于设置大小边框等,但是一般使用 CSS 方式来设置,这些属性都要放到 table 标签中。

  • align 是表格相对于周围元素的对齐方式,align="center" (不是内部元素的对齐方式).
  • border 表示边框. 1 表示有边框(数字越大, 边框越粗), 表示没边框.
  • cellpadding: 内容距离边框的距离, 默认 1 像素.
  • cellspacing: 单元格之间的距离. 默认为 2 像素.
  • width / height: 设置尺寸.
html 复制代码
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500"
height="500">
    <tr>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
    </tr>
    <tr>
        <td>张三</td>
        <td>男</td>
        <td>10</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>女</td>
        <td>11</td>
    </tr>
</table>

合并单元格

  • 跨行合并: rowspan="n"
  • 跨列合并: colspan="n"
  • 先确定跨行还是跨列;跨列合并, 左侧是目标单元格; 跨行合并, 上方是目标单元格;删除的多余的单元格.
html 复制代码
<table align="center" border="10" cellpadding="20" cellspacing="0" width="500" height="500">
     <tr>
         <td>姓名</td>
         <td>性别</td>
         <td>年龄</td>
    </tr>
    <tr>
        <td>张三</td>
        <td colspan="2">男</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>女</td>
        <td>11</td>
    </tr>
</table>

列表标签

列表标签主要使用来布局的.

  • 无序列表重要 ul li
  • 有序列表用的不多 ol li
  • 自定义列表重要 dl (总标签) dt (小标题) dd (围绕标题来说明)
html 复制代码
<h3>无序列表</h3>
<ul>
    <li>刘备</li>
    <li>关羽</li>
    <li>张飞</li>
</ul>

<h3>有序列表</h3>
<ol>
    <li>刘备</li>
    <li>关羽</li>
    <li>张飞</li>
</ol>

<h3>自定义列表</h3>
<dl>
    <dt>桃园三结义</dt>
    <dd>刘备</dd>
    <dd>关羽</dd>
    <dd>张飞</dd>
</dl>

表单标签

表单是让用户输入信息的重要途径。

表单标签分为两个部分:

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

form 标签

html 复制代码
<form action="test.html">
  ... [form 的内容]
</form>

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

input 标签

input 标签包括各种输入控件, 单行文本框, 按钮, 单选框, 复选框

  • type(必须有), 取值种类很多多, button, checkbox, text, file, image, password, radio 等.
  • name: 给 input 起了个名字. 尤其是对于 单选按钮, 具有相同的 name 才能多选一.
  • value: input 中的默认值.
  • checked: 默认被选中. (用于单选按钮和多选按钮)
  • maxlength: 设定最大长度.

文本框

html 复制代码
<input type="text">

密码框

html 复制代码
<input type="password">

文本框

html 复制代码
<input type="text">

单选框

html 复制代码
性别:
<input type="radio" name="sex">男
<input type="radio" name="sex" checked="checked">女
  • 单选框之间必须具备相同的 name 属性, 才能实现 多选一 效果

复选框

html 复制代码
爱好:
<input type="checkbox"> 吃饭 
<input type="checkbox"> 睡觉 
<input type="checkbox">打游戏

普通按钮

html 复制代码
<input type="button" value="我是个按钮">
  • 点击了没有反应,需要搭配 JS 使用

普通按钮

html 复制代码
<input type="button" value="我是个按钮" onclick="alert('hello')">

提交按钮

html 复制代码
<form action="test.html">
    <input type="text" name="username">
    <input type="submit" value="提交">
</form>
  • 提交按钮必须放到 form 标签内. 点击后就会尝试给服务器发送

清空按钮

html 复制代码
<form action="test.html">
    <input type="text" name="username">
    <input type="submit" value="提交">
    <input type="reset" value="清空">
</form>	
  • 清空按钮必须放在 form 中,点击后会将 form 内所有的用户输入内容重置.

选择文件

html 复制代码
<input type="file">
  • 点击选择文件, 会弹出对话框, 选择文件

label 标签

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

  • for 属性: 指定当前 label 和哪个相同 id 的 input 标签对应. (此时点击才是有用的)
html 复制代码
<label for="male">男</label> <input id="male" type="radio" name="sex">

select 标签

select下拉菜单标签

html 复制代码
<select>
   <option>北京</option>
   <option selected="selected">上海</option>
</select>
  • option 中定义 selected="selected" 表示默认选中。
html 复制代码
<select>
    <option>--请选择年份--</option>
    <option>1991</option>
    <option>1992</option>
    <option>1993</option>
    <option>1994</option>
    <option>1995</option>
</select>

textarea 标签

textarea文本区元素标签

html 复制代码
<textarea rows="3" cols="50">
    
</textarea>
  • 文本域中的内容, 就是默认内容, 空格也会有影响.

div & span 标签

div & span 标签是无语义标签,就是两个盒子,用于网页布局.

  • div 标签, division 的缩写, 含义是分割;div 是独占一行的, 是一个大盒子.
  • span 标签, 含义是跨度;span 不独占一行, 是一个小盒子.
html 复制代码
<div>
    <span>11111</span>
    <span>11111</span>
    <span>11111</span>
</div>
<div>
    <span>22222</span>
    <span>22222</span>
    <span>22222</span>
</div>
<div>
    <span>33333</span>
    <span>33333</span>
    <span>33333</span>
</div>

HTML 特殊字符

有些特殊的字符在 html 文件中是不能直接表示的.

例如:

  • 空格: ;
  • 小于号: <;
  • 大于号: >;
  • 按位与: &;

HTML案例

html 复制代码
<body>
    <table width="500px" cellspacing="0">
        <thead>
            <h3>请填写简历信息</h3>
        </thead>
        <tbody>
            <tr>
                <td>
                    <label for="name">姓名</label>
                </td>
                <td>
                    <input type="text" id="name">
                </td>
            </tr>
            <tr>
                <td>
                    性别
                </td>
                <td>
                    <input type="radio" name="sex" id="male" checked="checked">
                    <label for="male"><img src="./image/男.png" alt="" width="20px">男</label>
                    <input type="radio" name="sex" id="female">
                    <label for="female"><img src="./image/女.png" alt="" width="20px">女</label>
                </td>
            </tr>
            <tr>
                <td>
                    出生日期
                </td>
                <td>
                    <select>
                        <option>--请选择年份--</option>
                        <option>1998</option>
                        <option>1999</option>
                        <option>2000</option>
                        <option>2001</option>
                    </select>
                    <select>
                        <option>--请选择月份--</option>
                        <option value="">1</option>
                        <option value="">2</option>
                        <option value="">3</option>
                        <option value="">4</option>
                        <option value="">5</option>
                        <option value="">6</option>
                        <option value="">7</option>
                        <option value="">8</option>
                        <option value="">9</option>
                        <option value="">10</option>
                        <option value="">11</option>
                        <option value="">12</option>
                    </select>
                    <select>
                        <option>--请选择日期--</option>
                        <option value="">1</option>
                        <option value="">2</option>
                        <option value="">3</option>
                        <option value="">4</option>
                        <option value="">5</option>
                        <option value="">6</option>
                        <option value="">7</option>
                        <option value="">8</option>
                        <option value="">9</option>
                        <option value="">10</option>
                        <option value="">11</option>
                        <option value="">12</option>
                        <option value="">13</option>
                        <option value="">14</option>
                        <option value="">15</option>
                        <option value="">16</option>
                        <option value="">17</option>
                        <option value="">18</option>
                        <option value="">19</option>
                        <option value="">20</option>
                        <option value="">21</option>
                        <option value="">22</option>
                        <option value="">23</option>
                        <option value="">24</option>
                        <option value="">25</option>
                        <option value="">26</option>
                        <option value="">27</option>
                        <option value="">28</option>
                        <option value="">29</option>
                        <option value="">30</option>
                        <option value="">31</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    就读学校
                </td>
                <td>
                    <input type="text">
                </td>
            </tr>
            <tr>
                <td>
                    应聘岗位
                </td>
                <td>
                    <input type="checkbox" id="frontend">
                    <label for="frontend">前端开发</label>
                    <input type="checkbox" id="backend">
                    <label for="backend">后端开发</label>
                    <input type="checkbox" id="qa">
                    <label for="qa">测试开发</label>
                    <input type="checkbox" id="op">
                    <label for="op">运维开发</label>
                </td>
            </tr>
            <tr>
                <td>
                    掌握的技能
                </td>
                <td>
                    <textarea name="" id="" cols="30" rows="10"></textarea>
                </td>
            </tr>
            <tr>
                <td>
                    项目经历
                </td>
                <td>
                    <textarea name="" id="" cols="30" rows="10"></textarea>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="checkbox" id="lisence">
                    <label for="lisence">我已仔细阅读过公司的招聘要求</label>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <a href="#">查看我的状态</a>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <h3>请应聘者确认: </h3>
                    <ul>
                        <li>以上信息真实有效</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>
</body>

小结

  • HTML 只是描述了页面的骨架结构.
  • 使用 CSS 可以针对页面进行进一步美化
相关推荐
卸任19 小时前
Vibe coding工具使用心得
前端·ai编程
brien919 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance20 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M20 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写20 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李20 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易20 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
风骏时光牛马20 小时前
前沿视界
前端
kyriewen20 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员
陈随易21 小时前
3000 万人在用的翻译插件,重写一遍就是一门生意
前端·后端·程序员