1. 前端开发介绍

我们介绍Web网站工作流程的时候提到,前端开发,主要的职责就是将数据以好看的样式呈现出来。说白了,就是开发网页程序,如下图所示:

image-20230309163858689

 

那在讲解web前端开发之前,我们先需要对web前端开发有一个整体的认知。主要明确一下三个问题:

1). 网页有哪些部分组成 ?

文字、图片、音频、视频、超链接、表格等等。

 

2). 我们看到的网页,背后的本质是什么 ?

程序员写的前端代码 (备注:在前后端分离的开发模式中,)

 

3). 前端的代码是如何转换成用户眼中的网页的 ?

通过浏览器转化(解析和渲染)成用户看到的网页

浏览器中对代码进行解析和渲染的部分,称为 浏览器内核

 

而市面上的浏览器非常多,比如:IE、火狐Firefox、苹果safari、欧朋、谷歌Chrome、QQ浏览器、360浏览器等等。 而且我们电脑上安装的浏览器可能都不止一个,有很多。

但是呢,需要大家注意的是,不同的浏览器,内核不同,对于相同的前端代码解析的效果也会存在差异。 那这就会造成一个问题,同一段前端程序,不同浏览器展示出来的效果是不一样的,这个用户体验就很差了。而我们想达到的效果则是,即使用户使用的是不同的浏览器,解析同一段前端代码,最终展示出来的效果都是相同的。

要想达成这样一个目标,我们就需要定义一个统一的标准,然后让各大浏览器厂商都参照这个标准来实现即可。 而这套标准呢,其实早都已经定义好了,那就是我们接下来,要介绍的web标准。

 

Web标准也称为网页标准,由一系列的标准组成,大部分由W3C( World Wide Web Consortium,万维网联盟)负责制定。由三个组成部分:

image-20230309170412197

 

当然了,随着技术的发展,我们为了更加快速的开发,现在也出现了很多前端开发的高级技术。例如:vue、elementui、Axios等等。

那这些内容呢,也是我们前端三天课程中要讲解的内容。 前端的3天课程安排如下:

 

 

2. HTML & CSS

1). 什么是HTML ?

HTML: HyperText Markup Language,超文本标记语言。

下面展示的是一段html代码经过浏览器解析,呈现的效果如右图所示:

image-20230309172534138

2). 什么是CSS ?

CSS: Cascading Style Sheet,层叠样式表,用于控制页面的样式(表现)。

下面展示的是一段 html代码 及 CSS样式 经过浏览器解析,呈现的效果如右图所示:

image-20230309172634388

 

 

2.1 HTML快速入门

2.1.1 操作

第一步:创建一个名为HTML的文件夹,然后找到课程资料中的 1.jpg 文件放到该目录下,此时HTML文件夹中内容如下:

1668011569718

 

第二步:创建一个文本文件,然后修改文件名为hello.html,注意文件的后缀是.html,如下图所示:

1668012052140

 

第三步:选中文件,鼠标右击,选择使用记事本打开文件,并且编写前端代码

首先html有固定的基本结构

 

其中<html>是根标签,<head><body>是子标签,<head>中的字标签<title>是用来定义网页的标题的,里面定义的内容会显示在浏览器网页的标题位置。

<body> 中编写的内容,就网页中显示的核心内容。

 

第四步:然后选中文件,鼠标右击,选择使用浏览器打开文件,浏览器呈现效果如下:

image-20230309173355794

 

2.1.2 总结

1). HTML页面的基础结构标签

<title>中定义标题显示在浏览器的标题位置,<body>中定义的内容会呈现在浏览器的内容区域

 

2). HTML中的标签特点

 

 

2.2 开发工具

 

 

注意:需要注意的是,我们作为一名开发者,不应该将软件软装在包含中文名的路径中 。

 

 

 

 

2.3 基础标签 & 样式

那我们在讲解HTML的常见基础标签 及 CSS的基本样式时,我们就以 新浪新闻页面 为例,来进行讲解,这样大家不仅能够知道 常见标签及样式的作用,还能够知道具体的应用场景。

新浪新闻的具体页面效果如下:

image-20230309221756293

原始页面网址:https://news.sina.com.cn/gov/xlxw/2023-03-03/doc-imyipzuy7321600.shtml

 

而对于这个新浪新闻的页面来说,核心内容分为两个部分,如下:

image-20230309222608750

 

 

2.3.1 新浪新闻-标题实现

2.3.1.1 标题排版

2.3.1.1.1 分析

image-20230309223020809

1). 第一部分,是一张图片,需要用到HTML中的图片标签 来实现。

2). 第二部分,是一个标题,需要用到HTML中的标题标签

...

来实现。

3). 第三部分,有两条水平分割线,需要用到HTML中的


标签来定义水平分割线。

 

2.3.1.1.2 标签

1). 图片标签 img

 

2). 标题标签 h 系列

 

3). 水平分页线标签


 

2.3.1.1.2 实现

1). 打开VsCode,选择左侧最底部的 "资源管理器",然后选择打开文件夹,选择打开桌面的 HTML 文件夹

2). 将资料中提供的 图片、音频、视频 文件夹的这三个文件夹(里面是图片、音视频素材),复制到 HTML 文件夹中。

image-20230309224226495

3). 在VsCode中创建一个新的 html 文件,文件的后缀名设置为 .html

image-20230309224401950

4). html 文件创建好之后,在其中输入 !,然后直接回车,就可以生成 HTML 的基础结构标签

image-20230309224645231

5). 编写标题排版的核心代码

 

 

 

2.3.1.2 标题样式

新浪新闻的标题部分的基本排版,我们已经完成了,然后大家会看到,我们编写的一级标题,默认字体颜色为纯黑色。 而原始的新浪新闻页面的新闻标题字体,并不是纯黑色,而是灰黑色, 那接下来,我们就要来设置这个字体的颜色。 而要设置这个字体的颜色,我们就需要通过CSS样式来控制 。

那在HTML的文件中,我们如何来编写CSS样式呢,此时就涉及到CSS的三种引入方式。

 

2.3.1.2.1 CSS引入方式

具体有3种引入方式,语法如下表格所示:

名称语法描述示例
行内样式在标签内使用style属性,属性值是css属性键值对<h1 style="xxx:xxx;">中国新闻网</h1>
内嵌样式定义<style>标签,在标签内部定义css样式<style> h1 {...} </style>
外联样式定义<link>标签,通过href属性引入外部css文件<link rel="stylesheet" href="css/news.css">

对于上述3种引入方式,企业开发的使用情况如下:

  1. 内联样式会出现大量的代码冗余,不方便后期的维护,所以不常用。

  2. 内部样式,通过定义css选择器,让样式作用于当前页面的指定的标签上。

  3. 外部样式,html和css实现了完全的分离,企业开发常用方式。

 

2.3.1.2.2 颜色表示

在前端程序开发中,颜色的表示方式常见的有如下三种:

表示方式表示含义取值
关键字预定义的颜色名red、green、blue...
rgb表示法红绿蓝三原色,每项取值范围:0-255rgb(0,0,0)、rgb(255,255,255)、rgb(255,0,0)
十六进制表示法#开头,将数字转换成十六进制表示#000000、#ff0000、#cccccc,简写:#000、#ccc

 

2.3.1.2.3 标题字体颜色

备注: 要想拾取某一个网页中的颜色,我们可以借助于浏览器的拾色器插件来完成。【拾色器插件的安装,参照资料中提供的文档即可】

 

 

2.3.1.2.4 CSS选择器

顾名思义:选择器是选取需设置样式的元素(标签),但是我们根据业务场景不同,选择的标签的需求也是多种多样的,所以选择器有很多种,因为我们是做后台开发的,所以对于css选择器,我们只学习最基本的3种。

选择器通用语法如下

 

我们需要学习的3种选择器是元素选择器,id选择器,class选择器,语法以及作用如下:

1.元素(标签)选择器:

例子如下:

 

2.id选择器:

例子如下:

 

3.类选择器:

例子如下:

 

 

2.3.1.2.5 发布时间字体颜色

 

上述我们还使用了一个css的属性 font-size , 用来设置字体的大小。 但是需要注意,在设置字体的大小时,单位px不能省略,否则不生效。

 

 

2.3.1.3 超链接

a

 

那接下来,我们就来完善新闻标题部分的这个功能,那此时呢,我们就需要用到HTML中的超链接的标签 。

 

2.3.1.3.1 介绍

 

2.3.1.3.2 实现

 

浏览器打开此页面,我们可以看到最终效果(超链接的字体,以及默认的下划线,通过css样式已经调整好了):

image-20230309233408698

 

 

 

2.3.2 新浪新闻-正文实现

2.3.2.1 正文排版

2.3.2.1.1 分析

image-20230310084859695

整个正文部分的排版,主要分为这么四个部分:

1). 视频 (当前这种新闻页面,可能也会存在音频)

2). 文字段落

3). 字体加粗

4). 图片

 

2.3.2.1.2 标签

1). 视频、音频标签

 

2). 段落标签

 

3). 文本格式标签

效果标签标签(强调)
加粗bstrong
倾斜iem
下划线uins
删除线sdel

前面的标签 b、i、u、s 就仅仅是实现加粗、倾斜、下划线、删除线的效果,是没有强调语义的。 而后面的strong、em、ins、del在实现加粗、倾斜、下划线、删除线的效果的同时,还带有强调语义。

 

2.3.2.1.3 实现

 

在上述的正文排版实现中,还用到了几个CSS属性:

 

注意事项:

  • 在HTML页面中无论输入了多少个空格, 最多只会显示一个。 可以使用空格占位符(&nbsp;)来生成空格,如果需要多个空格,就使用多次占位符。

  • 那在HTML中,除了空格占位符以外,还有一些其他的占位符(了解, 只需要知道空格的占位符写法即可),如下:

    • 显示结果描述占位符
       空格&nbsp;
      <小于号&lt;
      >大于号&gt;
      &和号&amp;
      "引号&quot;
      '撇号&apos;

 

 

2.3.2.2 页面布局

目前,新闻页面的基本排版,我们都已经完成了,但是,大家会看到,无论是标题部分,还是正文部分,都是铺满了整个浏览器。 而我们再来看看新浪新闻的原始页面,我们会看到新闻网页内容都是居中展示的,左边、右边都是一定的边距的。

image-20230310092442972

那接下来呢,我们就需要按照这个效果,来完成页面布局。 而要想完成这样一个页面布局,我们就需要介绍一下CSS中的盒子模型 。

 

2.3.2.2.1 盒子模型

image-20230310092820616

CSS盒子模型,其实和日常生活中的包装盒是非常类似的,就比如:

image-20230310093247265

盒子的大小,其实就包括三个部分: border、padding、content,而margin外边距是不包括在盒子之内的。

 

2.3.2.2.2 布局标签

 

测试:

 

浏览器打开后的效果:

1). div会独占一行,默认宽度为父元素 body 的宽度

image-20230310093734941

 

2). span一行会显示多个,用来组合行内元素,默认宽度为内容撑开的宽度

image-20230310093827748

 

2.3.2.2.3 盒子模型代码

代码如下:

 

代码编写好了, 可以通过浏览器打开该页面, 通过开发者工具,我们就可以看到盒子的大小, 以及盒子各个组成部分(内容、内边距、边框、外边距):

image-20230310094312355

 

我们也可以,通过浏览器的开发者工具,清晰的看到这个盒子,以及每一个部分的大小:

image-20230310094412539

 

2.3.2.2.3 布局实现

在实现新闻页面的布局时,我们需要做两部操作:

 

具体的代码实现如下:

 

浏览器打开此页面,最终效果如下:

image-20230310094732466

 

 

 

 

2.4 表格标签

场景:在网页中以表格(行、列)形式整齐展示数据,我们在一些管理类的系统中,会看到数据通常都是以表格的形式呈现出来的,比如:班级表、学生表、课程表、成绩表等等。

image-20230309174438491

 

标签:

 

演示:

代码如下:

打开浏览器,效果如下图所示:

image-20230309175121361

 

整合表格使用 table 标签包裹 , 其中的每一行数据都是一个 tr , 每一行中的每一个单元格都是一个 td , 而如果是表头单元格, 可以使用 th (具有加粗居中展示的效果)。

 

2.5 表单标签

2.5.1 表单

2.5.1.1 介绍

那表单呢,在我们日常的上网的过程中,基本上每天都会遇到。比如,我们经常在访问网站时,出现的登录页面、注册页面、个人信息提交页面,其实都是一个一个的表单 。 当我们在这些表单中录入数据之后,一点击 "提交",就会将表单中我们填写的数据采集到,并提交, 那其实这个数据呢,一般会提交到服务端,最终保存在数据库中 (后面的课程中会讲到)。

1668055779440 image-20230309175941128

 

那其实,上述的整个窗口是一个表单,而表单是一项一项的,这个我们称为表单项 或 表单元素。

 

 

2.5.1.2 演示

1). GET方式提交的表单

 

表单编写完毕之后,通过浏览器打开此表单,然后再表单项中录入值之后,点击提交,我们会看到表单的数据在url后面提交到服务端,格式为:?username=Tom&age=12。

image-20230309191725329

 

2). POST方式提交表单

将上述的表单提交方式由get,改为post

表单编写完毕之后,通过浏览器打开此表单,然后再表单项中录入值之后,点击提交,我们会看到表单的数据在url后面提交到服务端,格式为:?username=Tom&age=12。

image-20230309192625939

 

 

2.5.1.3 注意事项

表单中的所有表单项,要想能够正常的采集数据,在提交的时候能提交到服务端,表单项必须指定name属性。 否则,无法提交该表单项。

 

 

2.5.2 表单项

2.5.2.1 介绍

在一个表单中,可以存在很多的表单项,而虽然表单项的形式各式各样,但是表单项的标签其实就只有三个,分别是:

 

 

2.5.2.2 演示

创建一个新的表单项的html文件,具体内容如下:

 

通过浏览器打开上述的表单项html文件,最终展示出的表单信息如下:

image-20230309221308252

而对于input type="hidden",是一个隐藏域,在表单中并不会显示出来,但是在提交表单的时候,是会提交到服务端的。 接下来,我们就点击提交按钮,来提交当前表单,看看提交的数据:

image-20230309221530214

 

 

 

3. 文档查阅

文档地址: https://www.w3school.com.cn/index.html

3.1 HTML文档查阅

以video标签为例:

html

 

3.2 CSS文档查阅

以padding属性为例:

css