我只想卷死各位,或者被各位卷死,在此特别感谢黑马程序员的JavaWeb教程


HTML

介绍

HTML是一门语言,所有的网页都是用HTML这门语言编写出来的,也就是HTML是用来写网页的,像京东,12306等网站有很多网页。

HTML(HyperText Markup Language):超文本标记语言:

  • 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容

    如上图看到的页面,我们除了能看到一些文字,同时也有大量的图片展示;有些网页也有视频,音频等。这种展示效果超越了文本展示的限制。

  • 标记语言:由标签构成的语言

    之前学习的XML就是标记语言,由一个一个的标签组成,HTML 也是由标签组成 。我们在浏览器页面右键可以查看页面的源代码。

HTML标签不像XML那样可以自定义,HTML中的标签都是预定义好的,运行在浏览器上并由浏览器解析,然后展示出对应的效果。例如我们想在浏览器上展示出图片就需要使用预定义的 img 标签;想展示可以点击的链接的效果就可以使用预定义的 a 标签等。

W3C标准:

  • W3C是万维网联盟,这个组成是用来定义标准的。他们规定了一个网页是由三部分组成,分别是:
    • 结构:对应的是 HTML 语言
    • 表现:对应的是 CSS 语言
    • 行为:对应的是 JavaScript 语言

HTML定义页面的整体结构;CSS是用来美化页面,让页面看起来更加美观;JavaScript可以使网页动起来,比如轮播图也就是多张图片自动的进行切换等效果。

快速入门

在IDEA中新建一个HTML文件,会默认为我们生成几个标签

1
2
3
4
5
6
7
8
9
10
11
12
<!--HTML5的标识-->
<!DOCTYPE html>
<html lang="en">
<head>
<!--设定字符集-->
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

</body>
</html>

html标签是根标签,下面有 head 标签和 body 标签这两个子标签。而 head 标签的 title 子标签是用来定义页面标题名称的,它定义的内容会展示在浏览器的标题位置

body 标签的内容会被展示在内容区中

使用font标签可以改变文字颜色、大小、字体

1
2
3
4
5
6
7
8
9
10
11
12
<!--HTML5的标识-->
<!DOCTYPE html>
<html lang="en">
<head>
<!--设定字符集-->
<meta charset="UTF-8">
<title>我的第一个网页</title>
</head>
<body>
<font color="red" size="5" face="楷体">HELLO WORLD!!</font>
</body>
</html>
  • HTML 结构标签

  • HTML 标签不区分大小写

    如上案例中的 font 写成 Font 也是一样可以展示出对应的效果的。

  • HTML 标签属性值 单双引皆可

    如上案例中的color属性值使用双引号也是可以的。<font color=“red”></font>

  • HTML 语法松散

    比如 font 标签不加结束标签也是可以展示出效果的。但不建议,最好严格按照要求去写。

标签 描述
<HTML> 定义HTML文档
<head> 定义关于文档的信息
<title> 定义文档的标题
<body> 定义文档的主体

基础标签

基础标签就是一些和文字相关的标签,如下:

标签 描述
<h1> ~ <h6> 定义标题,h1最大,h6最小
<font> 定义文本的字体、字体尺寸、字体颜色
<b> 定义粗体文本
<i> 定义斜体文本
<u> 定义文本下划线
<center> 定义文本居中
<p> 定义段落
<br> 定义折行
<hr> 定义水平线

标题标签

书写标题标签

标题标签中 h1最大,h6最小。

1
2
3
4
5
6
<h1>我是标题 h1</h1>
<h2>我是标题 h2</h2>
<h3>我是标题 h3</h3>
<h4>我是标题 h4</h4>
<h5>我是标题 h5</h5>
<h6>我是标题 h6</h6>

hr标签

hr 标签在浏览器中呈现出 横线 的效果。

在页面文件中书写 hr 标签

1
<hr>

字体标签

font:字体标签

  • face 属性:用来设置字体。如 “楷体”、"宋体"等

  • color 属性:设置文字颜色。颜色有三种表示方式

    • 英文单词:red,pink,blue…

      这种方式表示的颜色特别有限,所以一般不用。

    • rgb(值1,值2,值3):值的取值范围:0~255

      此种方式也就是三原色(红绿蓝)设置方式。 例如: rgb(255,0,0)。

      这种书写起来比较麻烦,一般不用。

    • #值1值2值3:值的范围:00~FF

      这种方式是rgb方式的简化写法,以后基本都用此方式。

      值1表示红色的范围,值2表示绿色的范围,值3表示蓝色范围。例如: #ff0000

  • size 属性:设置文字大小

1
<font color="red" size="5" face="楷体">测试文本</font>  

注意:font 标签已经不建议使用了,以后如果要改变文字字体,大小,颜色可以使用 CSS 进行设置。

换行标签

如果直接在body标签中插入下段文字,是不会自动换行的,如果要实现换行效果,需要使用 换行标签(br标签)。

1
2
3
4
5
<body>
刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……<br>

6月8日下午,习近平总书记来到青海省海北藏族自治州刚察县沙柳河镇果洛藏贡麻村,走进牧民索南才让家中,看望慰问藏族群众。
</body>

段落标签

上面文字展示的效果还是不太好,我们想让每一段上下都加空行。此时就需要使用段落标签(p标签)

在页面文件中书写如下内容:

1
2
3
<p>刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……</p>

<p>6月8日下午,习近平总书记来到青海省海北藏族自治州刚察县沙柳河镇果洛藏贡麻村,走进牧民索南才让家中,看望慰问藏族群众。</p>

这种效果就会比之前的效果好一些,呈现出段落的效果。

加粗、斜体、下划线标签

  • b:加粗标签
  • i:斜体标签
  • u:下划线标签,在文字的下方有一条横线
1
2
3
<b>沙柳河水流淌</b><br>
<i>沙柳河水流淌</i><br>
<u>沙柳河水流淌</u><br>

展示的效果如下:
沙柳河水流淌

沙柳河水流淌

沙柳河水流淌

居中标签

center :文本居中

代码如下:

1
2
3
4
<hr>
<center>
我是文章标题
</center>

效果如下


我是文章标题

案例

实现如下图所示页面效果(不要在意这个横线效果):

公司简介


传智教育(股票代码003032)隶属江苏传智播客教育科技股份有限公司,注册资本4亿元,是第一个实现A股IPO的教育企业,公司致力于培养高精尖数字化人才,主要培养人工智能、python+大数据开发.智能制造、软件、互联网、区块链等数字化专业人才及数据分析、网络营销、新媒体等数字化应用人才。公司由一批拥有10年以上开发管理经验,且来自互联网或研究机构的T精英组城成,负责研究开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。

民族振兴靠人才,中华民族正处于伟大复兴之路上,要赢得国际竞争,需要拥有大量的科技人才,我们将肩负起民族使命,在三尺讲台诲人不倦著书立说,为科技行业培养出大量的优秀人才促进民族伟大复兴!我们的使命是:为中华民族伟大复兴而讲课,为千万学生少走弯路而著书。

探素教育之路,长途漫漫。传智教育希望可以通过自己的努力,寻找出一条更符合人类自然或长规律的教育之路,建立起一个新的教育生态环境,让中国的嫁长和胺孑们在现有的教育体系之外,再多一些选挥的机会.因此比“探索教育本源,开辟教育新生态”便成为了所有传智人为之奋斗的终极愿数,也是所有传智人共同努力的目标。为此,15年来,传智人不曾有一丝候怠,相信在传智人的不懈努力下,大道不远,终在部下。


江苏传智摇客教育科技股份有限公司
版权所有Copyright 2006-2018©,All Rights Reserved苏ICP备16007882

注意,HTML 中的预留字符必须被替换为字符实体。 HTML 实体 在HTML 中,某些字符是预留的。 在HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果需要一些特殊字符,需要借助HTML实体来实现。
链接:https://www.w3school.com.cn/charsets/ref_html_8859.asp

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
<body>
<font color="red" size="5">公司简介</font>
<hr color="yellow">

<p>
<font color="red">传智教育</font>(股票代码003032)隶属江苏传智播客教育科技股份有限公司,注册资本4亿元,是第一个实现A股IPO的教育企业,
公司致力于培养高精尖数字化人才,主要培养人工智能、python+大数据开发.智能制造、软件、互联网、区块链等数字化专业人才及数据分析、
网络营销、新媒体等数字化应用人才。公司由一批拥有10年以上开发管理经验,且来自互联网或研究机构的T精英组城成,负责研究开发教学模式和课程内容。
公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。
</p>

<p>
民族振兴靠人才,中华民族正处于伟大复兴之路上,要赢得国际竞争,需要拥有大量的科技人才,我们将肩负起民族使命,
在三尺讲台诲人不倦著书立说,为科技行业培养出大量的优秀人才促进民族伟大复兴!
我们的使命是:<b>为中华民族伟大复兴而讲课,为千万学生少走弯路而著书。</b>
</p>
<p>探素教育之路,长途漫漫。传智教育希望可以通过自己的努力,寻找出一条更符合人类自然或长规律的教育之路,
建立起一个新的教育生态环境,让中国的嫁长和胺孑们在现有的教育体系之外,再多一些选挥的机会.
因此比<b>“探索教育本源,开辟教育新生态”</b>便成为了所有传智人为之奋斗的终极愿数,也是所有传智人共同努力的目标。
为此,15年来,传智人不曾有一丝候怠,相信在传智人的不懈努力下,大道不远,终在部下.
</p>

<hr color="yellow">
<center>
江苏传智摇客教育科技股份有限公司
</center>
<center>
版权所有Copyright 2006-2018&#169;,All Rights Reserved苏ICP备16007882
</center>
</body>

图片、音频、视频标签

标签 描述
<img> 定义图片
<audio> 定义音频
<video> 定义视频
  • img:定义图片

    • src:规定显示图像的 URL(统一资源定位符)

    • height:定义图像的高度

    • width:定义图像的宽度

  • audio:定义音频。支持的音频格式:MP3、WAV、OGG

    • src:规定音频的 URL

    • controls:显示播放控件

  • video:定义视频。支持的音频格式:MP4, WebM、OGG

    • src:规定视频的 URL
    • controls:显示播放控件

尺寸单位:

height属性和width属性有两种设置方式:

  • 像素:单位是px
  • 百分比。占父标签的百分比。例如宽度设置为 50%,意思就是占它的父标签宽度的一般(50%)

资源路径:

图片,音频,视频标签都有src属性,而src是用来指定对应的图片,音频,视频文件的路径。此处的图片,音频,视频就称为资源。资源路径有绝对路径和相对路径两种方式

超链接标签

在网页中可以看到很多超链接标签,当我们点击这些超链接时会跳转到其他的页面或者资源。

a 标签属性:

  • href:指定访问资源的URL

  • target:指定打开资源的方式

    • _self:默认值,在当前页面打开
    • _blank:在空白页面打开
1
2
3
4
5
6
7
8
9
10
11
12
<!--HTML5的标识-->
<!DOCTYPE html>
<html lang="en">
<head>
<!--设定字符集-->
<meta charset="UTF-8">
<title>我的第一个网页</title>
</head>
<body>
<a href="https://cyborg2077.github.io/" target="_self">点我跳转至博客主页</a>
</body>
</html>

当我们将 target 属性值设置为 _blank时,会在新标签页打开

列表标签

HTML 中列表分为

有序列表

  1. 咖啡
  2. 牛奶
  3. 可乐

无序列表

  • Apex
  • Deadcells
  • Terraria

标签说明:

标签 描述
<ol> 定义有序列表
<ul> 定义无序列表
<li> 定义列表项

有序列表中的 type 属性用来指定标记的标号的类型(数字、字母、罗马数字等)

无序列表中的 type 属性用来指定标记的形状

代码演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!--HTML5的标识-->
<!DOCTYPE html>
<html lang="en">
<head>
<!--设定字符集-->
<meta charset="UTF-8">
<title>我的第一个网页</title>
</head>
<body>
<ul>
<li>咖啡</li>
<li>牛奶</li>
<li>可乐</li>
</ul>

<ol type="A">
<li>Apex</li>
<li>Deadcells</li>
<li>Terraria</li>
</ol>
</body>
</html>

表格标签

  • table :定义表格

    • border:规定表格边框的宽度

    • width :规定表格的宽度

    • cellspacing:规定单元格之间的空白

  • tr :定义行

    • align:定义表格行的内容对齐方式
  • td :定义单元格

    • rowspan:规定单元格可横跨的行数(横向合并单元格)

    • colspan:规定单元格可横跨的列数(纵向合并单元格)

  • th:定义表头单元格

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
<table border="1" cellspacing="0" width="500" >
<tr align="center">
<th>序号</th>
<th>品牌logo</th>
<th>品牌名称</th>
<th>企业名称</th>
</tr>
<tr align="center">
<td>010</td>
<td><img src="https://t8.baidu.com/it/u=3082494854,3782081507&fm=85&app=131&size=f242,150&n=0&f=JPEG&fmt=auto?s=84165C97CFA40C8000A1E5EB0300E063&sec=1660496400&t=c8906529b7d9dfc5354b293d180b2ce1" height="20" width="30" ></td>
<td>三只松鼠</td>
<td>三只松鼠</td>
</tr>
<tr align="center">
<td>009</td>
<td><img src="https://files.codelife.cc/website/5f2a578265bf280ee60a165a.png?x-oss-process=image/resize,limit_0,m_fill,w_100,h_100/quality,q_100" height="20" width="30"></td>
<td>优衣库</td>
<td>优衣库</td>
</tr>
<tr align="center">
<td>008</td>
<td><img src="https://files.codelife.cc/website/mi.svg" height="20" width="30"></td>
<td>小米</td>
<td>小米科技有限公司</td>
</tr>
</table>

布局标签

标签 描述
<div> 定义HTML文档中的一个区域部分,经常与CSS一起使用,用来布局网页
<span> 用于组合行内元素。

这两个标签,一般都是和css结合到一块使用来实现页面的布局。

div标签 在浏览器上会有换行的效果,而 span 标签在浏览器上没有换行效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>我是div</div>
<div>我是div</div>
<span>我是span</span>
<span>我是span</span>
</body>
</html>

表单标签

表单标签效果大家其实都不陌生,像登陆页面、注册页面等都是表单。

表单就是用来采集用户输入的数据,然后将数据发送到服务端,服务端会对数据库进行操作,比如注册就是将数据保存到数据库中,而登陆就是根据用户名和密码进行数据库的查询操作。

表单标签概述

表单:在网页中主要负责数据采集功能,使用<form>标签定义表单

表单项(元素):不同类型的 input 元素、下拉列表、文本域等

标签 描述
<form> 定义表单
<input> 定义表单项,通过type属性控制输入形式
<label> 为表单项定义标注
<select> 定义下拉列表
<option> 定义下拉列表的列表项
<textarea> 定义文本域

form 是表单标签,它在页面上没有任何展示的效果。需要借助于表单项标签来展示不同的效果。

form标签属性

  • action:规定当提交表单时向何处发送表单数据,该属性值就是URL

    以后会将数据提交到服务端,该属性需要书写服务端的URL。而今天我们可以书写 # ,表示提交到当前页面来看效果。

  • method :规定用于发送表单数据的方式

    method取值有如下两种:

    • get:默认值。如果不设置method属性则默认就是该值
      • 请求参数会拼接在URL后边
      • url的长度有限制 4KB
    • post:
      • 浏览器会将数据放到http请求消息体中
      • 请求参数无限制的

代码演示

由于表单标签在页面上没有任何展示的效果,所以在演示的过程是会先使用 input 这个表单项标签展示输入框效果。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form>
<input type="text">
<input type="submit">
</form>
</body>
</html>

效果展示如下

从效果可以看到页面有一个输入框,用户可以在数据框中输入自己想输入的内容,点击提交按钮以后会将数据发送到服务端,当然现在肯定不能实现。现在我们可以将 form 标签的 action 属性值设置为 # ,将其将数据提交到当前页面。还需要注意一点,要想提交数据,input 输入框必须设置 name 属性。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="#">
用户名<input type="text" name="username"><br>
密码<input type="password" name="password"><br>
<input type="submit">
</form>
</body>
</html>

接下来我们来聊 method 属性,默认是 method = 'get',所以该取值就会将数据拼接到URL的后面。输入用户名为ASD,密码为ASDEQW,点击提交,浏览器的效果如下:http://localhost:63342/JavaWeb/html-demo/html/01-%E5%9F%BA%E7%A1%80%E6%A0%87%E7%AD%BE.html?username=ASD&password=ASDEQW#

表单项标签

表单项标签有很多,不同的表单项标签有不同的展示效果。表单项标签可以分为以下三个:

  • <input>:表单项,通过type属性控制输入形式
    input 标签有个 type 属性。 type 属性的取值不同,展示的效果也不一样
type取值 描述
text 默认值。定义单行的输入字段
password 定义密码字段
radio 定义单选按钮
checkbox 定义复选框 Apex Deadcells Terraria
file 定义文件上传按钮
hidden 定义隐藏的输入字段
submit 定义提交按钮,提交按钮会把表单数据发送到服务器
reset 定义重置按钮,重置按钮会清除表单中的所有数据
button 定义可点击按钮
  • <select>:定义下拉列表,<option> 定义列表项
    城市:
  • <textarea>:文本域,它可以输入多行文本,而 input 数据框只能输入一行文本。
  • 以上标签项的内容要想提交,必须得定义 name 属性。
  • 每一个标签都有id属性,id属性值是唯一的标识。
  • 单选框、复选框、下拉列表需要使用 value 属性指定提交的值。
  • 练习:实现以下表单样式
用户名:
密码:
性别:
爱好: Apex Deadcells Terraria
头像:
城市:
个人描述:
  • 代码
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="#">
用户名:
<input type="text" name="username"><br>
密码:
<input type="password" name="password"><br>
性别:
<input type="radio" name="gender" value="1">
<input type="radio" name="gender" value="2"><br>
爱好:
<input type="checkbox" name="hobbby" value="1">Apex
<input type="checkbox" name="hobbby" value="2">Deadcells
<input type="checkbox" name="hobbby" value="3">Terraria<br>
头像:
<input type="file"><br>
城市:
<select>
<option>北京</option>
<option>上海</option>
<option>广州</option>
<option>深圳</option>
</select><br>
个人描述:
<textarea cols="20" rows="5" name="desc"></textarea><br>
<input type="submit" value="免费注册">
<input type="reset" value="重置">
<input type="button" value="一个按钮">
</form>
</body>
</html>

CSS

概述

CSS 是一门语言,用于控制网页表现。我们之前介绍过W3C标准。W3C标准规定了网页是由以下组成:

  • 结构:HTML
  • 表现:CSS
  • 行为:JavaScript

CSS也有一个专业的名字:Cascading Style Sheet(层叠样式表)。

如下面的代码, style 标签中定义的就是css代码。该代码描述了将 div 标签的内容的字体颜色设置为 红色。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
color: red;
}
</style>
</head>
<body>
<div>Hello CSS~</div>
</body>
</html>

CSS导入方式

CSS 导入方式其实就是 CSS 代码和 html 代码的结合方式。CSS 导入 HTML有三种方式:

  1. 内联样式:在标签内部使用style属性,属性值是CSS属性键值对
1
<div style="color: red">Hello CSS~</div>

给方式只能作用在这一个标签上,如果其他的标签也想使用同样的样式,那就需要在其他标签上写上相同的样式。复用性太差。

  1. 内部样式:定义<style>标签,在标签内部定义CSS样式
1
2
3
4
5
<style type="text/css">
span{
color: red;
}
</style>

这种方式可以做到在该页面中复用,被span标签包裹的字体会变为红色

  1. 外部样式:定义link标签,引入外部的CSS文件
    编写一个CSS文件。名为:demo.css,内容如下:
1
2
3
div{
color: red;
}

在html中引入 CSS 文件。

1
<link rel="stylesheet"  href="demo.css">

这种方式可以在多个页面进行复用。其他的页面想使用同样的样式,只需要使用 link 标签引入该CSS文件。

CSS选择器

CSS 选择器就是选取需设置样式的元素(标签),比如如下CSS代码:

1
2
3
div {
color:red;
}

如上代码中的 div 就是 css 中的选择器。这里只讲下面三种选择器:

  • 元素选择器
    格式:
1
元素名称{color: red;}

举例:

1
div {color:red}  /*该代码表示将页面中所有的div标签的内容的颜色设置为红色*/
  • id选择器
    格式:
1
#id属性值{color: red;}

举例:

1
#name{color: red;}/*该代码表示将页面中所有的id属性值是 name 的标签的内容的颜色设置为红色*/

在HTML中调用

1
<div id="name">hello css2</div>
  • 类选择器
    格式:
1
.class属性值{color: red;}

举例:

1
.cls{color: red;} /*该代码表示将页面中所有的class属性值是 cls 的标签的内容的颜色设置为红色*/

在HTML中调用

1
<div class="cls">hello css3</div>

CSS属性

css有很多css属性,你要想把它们都学会,需要花费很长的时间。而我们作为java程序员,不需要重点掌握这部分内容。对于网页三剑客中css是对我们要求最低的。了解一些简单的CSS属性就可以,剩下的可以去W3School查。