当前位置: 首页 > news >正文

9.HTML

文章目录

  • 1.HTML 常见标签
    • 1.1注释标签
    • 1.2标题标签: h1-h6
    • 1.3段落标签: p
    • 1.4换行标签: br
    • 1.5综合案例: 展示博客
    • 1.6格式化标签
    • 1.7图片标签: img
    • 1.8超链接标签: a
    • 1.9综合案例: 展示博客2
    • 1.10表格标签
      • 1.10.1基本使用
      • 1.10.2合并单元格
    • 1.11列表标签
    • 1.12表单标签
    • 1.13无语义标签: div & span
  • 2.综合案例: 展示简历信息
  • 3.综合案例: 填写简历信息
  • 4.Emmet 快捷键
  • 5.HTML 特殊字符
  • 6.参考文档
  • 7.小结

大家好,我是晓星航。今天为大家带来的是 HTML 相关的讲解!😀

1.HTML 常见标签

1.1注释标签

注释不会显示在界面上. 目的是提高代码的可读性.

<!-- 我是注释 -->

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

注释的原则

  • 要和代码逻辑一致.
  • 尽量使用中文.
  • 不要传递负能量.

1.2标题标签: h1-h6

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

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

这里写 h1 然后按下 tab ,此时这里就会自动写下

ctrl + F2 可以一键修改一个相同的字符

1.3段落标签: p

把一段比较长的文本粘贴到 html 中, 会发现并没有分成段落.

例如以下文本:

css中的1px并不等于设备的1px在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像
素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css
中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同
的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的
移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确
实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,
苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着
同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是
这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五
花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中
1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于
这点,在文章后面的部分还会讲到。在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的
定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 /独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该
设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,
也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在
些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。

展示结果:

css中的1px并不等于设备的1px 在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像 素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css 中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同 的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的 移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确 实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始, 苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着 同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是 这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五 花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。 还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中 1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于 这点,在文章后面的部分还会讲到。 在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的 定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该 设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2, 也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在 些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。

  • 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>
在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 /独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。
</p>

展示结果:

注意:

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

在编译器中输入lorem会自动生成一段随机的文本,来帮我们调试显示效果。

上述代码中可以看到我们输入lorem,生成的随机文本奏效了!

1.4换行标签: br

br 是 break 的缩写. 表示换行.

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

展示结果:

img src="https://7078909xxh.oss-cn-shanghai.aliyuncs.com/202309181937757.png"/>

1.5综合案例: 展示博客

案例的文本内容出自https://www.cnblogs.com/yelongsan/p/7975580.html

预期效果:

提示:

  • 给标题, 作者, 小标题部分加上合适的标题.
  • 给每个段落加上合适的段落.
  • 给需要换行的地方加上 br 标签

1.6格式化标签

  • 加粗: 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>

注意此时,这些格式化的标签都是没有换行的,换行还是要用 <br>

使用 CSS 也可以完成类似的效果. 实际开发中以 CSS 方式为主.

1.7图片标签: img

img 标签必须带有 src 属性. 表示图片的路径.

<img src="rose.jpg">

此时要把 rose.jpg 这个图片文件放到和 html 中的同级目录中.

img 标签的其他属性

  • alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.
  • title: 提示文本. 鼠标放到图片上, 就会有提示.
  • width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片 失衡.
  • border: 边框, 参数是宽度的像素. 但是一般使用 CSS 来设定.
<img src="rose.jpg" alt="鲜花" title="这是一朵鲜花" width="500px" height="800px"
border="5px">

注意:

  1. 属性可以有多个, 不能写到标签之前
  2. 属性之间用空格分割, 可以是多个空格, 也可以是换行.
  3. 属性之间不分先后顺序
  4. 属性使用 “键值对” 的格式来表示.

img别的属性
alt属性:在图片挂了的时候,就会显示 alt 对应的文本。

title属性 鼠标悬停在图片上,会给出一个提示

width/height 描述图的尺寸 eg: <img width="1000px">

关于目录结构:

对于一个复杂的网站, 页面资源很多, 这种情况可以使用目录把这些文件整理好.

  1. 相对路径: 以 html 所在位置为基准, 找到图片的位置.
  • 同级路径: 直接写文件名即可 (或者 ./) ./1.jpg
  • 下一级路径: image/1.jpg
  • 上一级路径: …/image/1.jpg
  1. 绝对路径: 一个完整的磁盘路径, 或者网络路径. 例如
  • 磁盘路径 D:\rose.jpg
  • 网络路径 https://images0.cnblogs.com/blog/130623/201407/300958470402077.png

代码示例

  1. 使用相对路径: 创建一个 image 目录和 html 同级, 并放入一个 rose2.jpg

    <img src="image/rose2.jpg" alt="">
    
  1. 使用相对路径2: 在 image 目录中创建一个 html, 并访问上级目录的 rose.jpg

    <img src="../rose.jpg" alt="">
    
  2. 使用绝对路径1: 最好使用 / , 不要使用 \

    <img src="D:/rose.jpg" alt="">
    
  3. 使用绝对路径2: 使用网络路径

<img src="https://images0.cnblogs.com/blog/130623/201407/300958475557219.png"
alt="">

1.8超链接标签: a

  • href: 必须具备, 表示点击后会跳转到哪个页面.
  • target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开.
<a href="http://www.baidu.com">百度</a>

链接的几种形式:

  • 外部链接: href 引用其他网站的地址

    <a href="http://www.baidu.com">百度</a>
    

  • 内部链接: 网站内部页面之间的链接. 写相对路径即可.

在一个目录中, 先创建一个 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 中占位.

    <a href="#">空链接</a>
    
  • 下载链接: href 对应的路径是一个文件. (可以使用 zip 文件)

    <a href="test.zip">下载文件</a>
    
  • 网页元素链接: 可以给图片等任何元素添加链接(把元素放到 a 标签中)

    <a href="http://www.sogou.com"><img src="rose.jpg" alt="">
    </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>
    

    禁止 a 标签跳转: <a href="javascript:void(0);"> 或者 <a href="javascript:;">

1.9综合案例: 展示博客2

预期效果: 在上个博客页面的案例基础上, 加上图片和超链接

提示:

  • 可以从页面上右键图片, 下载图片到本地.
  • 可以从页面上右键链接, 复制链接, 粘贴到代码中.

参考代码:

<h1>meta name="viewport" content="width=device-width,initial-scale=1.0" 解释</h1>
<h3>蒂其之死</h3>
<p>简单来说 meta name="viewport" content="width=device-width,initial-scale=1.0" 
解释
</p>
<p>content属性值 : <br>width:可视区域的宽度,值可为数字或关键词device-width<br>height:同width<br>intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放
<br>maximum-scale=1.0, minimum-scale=1.0;可视区域的缩放级别,<br>maximum-scale用户可将页面放大的程序,1.0将禁止用户放大到实际尺寸之上。<br>user-scalable:是否可对页面进行缩放,no 禁止缩放<br>
</p>
<p>复杂的说:<br>移动前端开发之viewport的深入理解<br>在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了
viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各
种不同分辨率的移动设备。<br>
</p>
<h2>一、viewport的概念</h2>
<p>通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一
点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏
览器可视区域的大小,它可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。在默认情况下,一
般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌
面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站,移动设备上的
浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但
带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小
的。下图列出了一些设备上浏览器的默认viewport的宽度。
</p>
<img src="1.png" alt="">
<h2>二、css中的1px并不等于设备的1px
</h2>
<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在不同的浏览器中还存在
些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下<a
href="http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html">这篇
文章</a></p>
<img src="2.png" alt="">

1.10表格标签

1.10.1基本使用

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

table 包含 tr , tr 包含 td 或者 th.

表格标签有一些属性, 可以用于设置大小边框等. 但是一般使用 CSS 方式来设置.

这些属性都要放到 table 标签中.

  • align 是表格相对于周围元素的对齐方式. align=“center” (不是内部元素的对齐方式)
  • border 表示边框. 1 表示有边框(数字越大, 边框越粗), “” 表示没边框.
  • cellpadding: 内容距离边框的距离, 默认 1 像素
  • cellspacing: 单元格之间的距离. 默认为 2 像素
  • width / height: 设置尺寸.

注意, 这几个属性, vscode 都提示不出来.

<!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><table><tr><th>姓名</th><th>电话</th></tr><tr><td>军训</td><td>121</td></tr><tr><td>玩游戏</td><td>130</td></tr><tr><td>开车</td><td>140</td></tr></table>
</body>
</html>

最开始的页面展示:


当我们加入了width(宽度)和height(高度)后,并分别设置为500px和300ph的距离,这时我们表格信息变化如下:


<img src="https://7078909xxh.oss-cn-shanghai.aliyuncs.com/202309211835093.png"/

在加入了 border="1ph" 代码后,我们发现,我们的单元格开始出现边框了(数字越大,边框约粗)

但是此时我们发现虽然已经出现边框了,但是我们的边框并没有达到我们期待的那样。于是


可以看到,在我们加入了 cellspacing="0" 后,我们的边框都合并在一起了,这时候我们的表格就变得更加美观啦!

但是我们这里还是有不足,那就是我们的表头单元格里的字段虽然是居中对齐的,但是下面的字段却都是靠左对齐的,十分不美观。此时我们如果像改进的话就要用到css的代码了。(可以提前了解一下,我们下次的博客会讲解基础css的语法和用法案例)


    <style>td {text-align: center;}</style>

他的作用就是,让页面中所有td标签中的文字都水平居中。(css)

可以看到在我们加入了上述css代码后,我们下面单元格中的字段也居中了,此时表格就变得更加美观好看了!

<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>

1.10.2合并单元格

  • 跨行合并: rowspan="n"
  • 跨列合并: colspan="n"

步骤

  1. 先确定跨行还是跨列
  2. 找好目标单元格(跨列合并, 左侧是目标单元格; 跨行合并, 上方是目标单元格)
  3. 删除的多余的单元格
<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>

1.11列表标签

主要使用来布局的. 整齐好看.

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

自定义列表(参考小米官网下方)

注意

  • 元素之间是并列关系
  • ul/ol 中只能放 li 不能放其他标签, dl 中只能放 dt 和 dd
  • li 中可以放其他标签.
  • 列表带有自己的样式, 可以使用 CSS 来修改. (例如前面的小圆点都会去掉)
<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>

1.12表单标签

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

分成两个部分:

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

form 标签

<form action="test.html">... [form 的内容]
</form>

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

关于 form 需要结合 服务器 & 网络编程 来进一步理解. 后面再详细研究.

input 标签

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

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

  1. 密码框
<input type="password">

  1. 单选框
性别: 
<input type="radio" name="sex"><input type="radio" name="sex" checked="checked">

注意: 单选框之间必须具备相同的 name 属性, 才能实现 多选一 效果.

  1. 复选框
爱好:
<input type="checkbox"> 吃饭 <input type="checkbox"> 睡觉 <input type="checkbox">
打游戏

  1. 普通按钮
<input type="button" value="我是个按钮">

当前点击了没有反应. 需要搭配 JS 使用(后面会重点研究).

<input type="button" value="我是个按钮" onclick="alert('hello')">

  1. 提交按钮
<form action="test.html"><input type="text" name="username"><input type="submit" value="提交">
</form>

提交按钮必须放到 form 标签内. 点击后就会尝试给服务器发送

由于我们这里并没有连接服务器,所以并不会真的去寻找

  1. 清空按钮
<form action="test.html"><input type="text" name="username"><input type="submit" value="提交"><input type="reset" value="清空">
</form>

清空按钮必须放在 form 中. 点击后会将 form 内所有的用户输入内容重置.

按下清空后:

  1. 选择文件
<input type="file">

点击选择文件, 会弹出对话框, 选择文件.

例如我们这里选一个typora

label 标签

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

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

select 标签

下拉菜单

  • option 中定义 selected=“selected” 表示默认选中.
    <select><option>北京</option><option>广东</option><option>深圳</option><option>成都</option><option>重庆</option><option>孝感</option><option selected="selected">上海</option></select>

注意! 可以给的第一个选项, 作为默认选项

<select><option>--请选择年份--</option><option>1991</option><option>1992</option><option>1993</option><option>1994</option><option>1995</option>
</select>

textarea 标签

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

文本域中的内容, 就是默认内容, 注意, 空格也会有影响.

rows 和 cols 也都不会直接使用, 都是用 css 来改的.

1.13无语义标签: div & span

div 标签, division 的缩写, 含义是 分割 默认是独占一行的

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.综合案例: 展示简历信息

<h1>某某某</h1>
<!-- 基本信息 -->
<div><h2>基本信息</h2><img src="image/profile.jpg"><p><span>求职意向:</span>Java 开发工程师</p><p><span>联系电话:</span>XXX-XXX-XXXX</p><p><span>邮箱:</span>xxx@foxmail.com</p><p><a href="https://github.com">我的 github</a></p><p><a href="https://csdn.com">我的 博客</a></p>
</div>
<!-- 教育背景 -->
<div><h2>教育背景</h2><ol><li>1990 - 1996 小葵花幼儿园 幼儿园</li><li>1996 - 2002 小葵花小学 小学</li><li>2002 - 2005 小葵花中学 初中</li><li>2005 - 2008 小葵花中学 高中</li><li>2008 - 2012 小葵花大学 计算机专业 本科</li></ol>
</div>
<!-- 专业技能 -->
<div><h2>专业技能</h2><ul><li>Java 基础语法扎实,已经刷了 800 道 Leetcode 题;</li><li>常见数据结构都可以独立实现并熟练应用;</li><li>熟知计算机网络理论,并且可以独立排查常见问题;</li><li>掌握 Web 开发能力,并且独立开发了学校的留言墙功能。</li></ul>
</div>
<!-- 项目 -->
<div><h2>我的项目</h2><ol><li><h3>留言墙</h3><p>开发时间:2008年9月 到 2008年12月</p><p>功能介绍:<ul><li>支持留言发布</li><li>支持匿名留言</li></ul></p></li>
<li><h3>学习小助手</h3><p>开发时间:2008年9月 到 2008年12月</p><p>功能介绍:<ul><li>支持错题检索</li><li>支持同学探讨</li></ul>
</p>
</li>
</ol>
</div>
<!-- 其他信息 -->
<div><h2>个人评价</h2><p>在校期间,学习成绩优良,多次获得奖学金。</p>
</div>

在这里插入图片描述

3.综合案例: 填写简历信息

提示:

  • 使用表格进行整体布局
  • 使用各种 input 标签 + textarea 实现页面中的输入控件
  • input 标签搭配合适的 label 提升用户体验.
  • 针对下拉框这种选项较多的, 使用 Emmet 快捷键提高输入效率.
  • 图标图片可以去 https://www.iconfont.cn/ 找
<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"><!-- img 要放到 label 内部, 保证点击图标也能选中单选框 --><!-- 还需要把 width 加上, 否则图片太大了 --><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><li>能够尽早去公司实习</li><li>能接受公司的加班文化</li></ul></td></tr></tbody>
</table>

4.Emmet 快捷键

  • 快速输入标签

    input[tab]
    
  • 快速输入多个标签

    div*3[tab]
    
  • 标签带id

    div#sex[tab]
    
  • 标签带类名

    div.sex[tab]
    
  • 标签带子元素

    ul>li*3[tab]
    
  • 标签带兄弟元素

    span+span
    
  • 标签带内容

    div{hello}
    
  • 标签带内容(带编号)

    div{$.hello}
    

除此之外还有很多, 大家可以在使用中自己积累.

5.HTML 特殊字符

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

空格: &nbsp;

小于号: &lt;

大于号: &gt;

按位与: &amp;

html 标签就是用 < > 表示的. 因此内容里如果存在 < > , 就会发生混淆.

参考内容: https://www.jb51.net/onlineread/htmlchar.htm

6.参考文档

MDN HTML 介绍

MDN HTML 文档

7.小结

HTML 只是描述了页面的骨架结构.

使用 CSS 可以针对页面进行进一步美化.

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

相关文章:

9.HTML

文章目录 1.HTML 常见标签1.1注释标签1.2标题标签: h1-h61.3段落标签: p1.4换行标签: br1.5综合案例: 展示博客1.6格式化标签1.7图片标签: img1.8超链接标签: a1.9综合案例: 展示博客21.10表格标签1.10.1基本使用1.10.2合并单元格 1.11列表标签1.12表单标签1.13无语义标签: div…...

分层强化学习 综述论文阅读 Hierarchical Reinforcement Learning: A Comprehensive Survey

分层强化学习 综述论文阅读 Hierarchical Reinforcement Learning: A Comprehensive Survey 摘要一、介绍二、基础知识回顾2.1 强化学习2.2 分层强化学习2.2.1 子任务符号2.2.2 基于半马尔可夫决策过程的HRL符号 2.3 通用项定义 三、分层强化学习方法3.1 学习分层策略 (LHP)3.1…...

TensorFlow入门(十五、数据读取机制(2))

使用Dataset创建和读取数据集,作为TensorFlow模型创建输入管道的新方式,使用性能比使用feed_dict或队列式管道的性能高很多,使用也更加简洁容易。也是google强烈推荐的数据读取方式,对于TensorFlow而言,十分重要。 Dataset是什么? Dataset的定义 : 它是一个含有相同类型元素且…...

Linux系统中实现便捷运维管理和远程访问的1Panel部署方法

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…...

Rancher清理节点

本节介绍如何从一个 Rancher 创建的 Kubernetes 集群中断开一个节点&#xff0c;并从该节点中删除所有 Kubernetes 组件。此过程允许您将释放节点资源&#xff0c;将节点用于其他用途。 当您使用 Rancher 创建集群节点 时&#xff0c;将创建资源(容器/虚拟网络接口)和配置项(证…...

C++-Mongoose(1)-http-server

Mongoose is a network library for C/C. It implements event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT. mongoose很小巧&#xff0c;只有两个文件mongoose.h/cpp&#xff0c;拿来就可以用. 下载地址&#xff1a; https://github.com/cesanta/mongoo…...

Linux中openvswitch配置网桥详解

以下是对给出的命令进行逐行解释和注释&#xff1a; # 安装openvswitch软件包&#xff0c;并自动确认所有提示信息使用默认值&#xff08;-y参数&#xff09; dnf install openvswitch -y# 启动openvswitch服务 systemctl start openvswitch# 设置openvswitch服务开机启动 sys…...

Python自动化测试框架pytest的详解安装与运行

这篇文章主要为大家介绍了Python自动化测试框架pytest的简介以及安装与运行&#xff0c;有需要的朋友可以借鉴参考下希望能够有所帮助&#xff0c;祝大家多多进步 1. pytest的介绍 pytest是一个非常成熟的全功能的python测试工具&#xff0c;它主要有以下特征&#xff1a; 简…...

23种设计模式详解

设计模式的分类 总体来说设计模式分为三大类&#xff1a; 创建型模式&#xff0c;共五种&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式&#xff0c;共七种&#xff1a;适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模…...

微信小程序案例:2-2本地生活

文章目录 一、实现步骤&#xff08;一&#xff09;创建项目&#xff08;二&#xff09;创建页面&#xff08;三&#xff09;准备图片素材&#xff08;四&#xff09;编写页面结构1、编写轮播区域页面结构2、编写九宫格区域页面结构 &#xff08;五&#xff09;编写页面样式1、编…...

机器学习论文中常用的数学符号以及Latex

A数据集&#xff1a;通常用 D A \mathcal{D}_A DA​表示。 B数据集&#xff1a;通常用 D B \mathcal{D}_B DB​表示。 C数据集&#xff1a;通常用 D C \mathcal{D}_C DC​表示。 在机器学习中&#xff0c;损失函数通常用 L L L表示&#xff0c;即&#xff1a; L ( θ , D ) …...

【iOS】Fastlane一键打包上传到TestFlight、蒲公英

Fastlane一键打包上传到TestFlight、蒲公英 前言一、准备二、探索一、Fastlane配置1、Fastlane安装2、Fastlane更新3、Fastlane卸载4、查看Fastlane版本5、查看Fastlane位置6、Fastlane初始化 二、Fastlane安装蒲公英插件三、Fastlane文件编辑1、Gemfile文件2、Appfile文件3、F…...

绝地求生大吃鸡攻略,让你成为顶级战士!

近年来&#xff0c;绝地求生越来越受到玩家们的喜爱&#xff0c;吃鸡成为了很多人的娱乐方式。作为一个资深吃鸡玩家&#xff0c;今天我要和大家分享一些提高战斗力的干货&#xff0c;以及一些方便吃鸡作图与查询的实用工具。 首先&#xff0c;提高战斗力是吃鸡游戏中最重要的一…...

[架构之路-235]:目标系统 - 纵向分层 - 数据库 - 数据库系统基础与概述(快速入门、了解核心概念):概念模型、逻辑模型、物理模型

目录 一、核心概念 1.1 什么是数据与信息 1.2 数据与数据库的关系 1.3 什么是数据库 1.4 数据库中的数据的特点 1.5 数据库与数据结构的关系 1.6 什么是数据库管理系统 1.7 什么是数据库系统 1.8 数据库的主要功能 1.9 Excel表格是数据库吗&#xff1f; 1.10 Excel表…...

小程序, 多选项

小程序, 多选项 <view class"my-filter-btnwrap"><block wx:for"{{archiveList}}" wx:key"index"><view class"my-filter-btnitem text-ellipsis {{item.checked ? active : }}" data-index"{{index}}" wx…...

华为云云耀云服务器L实例评测|使用redis事务和lua脚本

文章目录 云服务器的类型云服务优点redis一&#xff0c;关系型数据库&#xff08;sqlserver&#xff0c;mysql&#xff0c;oracle&#xff09;的事务隔离机制说明&#xff1a;redis事务机制 lualua脚本好处&#xff1a;一&#xff0c;怎么在redis中使用lua脚本二&#xff0c;脚…...

vue2项目中使用element ui组件库的table,制作表格,改表格的背景颜色为透明的

el-table背景颜色变成透明_el-table背景透明_讲礼貌的博客-CSDN博客 之前是白色的&#xff0c;现在变透明了&#xff0c;背景颜色是蓝色...

C#报错 功能“结构字段初始化表达式“在C#7.3中不可用。请使用10.0或更高的语言版本。

解决方式&#xff1a; 打开以下文件 增加 <LangVersion>10.0</LangVersion>...

servlet基础知识

目录 什么是servlet概念/定义作用 servlet容器概念/是什么作用如何配置和管理 servlet生命周期有哪些生命周期每个周期中可以执行哪些操作 创建和编写servlet如何创建一个简单的servletservlet类的结构是什么样的如何处理HTTP请求和响应 servlet映射和URL模式什么是servlet映射…...

使用poi-tl循环导出word报表

先看模板和导出的效果 模板 效果 根据模板循环生成表格&#xff0c;每个表格再循环填充数据&#xff0c;也就是两层循环&#xff0c;第一层循环是学生学期信息&#xff0c;第二层循环是学生的成绩数据。 第一个循环 {{?listTable}} {{/}}第二个循环 {{reportList}} 表格…...

PyCharm搭建Scrapy环境

Scrapy入门 1、Scrapy概述2、PyCharm搭建Scrapy环境3、Scrapy使用四部曲4、Scrapy入门案例4.1、明确目标4.2、制作爬虫4.3、存储数据4.4、运行爬虫 1、Scrapy概述 Scrapy是一个由Python语言开发的适用爬取网站数据、提取结构性数据的Web应用程序框架。主要用于数据挖掘、信息处…...

TensorFlow的transformer类模型文件转换为pytorch

在进行transformer类模型的训练或开发时&#xff0c;我们会在GitHub、huggingface等平台上下载已有的模型文件。个人习惯用pytorch框架进行代码编写&#xff0c;然而很多时候在下载模型文件时&#xff0c;会遇到TensorFlow的模型&#xff0c;这是就涉及到转换的问题。 首先说一…...

C++学习之指针和数组

指针和一维数组 一个数组包含若干元素&#xff0c;每个数组元素都在内存中占用存储单元&#xff0c;它们都有相应的地址。指针变量既可以指向变量&#xff0c;当然也可以指向数组元素。所谓数组元素的指针就是数组元素的地址。 eg&#xff1a; int a[6]; //定义一个整数数组a…...

什么是站内搜索引擎?如何在网站中加入站内搜索功能?

在当今数字时代&#xff0c;用户体验对于网站的成功起着至关重要的作用。提升用户体验和改善整体网站性能的一种方法是引入站内搜索引擎。站内搜索引擎是一种强大的工具&#xff0c;它的功能类似于Google或Bing等流行搜索引擎&#xff0c;但它专注于实施自己网站上的内容。用户…...

【C++】面向对象编程(六)在派生类中定义一个虚函数、虚函数的静态解析

在派生类中定义一个虚函数 定义派生类时&#xff1a; 将基类中的虚函数覆盖掉&#xff1a;派生类提供新定义&#xff0c;所声明的函数原型必须完全符合基类所声明的函数原型&#xff08;包括&#xff1a;参数列表、返回类型、常量性&#xff09;&#xff1b;原封不动继承基类…...

uniapp vue3 静态图片引入

方法一 从新定义路径 一定看好你图片的路径 代码 <template><div class"main">Main<img :src"getImg()" alt""></div> </template><!-- 方式一 // <script setup> // let imgName logo.png // cons…...

仅用61行代码,你也能从零训练大模型

本文并非基于微调训练模型&#xff0c;而是从头开始训练出一个全新的大语言模型的硬核教程。看完本篇&#xff0c;你将了解训练出一个大模型的环境准备、数据准备&#xff0c;生成分词&#xff0c;模型训练、测试模型等环节分别需要做什么。AI 小白友好~文中代码可以直接实操运…...

Vue3目录结构与Yarn.lock 的版本锁定

Vue目录结构与Yarn.lock 的版本锁定 一、Vue3.0目录结构图总览 举个例子看vue的目录&#xff0c;一开始不知道该目录是什么意思目录里各个文件包里安放有什么&#xff0c;程序员在哪里操作该如何操作。 下图目录看Vue新项目 VS Code 打开文件包后出现一列目录 二、目录结构 1…...

内网渗透之哈希传递

文章目录 哈希传递&#xff08;NTLM哈希&#xff09;概念LMNTLM 原理利用hash传递获取域控RDP 总结 哈希传递&#xff08;NTLM哈希&#xff09; 内网渗透中找到域控IP后使用什么攻击手法拿下域控&#xff1a; 扫描域控开放端口。因为域控会开放远程连接&#xff1a;windows开…...

Haar cascade+opencv检测算法

Harr特征识别人脸 Haar cascade opencv步骤 读取包含人脸的图片使用haar模型识别人脸将识别的结果用矩形框画出来 构造haar检测器 &#xff1a;cv2.CascadeClassifier(具体检测模型文件) # 构造Haar检测器 # 级联分级机,cv2.CascadeClassifier():cv2的内置方法&#xff0…...