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文件,会默认为我们生成几个标签
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 属性:设置文字大小
HTML1
<font color="red" size="5" face="楷体">测试文本</font>
注意:font 标签已经不建议使用了,以后如果要改变文字字体,大小,颜色可以使用 CSS 进行设置。
换行标签
如果直接在body标签中插入下段文字,是不会自动换行的,如果要实现换行效果,需要使用 换行标签(br标签)。
1 2 3 4 5 |
<body> 刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……<br> 刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢…… </body> |
段落标签
上面文字展示的效果还是不太好,我们想让每一段上下都加空行。此时就需要使用段落标签(p标签)
在页面文件中书写如下内容:
1 2 3 |
<p>刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……</p> <p>刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……</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精英组城成,负责研究开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。
江苏传智摇客教育科技股份有限公司
版权所有Copyright 2006-2018©,All Rights Reserved苏ICP备16007882
注意,HTML 中的预留字符必须被替换为字符实体。 HTML 实体 在HTML 中,某些字符是预留的。 在HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果需要一些特殊字符,需要借助HTML实体来实现。
链接:HTML ISO-8859-1 参考手册
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©,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 中列表分为
有序列表
- 咖啡
- 牛奶
- 可乐
无序列表
- 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请求消息体中
- 请求参数无限制的
- get:默认值。如果不设置method属性则默认就是该值
代码演示
由于表单标签在页面上没有任何展示的效果,所以在演示的过程是会先使用 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
头像:
城市: 北京 上海 广州 深圳
个人描述:
-
代码
HTML1 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有三种方式:
-
内联样式:在标签内部使用style属性,属性值是CSS属性键值对
HTML1
<div style="color: red">Hello CSS~</div>
给方式只能作用在这一个标签上,如果其他的标签也想使用同样的样式,那就需要在其他标签上写上相同的样式。复用性太差。
-
内部样式:定义
<style>
标签,在标签内部定义CSS样式HTML1 2 3 4 5
<style type="text/css"> span{ color: red; } </style>
这种方式可以做到在该页面中复用,被span标签包裹的字体会变为红色
-
外部样式:定义link标签,引入外部的CSS文件
编写一个CSS文件。名为:demo.css,内容如下:CSS1 2 3
div{ color: red; }
在html中引入 CSS 文件。
HTML1
<link rel="stylesheet" href="demo.css">
这种方式可以在多个页面进行复用。其他的页面想使用同样的样式,只需要使用
link
标签引入该CSS文件。
CSS选择器
CSS 选择器就是选取需设置样式的元素(标签),比如如下CSS代码:
1 2 3 |
div {
color:red;
}
|
如上代码中的 div
就是 css 中的选择器。这里只讲下面三种选择器:
- 元素选择器
格式:CSS
举例:1
元素名称{color: red;}
CSS1
div {color:red} /*该代码表示将页面中所有的div标签的内容的颜色设置为红色*/
- id选择器
格式:CSS
举例:1
#id属性值{color: red;}
CSS
在HTML中调用1
#name{color: red;}/*该代码表示将页面中所有的id属性值是 name 的标签的内容的颜色设置为红色*/
HTML1
<div id="name">hello css2</div>
- 类选择器
格式:CSS
举例:1
.class属性值{color: red;}
CSS
在HTML中调用1
.cls{color: red;} /*该代码表示将页面中所有的class属性值是 cls 的标签的内容的颜色设置为红色*/
HTML1
<div class="cls">hello css3</div>
CSS属性
css有很多css属性,你要想把它们都学会,需要花费很长的时间。而我们作为java程序员,不需要重点掌握这部分内容。对于网页三剑客中css是对我们要求最低的。了解一些简单的CSS属性就可以,剩下的可以去W3School查。