# Front_Summary **Repository Path**: xv700/Front_Summary ## Basic Information - **Project Name**: Front_Summary - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-01-27 - **Last Updated**: 2023-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

前端技术总结

国内码云地址:https://gitee.com/xv700/Front_Summary GITHUB地址:https://github.com/xv700/Front_Summary ## 场景问题 ### 001.前端跨域 #### 前端跨域定义 > 首先什么是同源策略?同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到**XSS**、**CSFR**等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 建议右键新开页面阅读:[前端跨域](/001.Cross-Domain) ### 002.网页消息传递 #### 定义 > 在浏览器中,两个不同页面(A页面的window != B页面的window)网页之间的消息传递。 建议右键新开页面阅读:[网页消息传递详说](/002.Message_Communication) ### 003.事件冒泡的问题 #### 定义 > 当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window 。(注意这里传递的仅仅是事件并不传递所绑定的事件函数。所以如果父级没有绑定事件函数,就算传递了事件 也不会有什么表现 但事件确实传递了。) ```html 事件冒泡
点这里666
``` #### 怎么解决? ### 003.浮点运算的精度 (例:0.1+0.7=0.7999999999999999) https://www.html.cn/archives/7340/ https://www.cnblogs.com/powerwu/articles/13023859.html ### 004.获取浏览器当前页面的滚动条高度 的兼容写法 ### 005.如何监听页面缩放?如何监听浏览器切换,包括切换tab、最小化 ### 006.监听某个div滚动,div宽高变化 ### 007.获取鼠标坐标 ### 008.禁止表单记住密码自动填充 https://github.com/haizlin/fe-interview/issues/494 ### 009.复制粘贴,粘贴截图 ### 010.文字和元素的垂直水平居中 https://www.cnblogs.com/huchong/p/7875127.html https://www.jianshu.com/p/507fdba00e6c > 注:因为行内元素自身宽高为0,所以只有在块级元素前提下 #### 文字的水平居中 > 方法一:在文字所在的元素上添加样式 text-align:center > 方法二:在文字所在的元素上添加属性 align="center" #### 文字的垂直居中 > 方法一:在文字所在的元素上添加样式,使其样式的 line-height === height即可 > 方法二:在文字所在的元素高度不确定的时候,CSS 给要居中元素设置一个伪元素 ~~~html
这是要居中的文字
~~~ ~~~css .son{ height: 91px;/*这里随机写任何一个像素*/ background: blue; color: #fff; } .son::before{ display: inline-block; content: ""; height: 100%; vertical-align: middle; } ~~~ #### 元素 >在CSS中如果对元素进行水平居中是非常简单的: >如果它是一个行内元素, 就对它的父元素应用 text-align:center; >如果它是一个块级元素,就对它自身应用 margin:auto。 >然而如果要对一个元素进行垂直居中是有些复杂的。 1.首先,定义一个需要垂直居中的div元素,它的宽度和高度均为300px,背景色为蓝色。代码如下: ~~~html index
~~~ 2.我们需要使得这个蓝色的div居中,到底该怎么办呢?首先我们实现水平居中,上面已经提到过了,可以通过设置margin: 0 auto实现水平居中,代码如下: ~~~html index
~~~ 3.现在已经实现水平居中了!接下来实现垂直居中。不过,在这之前,我们先要设置div元素的祖先元素html和body的高度为100%(因为他们默认是为0的),并且清除默认样式,即把margin和padding设置为0(如果不清除默认样式的话,浏览器就会出现滚动条) ~~~html index
~~~ 4.接下来,需要做的事情就是要让div往下移动了。我们都知道top属性可以使得元素向下偏移的。但是,默认情况下,由于position的值为static(静止的、不可以移动的),元素在文档流里是从上往下、从左到右紧密的布局的,我们不可以直接通过top、left等属性改变它的偏移。所以,想要移动元素的位置,就要把position设置为不是static的其他值,如relative,absolute,fixed等。然后,就可以通过top、bottom、right、left等属性使它在文档中发生位置偏移(注意,relative是不会使元素脱离文档流的,absolute和fixed则会!也就是说,relative会占据着移动之前的位置,但是absolute和fixed就不会)。设置了position: relative后的代码如下: ~~~html index
~~~ 5.刷新一下页面,发现跟之前是没有任何变化的,因为设置了元素的position=relative,但是还没开始移动他的垂直偏移。好,下面我们就让它偏移吧!垂直偏移需要用到top属性,它的值可以是具体的像素,也可以是百分数。因为我们现在不知道父元素(即body)的具体高度,所以,是不可以通过具体像素来偏移的,而应该用百分数。既然是要让它居中嘛!就让它的值为50%不就行了吗?问题真的那么简单,试一下,就设置50%试一下: ~~~html index
~~~ 6.普通的盒子是左右margin 改为 auto就可, 但是对于绝对定位就无效了定位的盒子也可以水平或者垂直居中,有一个算法。 这时候,我们可以使用通过margin-top属性来设置,因为div的自身高度是300,所以,需要设置他的margin-top值为-150。为什么是要设置成负数的呢?因为正数是向下偏移,我们是希望div向上偏移,所以应该是负数,如下:这时候,我们可以使用通过margin-top属性来设置,因为div的自身高度是300,所以,需要设置他的margin-top值为-150。为什么是要设置成负数的呢?因为正数是向下偏移,我们是希望div向上偏移,所以应该是负数,如下: ~~~html index
~~~ 7. 确实已经居中了。好兴奋!有木有?!除了可以使用margin-top把div往上偏移之外,CSS3的transform属性也可以实现这个功能,通过设置div的transform: translateY(-50%),意思是使得div向上平移(translate)自身高度的一半(50%)。如下: ~~~html index
~~~ 8.上面的两种方法,我们都是基于设置div的top值为50%之后,再进行调整垂偏移量来实现居中的。如果使用CSS3的弹性布局(flex)的话,问题就会变得容易多了。使用CSS3的弹性布局很简单,只要设置父元素(这里是指body)的display的值为flex即可。 ~~~html index
~~~ 除了上面3中方法之外,当然可能还存在许多的可以实现垂直居中的方法。比如可以将父容器设置为display:table ,然后将子元素也就是要垂直居中显示的元素设置为 display:table-cell 。但是,这是不值得推荐的,因为会破坏整体的布局。如果用table布局,那么为什么不直接使用table标签了?那不更加方便吗? ## 原生API用法 ### 001.Blob的使用 ### 002.Web Worker ### 003.IndexedDB ### 004.Canvas ### 005.WebSocket 非原生的分离出去 ## js加密 https://github.com/ricmoo/aes-js ## 图片压缩 https://github.com/fengyuanchen/compressorjs ## js库打包rollupjs https://www.rollupjs.com/ ## js操作PDF ## js操作excel ## js复制粘贴,粘贴截图