【WEB前端开发】基础知识大总结,2024年最新Web前端进阶之光


<link /> 用于定义文档与外部资源的关系,最常用于链接样式表,也常用于给标题添加小图标

<link /> 是空元素,仅包含属性,只能存在于head部分

| 属性 | 属性值 | 描述 |

| — | — | — |

| href | URL | 设置目标链接的文件路径 |

| rel | stylesheet、icon、sidebar、prev等 | 规定当前文档与链接文档之间的关系 |

| type | MIME_type | 目标连接文档的MIME类型 |

3、style标签


<style></style> 用于给文档引入 CSS 样式信息,将样式表包含在 style 开始与结束标签之间

4、script 标签


<script></script> 用于给页面添加脚本

可以直接在script开始和结束标签之间包含JavaScript脚本

也可以通过script的src属性链接外部脚本文件

5、mate 标签


<meta /> 提供有关页面的元信息,比如针对搜索引擎和更新频度的描述和关键词

namecontent 属性通常一起使用,以键值对的方式给文档提供元数据,其中 name 的属性值作为元数据的名称,content 作为元数据的值

keywordsdescription 这两个名称使用频率最高,是搜索引擎优化的主要方式之一

| 名称 | 值 | 描述 |

| — | — | — |

| keywords | 关键字 | 描述网页关键字,使用逗号分隔 |

| description | 描述内容 | 网站主要内容的简短描述 |

| author | 作者 | 描述网站作者 |

| viewport | width | viewport视口宽度,设置为device-width表示为设备的宽度 | 定义viewport的初始大小,仅用于移动设备 |

| height | viewport视口高度 |

| maximum-scale | 最大缩放比例 |

| initial-scale | 初始缩放比例 |

| minimum-scale | 最小缩放比例 |

| user-scalable | 是否允许用户缩放 |

charset 属性用于指定文档的字符编码。常用值为UTF-8、ISO-8859-1等

http-equiv 属性可用于模拟一个HTTP响应头,与content属性搭配使用,常用属性值如下:

  • content-type :规定文档的字符编码,等同于charset属性设置字符编码

  • default-style :设置默认CSS样式表组的名称

  • refresh :设置文档自动刷新的时间间隔,content只包含一个正整数,则为重新载入页面的时间间隔(秒),content包含一个正整数和【url=XXX】格式的字符串时,该正整数则是重定向到指定链接的时间间隔(秒)

6、base 标签


<base /> 用于为页面中的所有相对链接设置默认URL或默认 target 属性

五、CSS引用方式

========================================================================

CSS(层叠样式表)定义了HTML元素在页面中的样式、布局以及整个页面的布局。

CSS遵循W3C规范,实现了跨浏览器的标准化。

1、行内样式


直接使用HTML元素的style属性引入CSS样式

uiu

2、内嵌样式


使用标签引入样式

3、外部样式


链接样式 导入确实比较方便,当然也是最常用的,但在比较大的工程之中我常使用 导入样式 ,我认为这可以让我的代码得到更方便的管理

3.1 链接样式

<head></head> 标签中,使用 <link /> 标签链接外部的CSS文件

link 标签的 href属性设置为目标链接的 CSS 文件路径,rel 属性设置为 stylesheet 表示链接样式表,type 属性设置为 text/css

3.2 导入样式

使用 @import url() 引入CSS文件

在CSS文件中直接使用 @import url()

在HTML文件中需要在 <style></style> 标签中使用 @import url()

在HTML初始化时,@import url() 导入的CSS会被直接导入到 HTMLCSS 文件中,成为文件的一部分

/*

CSS文件中导入

*/

@import url(style.css);

六、CSS背景属性

========================================================================

在前端开发过程中,为了页面的美观,往往都会给HTML元素添加背景,使用CSS(层叠样式表)背景属性能够在页面美化的同时,实现页面的表现与内容分离。

| 属性 | 属性值 | 描述 |

| — | — | — |

| background-color | 颜色值,如rgbrgba十六进制表示 等,设置为 transparent 表示背景透明 | 设置背景颜色 |

| background-image | url( filepath )none | 设置背景图像 |

| background-size | 宽高百分比宽高containcover | 设置背景图片尺寸 |

| background-repeat | repeat / repeat-x / repeat-y | 设置背景图片重复方式 |

| background-position | top left / top center / cente r等 | 设置背景图片的位置 |

1、background-size 属性


  • contain

保持图片纵横比例缩放背景图片,使背景图片能够在背景区域完全显示

有可能出现图片无法完全覆盖背景区域

  • cover

保持图片纵横比不变,最大程度覆盖背景区域

有可能导致背景图片部分区域无法显示

2、background-repeat 属性


  • repeat(默认)

允许水平和垂直方向重复(平铺)背景图片

  • repeat-x

只允许水平方向重复(平铺)背景图片

  • repeat-y

只允许垂直方向重复(平铺)背景图片

3、background 属性


简写属性可以在一个属性声明中设置一个或多个背景属性

background: #000 url(‘bannner.png’) no-repeat cover;

上面代码的意思为:黑色背景、背景图片为:bannner.png、关闭平铺、保持图片纵横比不变

七、CSS文本属性

========================================================================

通过CSS文本属性可以给文本设置颜色、字号、行间距、对齐、段落缩进等样式,将页面的正文与标题区分开,同时能够丰富整个页面布局。

1、color 属性


用于设置文本的颜色,可设置的值有:

  • 颜色英文名,如 red

  • 十六进制值,如 #FFFFFF

  • RGB值,如 rgb(255, 0, 0)

  • rgba值 ,如 rgba(255, 0, 0, 0.9)

2、font-size 属性


用于设置文本字体大小,可以设置为绝对大小,单位为px ,也可设置为相对大小,单位为 remem

字体大小未设置时默认字体大小为 16px

3、font-weight 属性


用于设置文本的粗细,可设置的值有:

| 属性值 | 说明 |

| — | — |

| normal | 标准字符(默认) |

| bold | 粗体字符 |

| bolder | 更粗的字符 |

| lighter | 更细的字符 |

| 100、200、300、400、500... | 400 相当于 normal 700 相当于 bold ,数值越大字体越粗 |

4、font-family 属性


用于规定文本使用的字体名或字体族名列表,字体名在列表越往前优先级越高。

如果浏览器不支持第一个字体,则会尝试下一个,以此类推

font-family: “PingFang SC”,“Hiragino Sans GB”,“Arial,Microsoft YaHei”,“Verdana”,“Roboto”,“Noto,Helvetica Neue”,“sans-serif”;

5、text-align 属性


用于设置文本的水平对齐方式,可设置的值有

  • center(居中对齐)

  • left(左对齐)

  • right(右对齐)

文本方向是从左到右则默认左对齐,文本方向是从右至左则默认右对齐

6、line-height 属性


用于设置行间距,可设置的值如下

  • 数字 :行间距为当前字体大小乘此数字

  • 固定值 :设置固定的行间距,如20px

  • 百分比 :行间距为当前字体大小乘百分比

7、text-indent 属性


用于指定首行缩进值,可设置的值如下

  • 固定值 :设置固定首行缩进,如20px

  • 百分比 :首行缩进值为父元素宽度乘此百分比

8、letter-spacing 属性


用于设置字间距,设置固定值为字间距,如10px

9、word-spacing 属性


用于指定文本中单词之间的间距,设置固定值为单词间距,如10px

10、text-decoration 属性


用于设置文本的装饰线,是下表属性的简写

| 属性 | 属性值 | 描述 |

| — | — | — |

| text-decoration-line | none | 无线条 | 设置要使用哪种文本装饰的类型

(下划线、上划线、删除线)。 |

| underline | 下划线 |

| overline | 上划线 |

| line-through | 删除线 |

| text-decoration-color | 颜色名、十六进制颜色、rgb等 | 设置装饰线颜色 |

| text-decoration-style | solid | 实线 | 设置装饰线的样式 |

| double | 双实线 |

| dotted | 点划线 |

| dashed | 虚线 |

| wavy | 波浪线 |

/*

表示为黑色波浪形下划线

*/

text-decoration: underline wavy black;

11、text-transform 属性


用于设置文本大小写字母,常用属性如下

  • uppercase :全部文本均为大写字母

  • lowercase :全部文本均为小写字母

  • capitalize :文本的每个单词首字母为大写字母

12、writing-mode 属性


设置文本在水平或垂直方向的排布方式

  • horizontal-tb :文本流在水平方向从上到下排列,文字方向为水平方向

  • sideways-lr :文本流在垂直方向,从下至上、从左至右排列

  • sideways-rl :文本流在垂直方向,从上至下、从右至左排列

  • vertical-lr :文本流在垂直方向,从上至下、从左至右排列,文字方向为水平方向

  • vertical-rl :文本流在垂直方向,从上至下、从右至左排列,文字方向为水平方向,跟古诗阅读顺序一致

13、white-space 属性


用于设置文本的空白符处理方式,属性值如下

| 属性值 | 描述 |

| — | — |

| normal | 合并空格,换行符转化为一个空格,允许自动换行 |

| nowrap | 合并空格,换行符转化为一个空格,不允许自动换行 |

| pre | 保留空格,保留换行符,不允许自动换行 |

| pre-line | 合并空格,保留换行符,允许自动换行 |

| pre-wrap | 保留空格,保留换行符,允许自动换行 |

| break-spaces | 保留空格,保留换行符,允许自动换行,行尾空格保留,空白符占用空间 |

八、基础选择器

======================================================================

CSS(层叠样式表)选择器是CSS规则的一部分,用来指定需要设置样式的HTML元素。

通过选择器可以实现CSS对HTML元素的一对一、一对多、多对一的控制。

|

选择器类型

| 描述 |

示例

|

| :-: | — | — |

| 通配选择器 | 通配选择器使用一个星号*表示,*会匹配所有元素 | * {

color: red;

} |

| 标签选择器 | 通过标签名匹配,匹配文档中所有为此标签名的元素 | p {

color: red;

} |

| id选择器 | 通过井号#来定义id选择器,根据元素的id属性匹配(精确匹配)元素 | #box {

width: 100px;

} |

| 类选择器 | 通过点.来定义类选择器,根据元素的class属性匹配(精确匹配)元素 | .container {

height: 100px;

} |

| 组合选择器 | 包括四种组合方式:后代选择器、子代选择器、相邻选择器、兄弟选择器 | #box>.nav p {

color: red;

} |

1、通配选择器


可以与其他选择器相结合,选择某元素下的所有元素

/*

选择类名为box的元素的所有后代,添加一个黑色的字体颜色

*/

.box * { color: #000; }

由于每个浏览器对元素的默认边距不一致,通配选择器常用于reset样式文件中,覆盖浏览器的默认样式

  • {

margin: 0;

padding: 0;

border: 0;

}

2、标签选择器


标签选择器也常用于reset样式文件中,用于清除元素的默认样式,如li标签的小圆点、a标签的下划线等

3、id选择器


id属性的属性值应当是当前文档唯一

4、类选择器


class属性值在文档中可以重复

5、组合选择器


通过间隔符将基础选择器连接起来,实现组合选择的效果

| 选择器 | 间隔符 | 描述 |

| — | — | — |

| 后代选择器 | 空格 | 选取该元素的后代元素 |

| 子代选择器 | > 大于号 | 选择该元素的第一级子元素 |

| 相邻选择器 | + 加号 | 选择该元素之后相邻第一个元素,且两者具有相同的父元素 |

| 兄弟选择器 | ~ 波浪号 | 选择该元素之后的同层级元素 |

九、伪类选择器

======================================================================

将伪类与选择器相结合,可以指定选择元素的特殊状态,也可以根据元素的所处的状态应用不同的样式,掌握伪类选择器可以帮助我们实现更加丰富的样式。

| 伪类 | 描述 |

| — | — |

| :hover | 用于设置鼠标悬停在元素上方时的样式 |

| :focus | 用于设置元素获得焦点时的样式 |

| :active | 用于设置元素被激活时(按下按键时、松开按键时)的样式 |

| :link | 用于设置元素点击之前的样式(仅可用于a标签) |

| :visited | 用于设置被访问的元素的样式(仅可用于a标签) |

| :first-child | 用于选取属于其父元素的第一个子元素,且满足冒号前的基础选择器选取要求 |

| :first-of-type | 用于选取属于其父元素的第一个特定类型的子元素 |

| :last-child | 用于选取属于其父元素的最后一个子元素且满足基础选择器选取要求 |

| :last-of-type | 用于选取属于其父元素的最后一个特定类型的子元素 |

| :nth-child(N) | 选择匹配属于其父元素的第N个子元素且满足基础选择器选取要求,N可以为数字、关键字(odd / even)、公式(如:2n+1) |

| :nth-of-type(N) | 选择匹配属于其父元素的第N个指定类型的子元素,N可以为数字、关键字(odd / even)、公式 |

| :nth-last-child(N) | 选择匹配属于其父元素的第N个子元素且满足基础选择器选取要求,从最后一个子元素开始计数,N可以为数字、关键字(odd / even)、公式 |

| :nth-last-of-type(N) | 选择匹配属于其父元素的第N个指定类型的子元素,从最后一个子元素开始计数,N可以为数字、关键字(odd / even)、公式 |

十、伪元素选择器

=======================================================================

伪元素选择器通过选择元素的某个部分,对元素的特定部分单独设置样式。伪元素是某个元素的子元素,是逻辑上存在的虚拟元素,但是实际并不存在与DOM树中。

一个选择器只能使用一个伪元素,伪元素必须在基础选择器语句后使用

为了便于区分伪类选与伪元素,使用双冒号 :: 作为伪元素选择符

|

伪元素

| 描述 | 示例 |

| :-: | — | — |

| ::after | 用于创建伪元素,在元素内容之后插入内容,该伪元素默认为行内元素 | p::after {

content: "结束";

} |

| ::before | 用于创建伪元素,在元素内容之前插入内容,该伪元素默认为行内元素 | p::before {

content: "开始";

} |

| ::first-line | 向文本的首行添加样式,只能应用于块级元素 | p::first-line {

color: #333;

} |

| ::first-letter | 向文本的首字母添加样式,只能应用于块级元素 | p::first-letter {

font-size: 16px;

} |

| ::marker | 用于改变li元素的数字或符号的样式,只能作用于display属性值为list-item的元素 | ul li::marker {

content: '*';

} |

| ::placeholder | 用于设置表单元素占位符文本的样式 | input::placeholder {

color: blue;

} |

十一、CSS优先级

========================================================================

当创建的CSS样式表越来越多、越来越复杂的时候,一个元素的样式可能受到多个CSS样式表的影响,到底这个元素显示的是哪个样式表的样式呢?通过CSS优先级可以帮助我们得出结论。

1、CSS优先级


浏览器通过CSS选择器的优先级来判断元素到底应该显示那个属性值

CSS的优先级如下

内联样式 > ID选择器 > 类选择器、属性选择器、伪类选择器 > 标签选择器 、伪元素选择器

通配符选择器 * 和关系选择符 +(相邻选择符)、>(子代选择符)、~(兄弟选择符)、" "(后代选择符)等对优先级没有影响

在选择器使用较多的情况下,使用CSS优先级判断元素的属性值显示很容易出错且不利于排错,可以通过给选择器添加权重的概念来帮助我们更好的理解CSS选择器的优先级

| 选择器 | 权重 |

| — | — |

| 内联样式 | 1000 |

| ID选择器 | 100 |

| 类选择器、属性选择器、伪类选择器 | 10 |

| 标签选择器、伪元素选择器 | 1 |

| 相邻选择符、子代选择符、兄弟选择符、后代选择符 | 0 |

2、选择器权重计算


选择器的权重可以相加

#header .nav li { list-style: none; }

该选择器的权重 = ID选择器100 + 类选择器10 + 标签选择器1 = 111

对于同一个元素的两种选择器均声明了同一个属性情况

  • 权重相同时,根据HTML代码从上往下执行的特点,后面选择器会覆盖前面选择器中相同的属性

  • 权重不同时,权重大的选择器生效

3、!important规则

当你在一个样式声明中使用 !important 规则时,这个样式将覆盖其他的任何声明

!important 规则与优先级无关,但是会直接影响样式的最终显示结果

十二、块级元素与行内元素

===========================================================================

HTML(超文本标记语言)中元素大多数为块级元素或行内元素,浏览器在显示页面时,对这两类元素的默认处理方式是不一样的。

1、块级元素


  • 在浏览器显示时总是独占一行

  • 宽高、内外边距可以控制,且上下左右的外边距均可对周围元素产生影响

  • 可以包含内容、行内元素和其他块级元素

  • 宽度未设置时默认为其父级元素的宽度,高度未设置时为内容的高度

  • 常见块级元素:div、form、footer、h1-h6、ol、ul、p、video

  • 设置 display 属性为 display: block 可将元素转换为块级元素

2、行内元素


  • 不独占一行,默认不自动换行

  • 宽高、上下边距不可以控制,仅有左右边距可以控制且会对周围元素产生影响

  • 一般只能包含内容和其他行内元素,不可包含块级元素

  • 设置宽高无效,宽高默认为内容的宽高

  • 常见行内元素:span、label、a、em、strong、img

  • 设置 display 属性为 display: inline 可将元素转换为行内元素

3、行内块级元素


  • 综合块级元素与行内元素的特性

  • 不独占一行

  • 元素宽高、内外边距均可设置,上下左右边距均会对周围元素产生影响

  • 宽高未设置时默认为内容宽高

  • 常见行内块级元素:button、input、textarea、select

  • 设置 display 属性为 display: inline-block 可将元素设置为行内块级元素

十三、盒子模型

======================================================================

所有的HTML元素都可以看做是一个盒子模型,每个盒子模型包含外边距、内边距、边框、实际内容四个部分,通过对以上四个部分的属性设置可以极大的丰富盒模型乃至整个HTML文档的表现效果和布局结构。

1、概念


当对一个页面进行布局(lay out)的时候,浏览器会将所有元素表示为一个个矩形的盒子(box),HTML页面可以理解为将多个盒子堆叠累加而成。

2、盒子模型组成部分


在这里插入图片描述

盒模型由里到外包括四个部分:

  • 内容部分

  • padding(内边距)

  • border(边框)

  • margin(外边距)

内容部分一般用来显示图像或文字,在标准盒模型中(默认),内容部分的宽高可以通过width、height属性设置

  • padding(内边距) 是包围在内容区域外的空白区域,代表的是盒子边框与实际内容之间的距离,通过 padding 相关属性设置大小

  • border 指的是盒子模型的边框。border除了可以使用 border-width 设置边框大小外,可以使用 border-style 设置边框的样式,如实线、虚线,使用 border-color 设置边框颜色

  • margin(外边距) 指的是盒子和其他元素之间的空白部分,代表的是盒子的边框与其他相邻盒子边框之间的距离,通过 margin 相关属性设置大小

3、标准盒模型与怪异盒模型的区别


3.1标准盒模型

标准盒模型结构图

在这里插入图片描述

在标准盒模型中,给盒模型设置width和height,实际上是给内容区域设置大小

标准盒模型的盒子实际宽高 = 内容区域的宽高 + border大小 + padding大小

如果将div设置为标准盒模型 box-sizing:content-box ,CSS设置如下

div{

width: 100px;

height: 100px;

margin: 50px;

padding: 15px;

box-sizing: border-box;

}

检查元素如下图所示,div设置的 widthheight 是100×100,div的实际大小是 130×130div的实际宽度 = width + padding-left + padding-right + border-left + border-right = 100+ 15 + 15 + 0 + 0 = 130,div的实际高度计算同理

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

算法

  1. 冒泡排序

  2. 选择排序

  3. 快速排序

  4. 二叉树查找: 最大值、最小值、固定值

  5. 二叉树遍历

  6. 二叉树的最大深度

  7. 给予链表中的任一节点,把它删除掉

  8. 链表倒叙

  9. 如何判断一个单链表有环

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

域设置大小

标准盒模型的盒子实际宽高 = 内容区域的宽高 + border大小 + padding大小

如果将div设置为标准盒模型 box-sizing:content-box ,CSS设置如下

div{

width: 100px;

height: 100px;

margin: 50px;

padding: 15px;

box-sizing: border-box;

}

检查元素如下图所示,div设置的 widthheight 是100×100,div的实际大小是 130×130div的实际宽度 = width + padding-left + padding-right + border-left + border-right = 100+ 15 + 15 + 0 + 0 = 130,div的实际高度计算同理

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-nq7UN1Dc-1712792838069)]
[外链图片转存中…(img-2SqByRON-1712792838070)]
[外链图片转存中…(img-dLFOJJpQ-1712792838070)]
[外链图片转存中…(img-3MMKNw9U-1712792838071)]
[外链图片转存中…(img-r1SNPqVW-1712792838071)]
[外链图片转存中…(img-PQHmftgH-1712792838071)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-VQCTnk03-1712792838072)]

算法

  1. 冒泡排序

  2. 选择排序

  3. 快速排序

  4. 二叉树查找: 最大值、最小值、固定值

  5. 二叉树遍历

  6. 二叉树的最大深度

  7. 给予链表中的任一节点,把它删除掉

  8. 链表倒叙

  9. 如何判断一个单链表有环

    [外链图片转存中…(img-dYQC1S1m-1712792838072)]

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-U3GPlNYR-1712792838072)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
OSZAR »