1.HTML程序
1.1 第一个HTML程序
新建一个文本文档,在其中随便输入一些内容,只要把文件名的后缀改为.html,这个文本文件就变成了一个HTML程序,双击该程序即可在浏览器中运行。
双击运行
1.2 HTML结构
像上边的在记事本中直接写一些东西,其实是不符合HTML的语法的,一般我们在写前端代码时,也需要在编译器中书写,博主常用的是VScode,一个基本的HTML文件的结构应该如下所示:
- html标签是整个html文件的根标签(最顶层标签)
- head标签中写页面的属性
- body标签中写的是页面上显示的内容
- title标签中写的是页面的标题
可以看出来一个完整的HTML文件需要的标签还是比较多的,我们可以通过更简单的快捷键【!+tab键】来完成上述的基本框架。
1.3 浏览器开发者模式
为了更好的认识前端代码,我们可以打开浏览器的开发者模式来看到当前页面的前端代码
可以通过按f12键或者右键->检查来打开开发者模式。
在浏览器的开发者模式中我们可以知道当前浏览器页面的任意一块是通过怎样的代码实现的。
开发者模式的左上角点击以后,可以再点击浏览器的任意区域,来看该区域的代码实现。
2.HTML常见标签
2.1 注释标签
注释不会显示在界面上,目的是提高代码的可读性
<!-- 我是注释 -->
ctrl+/快捷键可以快速进行注释/取消注释
2.2 标题标签:h1-h6
有六个,从h1-h6.数字越大,字体越小
<h1>这是一级标题</h1> <h2>这是二级标题</h2> <h3>这是三级标题</h3> <h4>这是四级标题</h4> <h5>这是五级标题</h5> <h6>这是六级标题</h6>
预览效果:
2.3 段落标签:p
p标签表示一个段落
<p>这是一个段落</p>
让每个段落都放到p标签中,实现分段的效果
<p>css中的1px并不等于设备的1px</p> <p> 在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像 素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css 中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同 的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的 移动设备中,屏幕像素密度都比较低,如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>
预览效果:
注意:
当前p标签描述的段落,前面还没有缩进(未来CSS会学)
html内容首尾处的换行、空格均无效
在html中,文字之间输入的多个空格只相当于一个空格
2.4 换行标签:br
br是break的缩写,表示换行。
br是一个单标签(不需要结束标签)
<p> 在css中我们一般使用px作为单位,<br/> 在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉, 那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不 同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在为桌面浏览器设计的网页中,我 们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低, 如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随 着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏, 分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍, 这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素 密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相 当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。 </p>
效果预览:
2.5 格式化标签
加粗:strong标签和b标签
倾斜:em标签和i标签
删除线:del标签和s标签
下划线:ins标签和u标签
<strong>strong 加粗</strong> <b>b 加粗</b> <em>倾斜</em> <i>倾斜</i> <del>删除线</del> <s>删除线</s> <ins>下划线</ins> <u>下划线</u>
效果预览:
2.6 图片标签:img
img标签需要带有src属性,表示图片的路径。
<img src="dd.jpg">
此时需要把dd.jpg这个图片文件放到和html中的同级目录中
img标签的其他属性:
alt:替换文本;当文本不能正确显示的时候,会显示一个替换的文字
title:提示文本;鼠标放到图片上,就会有提示
width/height:控制宽度高度;高度和宽度一般改一个就行,另外一个会等比例缩放。否则会比例失调。
border:边框,参数是宽度的像素,一般使用CSS来设定
<img src="dd.jpg" alt="窟窿" title="这是一个窟窿" width="500px" border="5px">
效果预览:
注意:
属性可以有多个,不分先后顺序,写到标签内
属性之间用空格分隔,可以是多个空格,也可以是换行
属性使用“键值对”的格式来表示
图片路径:
关于图片的路径,可以使用相对路径或者绝对路径,还可以是一个网络路径。
相对路径示例:(这种方法需要将图片文件放在与html文件同一级目录下)
<img src="./dd.jpg">
绝对路径示例:
<img src="C:\Users\14917\Pictures\Saved Pictures\dd.jpg">
网络路径示例:
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2Fb1%2Fb5%2F02%2Fb1b5022e532ce405eb0002400af7fd4b.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1667878039&t=b289c92e95aabbcc7bfd757624800c55">
2.7 超链接标签:a
href:必须具备,表示点击后会跳转到哪个页面
链接的几种形式:
外部链接:href引用其他网站的地址
<a href="http://www.baidu.com">百度</a>
内部链接:网站内部页面之间的链接,写相对路径即可。
在一个目录中,先创建一个1.html,再创建一个2.html
<!-- 1.html --> 我是 1.html <a href="2.html">点我跳转到 2.html</a> <br> <!-- 2.html --> 我是 2.html <a href="1.html">点我跳转到 1.html</a>
空链接:使用#在href中占位
<a href="#">空链接</a>
下载链接:href对应的路径是一个文件(可以使用zip文件)
<a href="test.zip">下载文件</a>
网页元素链接:可以把图片等任何元素添加到链接(把元素放到a标签中)
<a href="http:www.baidu.com"> <img src="dd.jpg"> </a>
锚点链接:可以快速定位到页面中的某个位置
<a href="#one">第一集</a> <a href="#two">第二集</a> <a href="#three">第三集</a> <p id="one"> 第一集剧情 <br> 第一集剧情 <br> ... </p> <p id="two"> 第二集剧情 <br> 第二集剧情 <br> ... </p> <p id="three"> 第三集剧情 <br> 第三集剧情 <br> ... </p>
效果预览:
2.8 表格标签
table标签:表示整个表格
tr:表示表格的一行
td:表示表格的一列
th:表示表头中的一列
表格标签有一些属性,可以用于设置大小边框等,但一般使用CSS方式来设置。
这些属性都要放到table标签中。
align 是表格相对于周围元素的对齐方式。align="center"
border 表示边框.1表示有边框(数字越大,边框越粗,""表示没边框。
cellpadding:内容距离边框的距离,默认1像素
cellspacing:单元格之间的距离,默认2像素
width/height:设置尺寸
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500" height="300"> <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>
预览效果:
2.9 列表标签
列表标签,主要用来罗列一组并列的数据
无序列表 ul=>unordered list li=>list item
有序列表 ol=>ordered list li=>list item
自定义列表 dl(总标签) dt(小标题)dd(围绕标题来说明)
<h3>无序列表</h3> <ul> <li>c</li> <li>c++</li> <li>Java</li> <li>Go</li> </ul> <h3>有序列表</h3> <ol> <li>c</li> <li>c++</li> <li>Java</li> <li>Go</li> </ol> <h3>自定义列表</h3> <dl> <dt>我的老婆们</dt> <dd>云韵</dd> <dd>美杜莎</dd> <dd>萧薰儿</dd> </dl>
效果预览:
2.10 表单标签
表单是用户与页面之间交互的重要手段,大部分的html标签都是给用户“展示”,表单标签,是让用户“输入”。
分成两个部分:
表单域:包含表单元素的区域。重点是form标签
表单控件:输入框,提交按钮等。重点是input标签。
form标签
<form action="test.html"> ...[form的内容] </form>
借助该组件可以允许用户输入一些信息,并且提交到服务器上。
input标签
各种输入控件,单行文本框、按钮、单选框、复选框。
type(必须有),取值类型很多,text、password、radio、checkbox、button、file等
name:给input起了个名字,尤其是对于单选按钮,具有相同的name才能多选一。
value:input中的默认值
checked:默认被选中(用于单选按钮和多选按钮)
maxlength:设定最大长度
1)文本框
<input type="text">
2)密码框
<input type="password">
3)单选框
性别: <input type="radio" name="sex">男 <input type="radio" name="sex" checked="checked">女
4)复选框
爱好: <input type="checkbox"> 吃饭 <input type="checkbox"> 睡觉 <input type="checkbox"> 打游戏
5)普通按钮
<input type="button" value="我是个按钮">
当点击了没有反应,需要搭配JS使用
<input type="button" value="我是个按钮">
6)提交按钮
<form action="test.html"> <input type="text" name="username"> <input type="submit" value="提交"> </form>
提交按钮必须放到form标签内,点击后会尝试给服务器发送
7)清空按钮
<form action="test.html"> <input type="text" name="username"> <input type="submit" value="提交"> <input type="reset" value="清空"> </form>
清空按钮必须放在form中。点击后会将form内所有的用户输入内容重置
8)选择文件
<input type="file">
点击选择文件,会弹出对话框,选择文件
lable标签
搭配input使用。点击lable也能选择对应的单选/复选框
for属性:指定当前lable和哪个相同id的input标签对应
<label for="male">男</label> <input id="male" type="radio" name="sex">
select标签
下拉菜单
option中定义selected="selected"表示默认选中
第一个选项为默认选项(如果没有selected)
<select> <option>A</option> <option>B</option> <option>C</option> <option>D</option> </select>
textarea标签
多行编辑
<textarea rows="3" cols="50"> </textarea>
2.11 无语义标签
div默认是一个块级元素(独占一行)
span默认是一个行内元素(不独占一行)
<div> <span>云韵</span> <span>云韵</span> <span>云韵</span> </div> <div> <span>美杜莎</span> <span>美杜莎</span> <span>美杜莎</span> </div> <div> <span>萧薰儿</span> <span>萧薰儿</span> <span>萧薰儿</span> </div>
预览效果:
2.12 特殊字符
有些特殊的字符在html文件中是不能直接显示的,例如:
空格: 
小于号:<
大于号:>
按位与:&
参考文档:
【MDN HTML文档】
3.综合案例
简历制作
预览画面:
代码实现:
<h1>我的简历</h1> <h2>基本信息</h2> <img src="https://profile.csdnimg.cn/9/6/C/1_qq_60856948" alt=""> <p>姓名:xxx</p> <p>性别:xxx</p> <p>学校:xxx大学</p> <p>求职意向:Java后端开发工程师、测试开发工程师、测试工程师</p> <p>联系电话:10010</p> <p>个人邮箱:1491788197@qq.com</p> <p> <a href="https://blog.csdn.net/qq_60856948?spm=1000.2115.3001.5343">我的博客</a> </p> <p> <a href="#">我的GitHub</a> </p> <h2>教育背景</h2> <ol> <li>xxxx-xx-xx 小学</li> <li>xxxx-xx-xx 中学</li> <li>xxxx-xx-xx 高中</li> <li>xxxx-xx-xx 大学</li> </ol> <h2>专业技能</h2> <ul> <li>熟悉c语言、JavaSE,能完成基本开发</li> <li>熟悉常见多线程案例及其优化,并对对应源码有一定了解,如阻塞队列、线程池、定时器、synchronized优化等</li> <li>熟悉网络原理及网络编程,如TCP/IP,UDP,HTTP等网络协议</li> <li>熟悉顺序表、链表、栈、队列、二叉树、哈希表等数据结构</li> <li>熟练使用SQL语句,了解数据库事务,JDBC编程</li> <li>...</li> </ul> <h2>我的项目</h2> <ol> <!-- 第一个项目 --> <li> <h3>留言墙</h3> <p>开发时间:xxxx-xx-xx</p> <p>功能介绍:</p> <ul> <li>支持留言发布</li> <li>支持匿名发布</li> </ul> </li> <!-- 第二个项目 --> <li> <h3>学习通打卡</h3> <p>开发时间:xxxx-xx-xx</p> <p>功能介绍</p> <ul> <li>支持位置签到、二维码签到</li> <li>绕过多种检测方式,完成签到打卡功能</li> </ul> </li> </ol> <h2>个人评价</h2> <p> 本人学习成绩优异,多次获得学校奖学金 </p>