HTML&CSS
今日目标:
- 能够掌握课程中讲解的标签的使用
- 了解css的使用
HTML
介绍
这些标签不像XML那样可以自定义,==HTML中的标签都是预定义好的,运行在浏览器上并由浏览器解析,==然后展示出对应的效果。例如我们想在浏览器上展示出图片就需要使用预定义的 img 标签;想展示可以点击的链接的效果就可以使用预定义的 a 标签等。
HTML 预定义了很多标签,由于我们是Java工程师、是做后端开发,所以不会每个都学习,页面开发是有专门的前端工程来开发。那为什么我们还要学习呢?在公司中或多或少大家也会涉及到前端开发。
简单的给大家聊一下开发流程:
以后我们是通过Java程序从数据库中查询出来数据,然后交给页面进行展示,这样用户就能通过在浏览器通过页面看到数据。
W3C标准:
W3C是万维网联盟,这个组成是用来定义标准的。他们规定了一个网页是由三部分组成,分别是:
- 结构:对应的是 HTML 语言
- 表现:对应的是 CSS 语言
- 行为:对应的是 JavaScript 语言
快速入门
需求:编写如下图效果的页面
要实现这个页面,我们需要从以下三步进行实现
- 新建文本文件,后缀名改为 .html
页面文件的后缀名是 .html,所以需要该后缀名- 编写 HTML 结构标签
HTML 是由一个一个的标签组成的,但是它也用于表示结构的标签<html> <head> <title> </title> </head> <body> </body> </html>
- 在中定义文字
代码如下:
<html> <head> <title>html 快速入门</title> </head> <body> 乾坤未定,你我皆是黑马~ </body> </html>
同学们在访问其他网站页面时会看到字体颜色是五颜六色的,我们可以该字体颜色吗?当然可以了
font
标签就可以使用,该标签有一个color
属性可以设置字体颜色,如: 就是将文字设置成了红颜色。那么我们只需要将需要变成红色的文字放在标签体部分就可以了,如下:
<html> <head> <title>html 快速入门</title> </head> <body> <font color='red'>乾坤未定,你我皆是黑马~</font> </body> </html>
总结:
HTML 文件以.htm或.html为扩展名
HTML 结构标签
HTML 标签不区分大小写
如上案例中的 font 写成 Font 也是一样可以展示出对应的效果的。
HTML 标签属性值 单双引皆可
如上案例中的color属性值使用双引号也是可以的。
HTML 语法松散
比如 font 标签不加结束标签也是可以展示出效果的。但是建议同学们在写的时候还是不要这样做,严格按照要求去写。
<h1>我是标题 h1</h1> <h2>我是标题 h2</h2> <h3>我是标题 h3</h3> <h4>我是标题 h4</h4> <h5>我是标题 h5</h5> <h6>我是标题 h6</h6>
hr标签
hr
标签在浏览器中呈现出 横线 的效果。在页面文件中书写 hr 标签
<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 属性:设置文字大小
代码演示:
<font face="楷体" size="5" color="#ff0000">传智教育</font>
注意:
font 标签已经不建议使用了,以后如果要改变文字字体,大小,颜色可以使用 CSS 进行设置。
换行标签
在页面文件中书写如下内容
> 加粗、斜体、下划线标签 > > * b:加粗标签 > * i:斜体标签 > * u:下划线标签,在文字的下方有一条横线 > 代码如下: ```html <b>沙柳河水流淌</b><br> <i>沙柳河水流淌</i><br> <u>沙柳河水流淌</u><br>
居中标签
center :文本居中
代码如下:
<hr> <center> <b>沙柳河水流淌</b> </center>
图片、音频、视频标签
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是用来指定对应的图片,音频,视频文件的路径。此处的图片,音频,视频就称为资源。资源路径有如下两种设置方式:
绝对路径:完整路径
这里的绝对路径是网络中的绝对路径。 格式为: 协议://ip地址:端口号/资源名称。
如:
<img src="https://th.bing.com/th/id/R33674725d9ae34f86e3835ae30b20afe?rik=Pb3C9e5%2b%2b3a9Vw&riu=http%3a%2f%2fwww.desktx.com%2fd%2ffile%2fwallpaper%2fscenery%2f20180626%2f4c8157d07c14a30fd76f9bc110b1314e.jpg&ehk=9tpmnrrRNi0eBGq3CnhwvuU8PPmKuy1Yma0zL%2ba14T0%3d&risl=&pid=ImgRaw" width="300" height="400">
- 这里src属性的值就是网络中的绝对路径。
- 相对路径:相对位置关系
找页面和其他资源的相对路径。./ 表示当前路径
…/ 表示上一级路径
…/…/ 表示上两级路径
如模块目录结构如下:
在
01-基础标签.html
里的标签中找不同的图片,路径写法不同
<!--在该页面找a.jpg,就需要先回到上一级目录,该级目录有img目录,进入该目录就可以找到 a.jpg图片--> <img src="../img/a.jpg" width="300" height="400"> <!--该页面和aa.jpg 是在同一级下,所以可以直接写 图片的名称,也可以写成 ./aa.jpg--> <img src="aa.jpg" width="300" height="400">
使用这些标签的代码如下:
<img src="../img/a.jpg" width="300" height="400"> <audio src="b.mp3" controls></audio> <video src="c.mp4" controls width="500" height="300"></video>
超链接标签
在网页中可以看到很多超链接标签,如下
上图红框中的都是超链接,当我们点击这些超链接时会跳转到其他的页面或者资源。而超链接使用的是
a
标签。
a
标签属性:
- href:指定访问资源的URL
- target:指定打开资源的方式
- _self:默认值,在当前页面打开
- _blank:在空白页面打开
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="https://www.itcast.cn" target="_self">点我有惊喜</a> </body> </html>
效果图示:
当我们将
target
属性值设置为_blank
,效果图示:
列表标签
HTML 中列表分为
- 有序列表
如下图,页面效果中是有标号对每一项进行标记的。- 无序列表
如下图,页面效果中没有标号对每一项进行标记,而是使用 点 进行标记。标签说明:
有序列表中的
type
属性用来指定标记的标号的类型(数字、字母、罗马数字等)无序列表中的
type
属性用来指定标记的形状代码演示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ol type="A"> <li>咖啡</li> <li>茶</li> <li>牛奶</li> </ol> <ul type="circle"> <li>咖啡</li> <li>茶</li> <li>牛奶</li> </ul> </body> </html>
表格标签
如上图就是一个表格,表格可以使用如下标签定义
table :定义表格
- border:规定表格边框的宽度
- width :规定表格的宽度
- cellspacing:规定单元格之间的空白
tr :定义行
- align:定义表格行的内容对齐方式
td :定义单元格
- rowspan:规定单元格可横跨的行数
- colspan:规定单元格可横跨的列数
th:定义表头单元格
代码演示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1" cellspacing="0" width="500"> <tr> <th></th> <th></th> <th></th> <th</th> </tr> <tr align="center"> <td>010</td> <td><img src="../img/三只松鼠.png" width="60" height="50"></td> <td></td> <td></td> </tr> <tr align="center"> <td>009</td> <td><img src="../img/优衣库.png" width="60" height="50"></td> <td></td> <td></td> </tr> <tr align="center"> <td>008</td> <td><img src="../img/小米.png" width="60" height="50"></td> <td>小米</td> <td>小米</td> </tr> </table> </body> </html>
布局标签
这两个标签,一般都是和css结合到一块使用来实现页面的布局。
div
标签 在浏览器上会有换行的效果,而span
标签在浏览器上没有换行效果。代码演示:
<!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>
表单标签
表单标签效果大家其实都不陌生,像登陆页面、注册页面等都是表单。
像这样的表单就是用来采集用户输入的数据,然后将数据发送到服务端,服务端会对数据库进行操作,比如注册就是将数据保存到数据库中,而登陆就是根据用户名和密码进行数据库的查询操作。
表单是很重要的标签,需要大家重点来学习。
表单标签概述
表单:在网页中主要负责数据采集功能,使用标签定义表单
表单项(元素):不同类型的 input 元素、下拉列表、文本域等
form
是表单标签,它在页面上没有任何展示的效果。需要借助于表单项标签来展示不同的效果。如下图就是不同的表单项标签展示出来的效果。
form标签属性
- action:规定当提交表单时向何处发送表单数据,该属性值就是URL
以后会将数据提交到服务端,该属性需要书写服务端的URL。而今天我们可以书写
#
,表示提交到当前页面来看效果。
- method :规定用于发送表单数据的方式
method取值有如下两种:
- get:默认值。如果不设置method属性则默认就是该值
- 请求参数会拼接在URL后边
- url的长度有限制 4KB
- post:
- 浏览器会将数据放到http请求消息体中
- 请求参数无限制的
代码演示
由于表单标签在页面上没有任何展示的效果,所以在演示的过程是会先使用
input
这个表单项标签展示输入框效果。代码如下:
<!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>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="#"> <input type="text" name="username"> <input type="submit"> </form> </body> </html>
表单项标签
表单项标签有很多,不同的表单项标签有不同的展示效果。表单项标签可以分为以下三个:
- <input>:表单项,通过type属性控制输入形式
input 标签有个 type 属性。 type 属性的取值不同,展示的效果也不一样
- <select>:定义下拉列表,<option> 定义列表项
如下图就是下拉列表的效果:
- <textarea>:文本域
如下图就是文本域效果。它可以输入多行文本,而 input 数据框只能输入一行文本。
注意:
- 以上标签项的内容要想提交,必须得定义
name
属性。- 每一个标签都有id属性,id属性值是唯一的标识。
- 单选框、复选框、下拉列表需要使用
value
属性指定提交的值。
代码演示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="#" method="post"> <input type="hidden" name="id" value="123"> <label for="username">用户名:</label> <input type="text" name="username" id="username"><br> <label for="password"></label> <input type="password" name="password" id="password"><br> 性别: <input type="radio" name="gender" value="1" id="male"> <label for="male">男</label> <input type="radio" name="gender" value="2" id="female"> <label for="female">女</label> <br> 爱好: <input type="checkbox" name="hobby" value="1"> 旅游 <input type="checkbox" name="hobby" value="2"> 电影 <input type="checkbox" name="hobby" value="3"> 游戏 <br> 头像: <input type="file"><br> 城市: <select name="city"> <option>北京</option> <option value="shanghai">上海</option> <option>广州</option> </select> <br> 个人描述: <textarea cols="20" rows="5" name="desc"></textarea> <br> <br> <input type="submit" value="免费注册"> <input type="reset" value="重置"> <input type="button" value="一个按钮"> </form> </body> </html>