HTML&CSS

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文件,会默认为我们生成几个标签

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标签可以改变文字颜色、大小、字体

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>
</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最小。

HTML
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 标签

HTML
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 属性:设置文字大小

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

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

换行标签

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

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

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

段落标签

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

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

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

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


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

加粗、斜体、下划线标签

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

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

沙柳河水流淌

沙柳河水流淌

居中标签

center :文本居中

代码如下:

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


效果如下


我是文章标题

案例

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

公司简介



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

 


江苏传智摇客教育科技股份有限公司

版权所有Copyright 2006-2018©,All Rights Reserved苏ICP备16007882

注意,HTML 中的预留字符必须被替换为字符实体。 HTML 实体 在HTML 中,某些字符是预留的。 在HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果需要一些特殊字符,需要借助HTML实体来实现。
链接:HTML ISO-8859-1 参考手册

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

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

代码演示:

HTML
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:定义表头单元格

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
<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 标签在浏览器上没有换行效果。

HTML
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 这个表单项标签展示输入框效果。

代码如下:

HTML
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 属性。代码如下:

HTML
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
    头像: 
    城市:        北京       上海       广州       深圳   
    个人描述: 
      

  • 代码

    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
    
    <!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 标签的内容的字体颜色设置为 红色。

HTML
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属性键值对

    HTML
    1
    
    <div style="color: red">Hello CSS~</div>
    

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

  2. 内部样式:定义<style>标签,在标签内部定义CSS样式

    HTML
    1
    2
    3
    4
    5
    
    <style type="text/css">
    	span{
    		color: red;
        }
    </style>
    

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

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

    CSS
    1
    2
    3
    
    div{
    	color: red;
    }
    

    在html中引入 CSS 文件。

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

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

CSS选择器

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

CSS
1
2
3
div {
	color:red;
}

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

  • 元素选择器
    格式:
    CSS
    1
    
    元素名称{color: red;}
    
    举例:
    CSS
    1
    
    div {color:red}  /*该代码表示将页面中所有的div标签的内容的颜色设置为红色*/
    
  • id选择器
    格式:
    CSS
    1
    
    #id属性值{color: red;}
    
    举例:
    CSS
    1
    
    #name{color: red;}/*该代码表示将页面中所有的id属性值是 name 的标签的内容的颜色设置为红色*/
    
    在HTML中调用
    HTML
    1
    
    <div id="name">hello css2</div>
    
  • 类选择器
    格式:
    CSS
    1
    
    .class属性值{color: red;}
    
    举例:
    CSS
    1
    
    .cls{color: red;} /*该代码表示将页面中所有的class属性值是 cls 的标签的内容的颜色设置为红色*/
    
    在HTML中调用
    HTML
    1
    
    <div class="cls">hello css3</div>
    

    CSS属性

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