0%
。
在开始标签和结束标签之中的内容,就是这个标签需要具体展示的内容 hello world。
大多数标签都是上述这种双标签的结构,只有少数标签是单标签,单标签后面会介绍。
我们还可以给这个标签设置一个唯一的id,id相当于给这个标签设置一个唯一的身份标识。
1
| <body id = "my_id"> hello world </body>
|
注意:id是在开始标签中进行设置的。
HTML文件的基本结构
1 2 3 4 5 6
| <html > <head> <title>第一个页面</title> </head> <body>hello world</body> </html>
|
- html标签是整个html文档的最顶层标签/根标签
- head标签则是写这个html文档的属性的标签
- title标签则是显示这个文档的标题标签
- body标签中的内容则是需要显示在页面上的内容
标签的层次结构
父子关系
在上述代码中html标签就是所有标签的父标签,head标签是title标签的父标签
兄弟关系
head标签和body标签就是兄弟关系。
快速生成代码框架
在vscode中,新建一个html文件后,在文件顶部输入一个 !之后,按回车,就会生成html的代码框架。
或者新建文件之后,在文件顶部输入 html:5 之后,按回车,也能生成html代码框架。
细节解释:
- 称为 DTD (文档类型定义), 描述当前的文件是一个 HTML5 的文件。
- 其中 lang 属性表示当前页面是一个 “英语页面”. 这里暂时不用管. (有些浏览器会根据此处的声明提示是否进行自动翻译)。
- 描述页面的字符编码方式. 没有这一行可能会导致中文乱码。
- ****name=”viewport” 其中 viewport 指的是设备的屏幕上能用来显示我们的网页的那一块区域,content=”width=device-width, initial-scale=1.0” 在设置可视区和设备宽度等宽, 并设置初始缩放为不缩放. (这个属性对于移动端开发更重要一些)。
HTML常见标签
注释标签
注释是所有语言中一个必不可少的东西,在html中同样使用。
html的注释不会显示在页面上,目的就是为了提高代码的可读性。
1
| <body> hello world </body>
|
按照Ctrl+/可以快速生成注释和取消注释。
注释的原则:
标题标签 h1-h6
h1-h6
共有6个,数字越大,则字体越小。
1
| <!DOCTYPE html><html lang="en"><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> <h1>标题标签</h1> <h2>标题标签</h2> <h3>标题标签</h3> <h4>标题标签</h4> <h5>标题标签</h5> <h6>标题标签</h6></body></html>
|
段落标签
在html中输入换行之后不会真的换行,而是产生一个空格。
在html中输入多个空格之后,在网页上显示的时候不会有多个空格,而是只有一个空格。
在html中,如果需要有一段特别长的文字,但是这段文字在网页上显示的时候并没有产生段落,而是全在一起。这样可读性就会很差。
我们使用段落标签就会解决上述问题:
我们可以在需要产生段落的地方添加
是内容产生段落。
产生段落之后,上面的段落和下面的段落之后有很大的空隙。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Pixels and Device Pixels</title> </head> <body> css中的1px并不等于设备的1px <br> 在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像<br> 素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css<br> 中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同<br> 的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的<br> 移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确<br> 实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,<br> 苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着<br> 同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是<br> 这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五<br> 花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。<br> 还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中<br> 1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于<br> 这点,在文章后面的部分还会讲到。<br> 在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的<br> 定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。<br> </body> </html>
|
换行标签
br是break的缩写,表示换行。
是一个单标签。
使用
换行之后,不会想段落标签那样产生很大的空隙。
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Pixel Units in CSS</title> </head> <body> <p>CSS中的1px并不等于设备的1px。在CSS中我们一般使用px作为单位,在桌面浏览器中CSS的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。</p> <p>在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。</p> <p>还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于这点,在文章后面的部分还会讲到。</p> <p>在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义是:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。</p> </body> </html>
|
格式化标签
- 加粗 strong 标签 和 b 标签
- 倾斜 em 标签 和 i 标签
- 删除线 del 标签 和 s 标签
- 下划线 ins 标签 和 u 标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <html> <head> <title>示例页面</title> </head> <body> <strong>加粗</strong> <b>加粗</b> <em>倾斜</em> <i>倾斜</i> <del>删除线</del> <s>删除线</s> <ins>下划线</ins> <u>下划线</u> </body> </html>
|
图片标签 img
img标签必须带有sec的属性,表示这个图片的路径。
相对路径 绝对路径
1 2 3 4 5 6 7 8 9 10 11 12 13
| <html> <head> <title>Image Example</title> </head> <body> <img src="relative/path/to/image1.jpg" width="200px" height="200px"> <p>This is a paragraph with some text.</p> <img src="/absolute/path/to/image2.jpg" width="200px" height="200px"> </body> </html>
|
alt: 替换文本. 当图片不能正确显示的时候, 会显示一个替换的文字.
title: 提示文本. 鼠标放到图片上, 就会有提示.
width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片
失衡.
width=”200px” height=”200px” 设置图片的宽度和高度
除了使用绝对路径和相对路径这两种图片的方式之外,还可以使用网络上的图片,前提是网络通畅,还要有网络上这个图片的地址。
例如:我们打开百度的首页,在百度的logo上右击鼠标,我们选择复制图片地址。此时我们就拿到了网络上这个图片的地址。
1 2 3 4 5 6 7 8 9 10
| <body> <img src="relative/path/to/image.jpg" width="200px" height="200px"> <p></p> <img src="/absolute/path/to/image.jpg" width="200px" height="200px"> <p></p> <img src="https://www.example.com/path/to/image.jpg" alt="这是百度的图片" title="这是百度的图片"> </body>
|
超链接标签 a
1
| <a href="https://www.baidu.com">点击进入百度</a>
|
href是必须要有的,表示点击后跳转到那个页面。
1
| <a href="https://www.baidu.com" target="_blank">点击进入百度</a>
|
target表示用新的标签页打开。如果上述的默认,则是在当前标签页打开。
外部链接
外部链接表示此链接是引用外部网站的链接。
1
| <a href="https://www.baidu.com" target="_blank">点击进入百度</a>
|
这就是一个外部链接。
内部链接
网页内部页面之间的链接,可以直接写相对路径。
我们在当前html1文件的同一个目录下再创建一个html2文件,然后在html2文件里面就可以写其他的网页,当我们点击这个内部之间的链接时,就会跳转到html2.html这个网页上。
1
| <a href="html2.html">点我跳转到html2.html</a>
|
空链接
使用#在href中占位
下载链接
href中写的路径是一个文件,点击就可以进行下载这个文件,(文件可以是zip格式)。
当我们点击下载的时候,浏览器就会自动下载这个文件。
1
| <a href="OIP.zip">点击下载</a>
|
网页元素链接
可以给图片等任何元素添加链接,当我们点击这个图片时,就会跳转到我们href中所写的地址上去。
1 2 3
| <a href="https://www.baidu.com" target="_blank"> <img src="path/to/your/image.jpg" alt="Baidu Logo" title="点击跳转到百度"> </a>
|
描点链接
我们可以给标签给具体的id值,然后在href中填入对应的id的值,就可以进行描点链接跳转。
1 2 3 4 5 6 7 8 9 10 11
| <a href="#section1">跳转到1</a> <a href="#section2">跳转到2</a> <p id="section1"> abc <br> def <br> </p> <p id="section2"> hhh <br> mooo <br> </p>
|
表格标签
- table 标签: 表示整个表格
- tr: 表示表格的一行
- td: 表示一个单元格
- th: 表示表头单元格. 会居中加粗
- thead: 表格的头部区域(注意和 th 区分, 范围是比 th 要大的)
- tbody: 表格得到主体区域.
table 包含 tr , tr 包含 td。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <html> <head> <style> table { width: 400px; height: 200px; border-collapse: collapse; } th, td { border: 1px solid black; text-align: center; } th { font-weight: bold; } </style> </head> <body> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>18</td> <td>男</td> </tr> <tr> <td>李四</td> <td>19</td> <td>男</td> </tr> <tr> <td>王五</td> <td>20</td> <td>男</td> </tr> </tbody> </table> </body> </html>
|
合并单元格
跨行合并
先群定要合并的单元格,然后需要在合并之前删除多余的单元格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <table border="1" width="400px" height="200px"> <thead> <th>姓名</th> <th>年龄</th> <th>性别</th> </thead> <tbody> <tr> <td>张三</td> <td>18</td> <td>男</td> </tr> <tr> <td>李四</td> <td>19</td> <td>男</td> </tr> <tr> <td>王五</td> <td>19</td> <td>男</td> </tr> </tbody> </table>
|
跨列合并
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <table border="1" width="400px" height="200px"> <thead> <th>姓名</th> <th>年龄</th> <th>性别</th> </thead> <tbody> <tr> <td coldiv="2">张三</td> <td rowdiv="2">男</td> </tr> <tr> <td>李四</td> <td>19</td> </tr> <tr> <td>王五</td> <td>男</td> </tr> </tbody> </table>
|
列表标签
无序列表 ul li
有序列表 ol li
自定义列表 dl (总标签) dt (小标题) dd (围绕标题来说明) 上面有个小标题, 下面有几个围绕
着标题来展开的。
无序列表
1 2 3 4 5 6 7
| <h3>无序列表</h3> <ul> <li>天暗星</li> <li>天罡星</li> <li>天罪星</li> </ul>
|
有序列表
1 2 3 4 5 6 7
| <h3>有序列表</h3> <ol> <li>天暗星</li> <li>天罡星</li> <li>天罪星</li> </ol>
|
自定义列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>自定义列表</title> </head> <body> <h3>自定义列表</h3> <dl> <dt>不良人</dt> <dd>天暗星</dd> <dd>天罡星</dd> <dd>天罪星</dd> </dl> </body> </html>
|
表单标签
表单是让用户输入信息的重要途径.
分成两个部分:
表单域: 包含表单元素的区域. form 标签。
表单控件: 输入框, 提交按钮等. input 标签。
form标签
描述了把数据以怎样的方式提交到那个地方。
1 2
| <form action="https://www.baidu.com" method="get"> </form>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <form action="https://www.baidu.com" method="get"> <label>姓名:</label><input type="text"><br> <label>密码:</label><input type="password"><br> <label>性别:</label> <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女 <input type="radio" name="sex" value="第三性别">第三性别<br> <label>爱好:</label> <input type="checkbox">听音乐 <input type="checkbox">看电视 <input type="checkbox">打羽毛球 <br> <label>头像:</label><input type="file"> <br> <label>日期:</label><input type="date"> <label>颜色:</label><input type="color"><br> <input type="submit"> </form>
|
select标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <head> <meta charset="UTF-8"> <title>大学选择</title> </head> <body> <form> <label for="university">选择大学:</label> <select id="university"> <option selected>北京大学</option> <option>清华大学</option> <option>陇南大学</option> <option>兰州大学</option> </select> </form> </body> </html>
|
textarea 标签
1
| 备注:<textarea cols="50" rows="5"></textarea><br>
|
无语义标签 div span
就是两个盒子. 用于网页布局
div 是独占一行的, 是一个大盒子.
span 不独占一行, 是一个小盒子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <div> <div>天暗星</div> <div>天暗星</div> <div>天暗星</div> </div> <div> <div>天罡星</div> <div>天罡星</div> <div>天罡星</div> </div> <div> <div>天罪星</div> <div>天罪星</div> <div>天罪星</div> </div>
|
综合案例
填写个人简历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| <!DOCTYPE html> <html lang="en"> <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> <div> <h3>请填写简历信息</h3> <form action="https://www.baidu.com"> 姓名:<input type="text" name="姓名"> <br> 性别:<input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br> 出生日期:<select name="year"> <option>--请选择年份--</option> <option>1998</option> <option>1999</option> <option>2000</option> <option>2001</option> </select> <select name="month"> <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 name="day"> <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> <br> 就读学校:<select name="school"> <option >--请选择学校--</option> <option >--清华大学--</option> <option >--北京大学--</option> <option >--陇南大学--</option> </select><br> 应聘岗位:<input type="checkbox" name="job" value="后端开发"> 后端开发 <input type="checkbox" name="job" value="前端开发"> 前端开发 <input type="checkbox" name="job" value="测试开发"> 测试开发 <input type="checkbox" name="job" value="运维开发"> 运维开发 <br> 掌握的技能:<textarea cols="60" rows="10"></textarea><br> 项目经历:<textarea cols="60" rows="10"></textarea> <br> <input type="checkbox" name="lisence"> <label for="lisence">我已仔细阅读过公司的招聘要求</label> <br> <a href="#">查看我的状态</a> <br> </form> <h3>应聘者确认:</h3> <ul> <li>以上信息真实有效</li> <li>能够尽早去公司实习</li> <li>能接受公司的加班文化</li> </ul> </div> </body> </html>
|
展示个人信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| <!DOCTYPE html> <html lang="en"> <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>Myinfo</title> </head> <body> <div> <div> <h1>陌上烟雨</h1> </div> <div> <h2>基本信息</h2> <img src="your_image_url_here" alt="图片加载失败" width="100px" height="100px"> <p>求职意向:Java开发攻城狮</p> <p>联系电话:139-9393-1212</p> <p>邮箱:xxx@136.com</p> <a href="https://gitee.com/dong-guozhen" target="_blank">我的Gitee</a> <p></p> <a href="https://blog.csdn.net/qq_63525426?spm=1000.2115.3001.5343" target="_blank">我的博客</a> </div> <div> <h2>教育背景</h2> <ol> <li>xxxx-xxxx 山东蓝翔 幼儿园</li> <li>xxxx-xxxx 山东蓝翔 小学</li> <li>xxxx-xxxx 山东蓝翔 初中</li> <li>xxxx-xxxx 山东蓝翔 高中</li> <li>xxxx-xxxx 山东蓝翔 大学</li> </ol> </div> <h2>专业技能</h2> <ul> <li>Java语法基础知识扎实,已经刷了N到leetcode题</li> <li>常见的数据结构都能数量的应用</li> <li>熟练掌握计算机网络理论和实践,并且可以独立的排查网络故障</li> <li>掌握Web开发能力,并且可以独立开发了第一个大型看视频网站</li> </ul> <div> <h2>我的项目</h2> <ol> <li>留言墙</li> <p></p> 开发时间:xxxx-xx——xxxx-xx <br> 功能介绍: <ul> <li>支持留言发布</li> <li>支持匿名发布</li> </ul> <li>学习小助手</li> <p></p> 开发时间:xxxx-xx——xxxx-xx <br> 功能介绍: <ul> <li>支持错题检索</li> <li>支持同学探讨</li> </ul> </ol> </div> <div> <h2>个人评价</h2> 在校期间,学习成绩优良,多次获得奖学金 </div> </div> </body> </html>
|
总结
HTML 只是描述了页面的骨架结构.
更详细的内容请参考官方文档。
HTML(超文本标记语言) | MDN (mozilla.org)
Smith
人生太短,要干的事太多,我要争分夺秒
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Smith!