【前端】-初始前端以及html的学习

在这里插入图片描述
💖作者:小树苗渴望变成参天大树🎈
🎉作者宣言:认真写好每一篇博客💤
🎊作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!


前言

今天博主来介绍关于前端相关的知识,博主之前将的都是后端的知识,那什么是后端什么是前端?这个一会简单介绍,那我们前端学习路径是什么呢?这个都是我们一会说的,以及带大家选择前端的运行环境安装等介绍,话不多说,我们开始进入正文部分的讲解。


一、前端的概念以及运行环境

这里博主就不在网上搜前端的概念给大家粘贴到这里了,博主就用自己的话进行总结,前端就是进行页面展示给用户看的,我们显示器看到的内容都属于前端知识所呈现出来的,后端就是对我们的数据进行逻辑处理,通过前端呈现给用户。

前端的种类:

  1. web前端:我们看到的各种网页
  2. 移动端前端:我们手机各种应用界面
  3. PC端前端:电脑上各种应用的界面

主要就是这些,还有一些其他的,但是博主所将的内容主要是web前端,这也是我们入门比较简单的一个分类渠道,所以接下来博主先带大家搭建一下前端运行环境,我们需要下载万能的vsode,这个一个编辑器,靠插件完成代码的运行,我们打开官网,下载你电脑所对应的安装包。
在这里插入图片描述
我们双击我们的下载好的.exe文件,一路next就安装成功了,vs code的安装我认为相比较其他环境的安装要简单的多。
在这里插入图片描述

你打开vs code会有一个界面,我们的原因时候我使用过了,但是你肯定有我圈住的三行,这三个都不需要关心,和我们写代码没有任何关系,我们看因为不方便的话,就下载一个中文插件:
在这里插入图片描述
我们需要重启一下vs code就会变成中文的了

前端的代码编写:

  1. 我们的vs code不管编写什么代码,都需要创建一个文件夹进行保存起来,然后打开这个文件,在这个文件夹下面创建文件。
    在这里插入图片描述
  2. 然后我们快开始创建一个文件或者子文件夹:
    在这里插入图片描述
  3. 创建html文件

在这里插入图片描述


上面三步这是我们写任何程序都必须要做的一件事情,博主先简单的写一段代码,具体含义后面介绍

<html>
    <head>
        <title>这是一个测试网页</title>
    </head>
    <body>
        hello world
    </body>
</html>
  1. 我们发现这个代码好多内容都是成对出现的,我们在写代码的时候只要写前面第一个,后面配对的就会直接出来,这是我们vs code插件的作用,下载下面这个插件:
    在这里插入图片描述
  2. 我们怎么运行这个程序呢??
    (1)打开你创建文件的文件夹,双击去运行,但是比较麻烦
    在这里插入图片描述
    (2)安装下面的插件,回到代码界面,点击右键,然后就可以直接运行了
    在这里插入图片描述
  3. 当我们修改原代码的时候,保存后继续点击运行,网页才会更新,这样是我们不想要达到的效果。我们想要的是我们保存代码后,直接在网页上也更新,下载下面的插件:代码界面右键点击启动
    在这里插入图片描述
    原理其实很简单,就是我们本地起了一个一个程序帮助我们重新去运行了

上面三个就会在我们开发的时候非常的方便了,大家下去自己去试试,先把自己的运行环境弄好,在听下面的讲解

二、前端的讲解思路以及html的基础框架讲解

我们前端也有许多模块,是html,css,js这个三个部分,难度一次递增的,最后博主写根据前面学到的知识写一个博客系统,让大家感受一下前端代码的效果,前面学知识知识为了让那个大家看到一个知识点的效果,但是没有把这些知识点结合起来,所以博客系统界面就相当于前端的一个项目了,等到时候在给大家进行讲解,我们先进入到HTML的学习

这个是最简单的,但是界面不是太好看,所以他需要css来装饰他,HTML是框架,css就相当于灵魂。

我们在html文件里面随便写一句话:我们发现也是可以运行的,并且也发现了第三个插件的效果,看IP和端口号就知道,是本地程序干的事情:

在这里插入图片描述


上面的程序虽然可以运行但是不是标准的,一个正常的前端代码是少不了标签的,有了标签就相当于给你代码快附上了名字,快速生成一个简单的html框架代码:
在这里插入图片描述

  1. 第一行是声明文件的类型为HTML
  2. 第二行定义网页的语言为英语,如果你要翻译
    在这里插入图片描述
    我们看到如果是纯英文的,你浏览器带翻译插件的话就会体现出来,这是一个英文页面。
  3. 第四行是浏览器的解码方式 :当两者不一致就是出现乱码
    在这里插入图片描述
  4. 第五行定义页面的缩放比例,宽度根据设备宽度调整,初始缩放比例为100%,可以不用理解
  5. 第六行是标题,出现在我们浏览器上面的,第九行是正文

在这里插入图片描述
上面的每一行讲解清楚了,但是大家应该还发现了我们的有好多成对出现的,他们是双标签,还有单标签,在下面介绍的时候会给大家讲解,大家会发现有了这些标签,我们硬生生的文本就显得格格不入,我们用标签来规定我们想要的效果,上面的标签还不能重复体现效果,后面讲解的标签都会在正文部分体现(我们的标签有父子标签和兄弟标签,字面意思,head和body是兄弟,他俩同时是html的子标签,这个简单了解一下就可以了)
这些标签形成了DOM数
在这里插入图片描述

三、标签的详解

HTM L代码是由“标签”构成的
<body>hello</body>

标签名 (body) 放到 < > 中
大部分标签成对出现. 为开始标签, 为结束标签.
少数标签只有开始标签, 称为 “单标签”.
开始标签和结束标签之间, 写的是标签的内容. (hello)
开始标签中可能会带有 “属性”. id 属性相当于给这个标签设置了一个唯一的标识符(身份证号码)

<body id="myId">hello</body>

双标签不管修改哪一个,另一个也随着会被修改,不需要修改两次

3.1 注释,标题,段落标签

(1)注释:选中要注释的内容,CTRL+/
在这里插入图片描述
在这里插入图片描述

我们写的注释可以通过上面的方式让用户看到,所以写注释的时候要注意,不能瞎写

(2)标题content
在这里插入图片描述
我们想要实现上面有标题的效果:
在这里插入图片描述

我们的标题标签一共有六种,一种比一种的字体小而细

(3)段落

content


在这里插入图片描述

(1)p 标签之间存在一个空隙
(2)当前的 p 标签描述的段落, 前面还没有缩进. (未来 CSS 会学)
(3)自动根据浏览器宽度来决定排版.
(4)html 内容首尾处的换行, 空格均无效.
(5)在 html 中文字之间输入的多个空格只相当于一个空格.
(6)html 中直接输入换行不会真的换行, 而是相当于一个空格

3.2换行,格式化,图片标签

(1)我们的换行标签是一个单标签

在这里插入图片描述

br 是一个单标签(不需要结束标签)
br 标签不像 p 标签那样带有一个很大的空隙.
<br/>是规范写法. 不建议写成 <br>

(2)格式化标签
加粗: strong 标签 和 b 标签
倾斜: em 标签 和 i 标签
删除线: del 标签 和 s 标签
下划线: ins 标签 和 u 标签
在这里插入图片描述

为什么会有两种都是相同的相关,原因是第一个强调性强,一看就看出来了,在实际开发过程中我们正常使用css去也可以达到这样的效果,后面讲。

(3)图片标签
img 标签必须带有 src 属性. 表示图片的路径

<img src="rose.jpg">

在这里插入图片描述
img标签的属性:

  1. alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.
  2. title: 提示文本. 鼠标放到图片上, 就会有提示.
  3. width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片
    失衡.
  4. border: 边框, 参数是宽度的像素. 但是一般使用 CSS 来设定.

在这里插入图片描述

注意:

  1. 属性可以有多个, 不能写到标签之前
  2. 属性之间用空格分割, 可以是多个空格, 也可以是换行.
  3. 属性之间不分先后顺序
  4. 属性使用 “键值对” 的格式来表示.

img标签的其他用法
我们可以使用网络路径:

在这里插入图片描述

3.3 超链接标签

<a></a>

我们使用百度的时候会在这里插入图片描述
那这就是一个超链接。
超链接的五种方式:

  1. 外部链接:href引用其他网站的地址
<a href="http://www.baidu.com">百度</a>

在这里插入图片描述
2. 内部链接:href引用内部页面的链接,写相对路径即可
在这里插入图片描述
3. 空链接
我们不想跳转,就想在当前页面

在这里插入图片描述
4. 网页元素链接: 可以给图片等任何元素添加链接(把元素放到 a 标签中)
在这里插入图片描述
5. 锚点链接: 可以快速定位到页面中的某个位置

禁止 a 标签跳转: <a href="javascript:void(0);"> 或者 <a href="javascript:;">

大家下来做实验时候会发现他的跳转会在一个当前界面跳转,如果我想重新加载一个界面跳转怎么办,使用target

href: 必须具备, 表示点击后会跳转到哪个页面.
target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开.

3.4表格标签

我们想要实现下面的表格效果
在这里插入图片描述
我们使用table标签

table 标签: 表示整个表格
tr: 表示表格的一行
td: 表示一个单元格

在这里插入图片描述
效果有点差距,但好歹有一个表格的形状,我们浏览器默认边框的像素是0,所以我们要进行设置:使用给图片一样的属性border:
在这里插入图片描述
还是不太对,我们每个单元格的边框之间还有距离,因为默认的有2px所以我们需要使用下面的属性:cellspacing
在这里插入图片描述
我们发现表格太小,并且位置不是居中的,大小我们使用witdh/height,居中我们使用align(参数left/center/right)
在这里插入图片描述
我们发现align只能让表格整体进行居中靠左靠右,里面的内容不会发生变化,想要是内容靠近单元格中间,使用cellpadding
在这里插入图片描述

上述属性的介绍:
这些属性都要放到 table 标签中.

  1. align 是表格相对于周围元素的对齐方式. align=“center” (不是内部元素的对齐方式)
  2. border 表示边框. 1 表示有边框(数字越大, 边框越粗), “” 表示没边框.
  3. cellpadding: 内容距离边框的距离, 默认 1 像素
  4. cellspacing: 单元格之间的距离. 默认为 2 像素
  5. width / height: 设置尺寸.

注意, 这几个属性, vscode 都提示不出来.


上面只是针对表格做的操作,但是表格一般标题和正文是不一样的,像上面的有些操作样式实际开发的时候由css去完成的,所以我们需要用不同的标签来区分标题和正文:

th: 表示表头单元格. 会居中加粗
thead: 表格的头部区域(注意和 th 区分, 范围是比 th 要大的)
tbody: 表格得到主体区域.

在这里插入图片描述

我们的使用标题标题会让字体加粗居中


合并单元格:
步骤:

  1. 先确定跨行还是跨列
  2. 找好目标单元格(跨列合并, 左侧是目标单元格; 跨行合并, 上方是目标单元格)
  3. 删除的多余的单元格

目标效果:
在这里插入图片描述
我们在要合并的上一行或者左一行添加rowspan和colspan属性,内容是你要合并的单元格个数
在这里插入图片描述

我们只能往下或者往左合并,大家下来也可以自己去测试一下。

3.5 列表标签

我们有的时候需要给内容增加列表标签显示规律好看,起到分点的作用,那我们html怎么去实现呢??
在这里插入图片描述
有三种列表标签的格式:
1. 无序列表[重要] ul li , .
2. 有序列表[用的不多] ol li
3. 自定义列表[重要] dl (总标签) dt (小标题) dd (围绕标题来说明) 上面有个小标题, 下面有几个围绕着标题来展开的.

(1)无序列表
上面展示的就是无序列表,不是没有顺序,而是不需要顺序
快速生成:ul>li*n,n就是几行
在这里插入图片描述

我们发现这是圆形的,还有没有其他形状的,disc表示实心圆,square表示方块,circle表示空心圆
在这里插入图片描述

(2) 有序列表
快速生成:ol>li*n,n就是几行
在这里插入图片描述
有序列表不止这几种:他类型有A/a/I/i/1,默认就是1
在这里插入图片描述

不一定非的从1开始,还有一个属性start
在这里插入图片描述

(3)自定义列表
在这里插入图片描述

注意:

  1. 元素之间是并列关系

  2. ul/ol 中只能放 li 不能放其他标签, dl 中只能放 dt 和 dd

  3. li 中可以放其他标签.
    在这里插入图片描述

  4. 列表带有自己的样式, 可以使用 CSS 来修改. (例如前面的小圆点都会去掉)

3.6表单标签

表单标签是非常重要的,之前标签都是硬编码进网页的,而表单标签可以收集用户的数据,我们平时进行身份注册的时候,用的就是表单标签,还有百度搜索栏,所以表单标签作用很多,也就说明他的细节语法也更多,接下来我们来看看他的用法

表单是让用户输入信息的重要途径.
分成两个部分:

  1. 表单域: 包含表单元素的区域. 重点是 form 标签.
  2. 表单控件: 输入框, 提交按钮等. 重点是 input 标签

我们将要实现的效果:
在这里插入图片描述

(1)form标签
描述了要把数据按照什么方式, 提交到哪个页面中.
关于 form 需要结合 服务器 & 网络编程 来进一步理解. 后面再详细研究.所以action的值先不写

<form action="test.html" method="post">
   ... [form 的内容]
</form>

我们表单里面的内容将写在这个表单域里面

(2)input 标签
这是我们表单控件之一,也是最重要的。
各种输入控件, 单行文本框, 按钮, 单选框, 复选框.

  1. type(必须有), 取值种类很多多, button, checkbox, text, file, image, password, radio 等.
  2. name: 给 input 起了个名字. 尤其是对于 单选按钮, 具有相同的 name 才能多选一.
  3. value: input 中的默认值.
  4. checked: 默认被选中. (用于单选按钮和多选按钮)
  5. maxlength: 设定最大长度.
    1.文本框(text)
 <form action="">
            姓名<input type="text" name="xingming" value="xu">
 </form>

在这里插入图片描述

2. 密码框(password)

<form action="">
        密码<input type="password" >
    </form>

在这里插入图片描述

3.单选框(radio)
在这里插入图片描述
发现两个都可以进行选择,明明是单选框啊:
在这里插入图片描述

注意: 单选框之间必须具备相同的 name 属性, 才能实现 多选一 效果

4.复选框(checkbox)

<form action="">
       <input type="checkbox" >睡觉
       <input type="checkbox" >吃饭
       <input type="checkbox" >玩游戏
    </form>

在这里插入图片描述

5.普通按钮(button)

<form action="">
       <input type="button" >普通按钮
      
    </form>

当前点击了没有反应. 需要搭配 JS 使用(后面会重点研究).
在这里插入图片描述

使用下面的方式可以让大家感受确实有反应
姓名<input type="button" name="xingming" onclick="alert('hello')">
在这里插入图片描述

6.提交按钮(submit)
在这里插入图片描述

在这里插入图片描述

放在链接到形式传给你想要访问的内容,form默认是get方式传递的,post则会在正文部分传。后面再介绍

7.清空表单(reset)

 <form action="test1.html">
        姓名<input type="text" name="xingming"><br/>
            <input type="reset">
    </form>

在这里插入图片描述

清空按钮必须放在 form 中. 点击后会将 form 内所有的用户输入内容重置

8.选择文件(file)

<form action="test1.html">
        <input type="file" >
    </form>

在这里插入图片描述
在这里插入图片描述

(3)label标签
搭配 input 使用. 点击 label 也能选中对应的单选/复选框, 能够提升用户体验.
在这里插入图片描述
在单/复选框中,我们只有点击圆圈次啊可以选中,点击文字没有反应,而label标签让我们点击文字也可以选中

<form action="test1.html">
        <label for="man"></label>
        <input type="radio" name="sex" checked="checked" id="man">
        <label for="woman"></label>
        <input type="radio" name="sex" id="woman">
    </form>

在这里插入图片描述
复选框也是一样的操作

(4)select标签
下拉菜单
在这里插入图片描述
在这里插入图片描述

option里面什么属性都不写就默认第一个为初始值,使用selected的内容用初始值
<option selected="selected">4</option>
在这里插入图片描述
(5)textarea标签
文本域中的内容, 就是默认内容, 注意, 空格也会有影响.

在这里插入图片描述

超过区域就会出现滑动窗口

3.7无语义标签: div & span

div 标签, division 的缩写, 含义是 分割
span 标签, 含义是跨度
就是两个盒子. 用于网页布局
div 是独占一行的, 是一个大盒子.
span 不独占一行, 是一个小盒子.
在这里插入图片描述
在这里插入图片描述

四、综合练习

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div>
        <h1>许东徽</h1>
    </div>
    <div>
        <p>
        <h2>基本信息</h2>
        </p>
        <p><img src="../图片/1.png"></p>
        <p>求职意向:C++开发</p>
        <p>联系电话:xxxx</p>
        <p>邮箱:543615136@qq.com</p>
        <p><a href="https://gitee.com/low-key123" target="_blank">我的gitee</a></p>
        <p><a href="https://www.csdn.net/" target="_blank">我的博客</a></p>
    </div>

    <div>
        <p>
        <h2>教育背景</h2>
        </p>
        <ol>
            <li>小学</li>
            <li>初中</li>
            <li>高中</li>
            <li>大学</li>
        </ol>
    </div>

    <div>
        <p>
        <h2>专业技能</h2>
        </p>
        <ul>
            <li>c语言</li>
            <li>数据结构</li>
            <li>c++</li>
            <li>Linux</li>
        </ul>
    </div>

    <div>
        <p>
        <h2>项目经历</h2>
        </p>
        <ol>
            <li>
                <h3>留言墙</h3>
            </li>
            <p>开发时间:24-3-123-3-8</p>
            <p>功能介绍:</p>
            <ul type="circle">
                <li>支持留言发布</li>
                <li>支持匿名留言</li>
            </ul>
            <li>
                <h3>学习小助手</h3>
                <p>开发时间:24-1-924-2-14</p>
                <p>功能介绍:</p>
                <ul type="circle">
                    <li>支持错题检索</li>
                    <li>支持同学探讨</li>
                </ul>
            </li>

        </ol>
    </div>

    <div>
        <p><h2>个人评价</h2></p>
        <span>热爱编程</span>
    </div>
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    

    <table width="500" height="100" >
        <form acton="">
            <thead cellpadding="0">
                <th><h3>请填写简历信息</h3></th>
            </thead>
            <tr>
                <td>姓名</td>
                <td><input type="text"><br /></td>
            </tr>
            <tr>
                <td> 性别</td>
                <td>
                    <input type="radio" name="sex" checked="checked" id="man">
                    <img src="../图片/男.png" alt="男 width=" 18" height="18">
                    <label for="man"></label>
                    <input type="radio" name="sex" id="woman">
                    <img src="../图片/女.png" alt="女 width=" 18" height="18">
                    <label for="woman"></label><br />
                </td>
            </tr>
            <tr>
                <td>出生日期</td>
                <td> 
                    <select>
                        <option selected="selected">--请选择年份--</option>
                        <option>2000</option>
                        <option>2001</option>
                        <option>2002</option>
                        <option>2003</option>
                    </select>

                    <select>
                        <option selected="selected">--请选择月份--</option>
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                        <option>7</option>
                        <option>8</option>
                        <option>9</option>
                        <option>10</option>
                        <option>11</option>
                        <option>12</option>
                    </select>

                    <select>
                        <option selected="selected">--请选择日期--</option>
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                    </select><br />
                </td>
            </tr>
            <tr>
                <td>
                    <label for="shcool">就读学校</label>
                </td>
                <td><input type="text" id="shcool"><br /></td>
            </tr>
            <tr>
                <td> 应聘岗位</td>
                <td>
                    <input type="checkbox" id="1">
                    <label for="1">前端</label>
                    <input type="checkbox" id="2">
                    <label for="2">Java</label>
                    <input type="checkbox" id="3">
                    <label for="3">PHP</label>
                    <input type="checkbox" id="4">
                    <label for="4">UI</label>
                    <br />
                </td>
            </tr>
            <tr>
                <td>掌握到技能</td>
                <td> <textarea rows="10" cols="30"></textarea><br /></td>
            </tr>
            <tr>
                <td>
                    项目经历</td>
                <td> <textarea rows="10" cols="30"></textarea><br /></td>
            </tr>

            <tr>
                <td> </td>
                <td><input type="checkbox">我已仔细阅读过公司的招聘要求<br /></td>
            </tr>
            <tr>
                <td></td>
                <td><a href="#">查看我的状态</a></td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <div>
                        <h2>请应聘者确认:</h2>
                        <ul>
                            <li>以上信息真实有效</li>
                            <li>能够尽早去公司实现</li>
                            <li>能接受公司的加班文化</li>
                        </ul>
                    </div>
                </td>
            </tr>
        </form>
    </table>
</body>

</html>

五、特殊字符

有些特殊的字符在 html 文件中是不能直接表示的, 例如:

空格:  
小于号: <
大于号: >
按位与: &

html 标签就是用 < > 表示的. 因此内容里如果存在 < > , 就会发生混淆.特殊字符

六、Emmet 快捷键

  • 快速输入标签
input[tab]
  • 快速输入多个标签
div*3[tab]
  • 标签带id
div#sex[tab]
  • 标签带类名
div.sex[tab]
  • 标签带子元素
ul>li*3[tab]
  • 标签带兄弟元素
span+span
  • 标签带内容
div{hello}
  • 标签带内容(带编号)
div{$.hello}

七、总结

通过这篇的学习,你已经开始入门前端来,后面的知识会更多,希望大家下来可以自己去认真的敲代码,熟能生巧,接下来博主讲解css的知识点了