css知识
替换元素
替换元素的尺寸从内而外分为3类:固有尺寸、HTML尺寸和CSS尺寸。
(1)固有尺寸指的是替换内容原本的尺寸。例如,图片、视频作为一个独立文件存在的时候,都是有着自己的宽度和高度的。
(2)HTML尺寸只能通过HTML原生属性改变,这些HTML原生属性包括img的width和height属性、input的size属性、textarea的cols和rows属性等。
(3)CSS尺寸特指可以通过CSS的width和height或者max-width/min-width和max-height/min-height设置的
尺寸,对应盒尺寸中的content box。
这3层结构的计算规则具体如下
(1)如果没有CSS尺寸和HTML尺寸,则使用固有尺寸作为最终的宽高。
(2...
浏览器任务
消息队列
1.添加一个消息队列;
2.IO 线程中产生的新任务添加进消息队列尾部;
3.渲染主线程会循环地从消息队列头部中读取任务,执行任务。
4.渲染进程专门有一个 IO 线程用来接收其他进程传进来的消息,接收到消息之后,会将这些消息组装成任务发送给渲染主线程,后续的步骤同上;
概述
通常我们把消息队列中的任务称为宏任务,每个宏任务中都包含了一个微任务队列,在执行宏任务的过程中,如果 DOM 有变化,那么就会将该变化添加到微任务列表中,这样就不会影响到宏任务的继续执行,因此也就解决了执行效率的问题。
等宏任务中的主要功能都直接完成之后,这时候,渲染引擎并不着急去执行下一个宏任务,而是执行当前宏任务中的微任务,因为 DOM 变化的事件都保存在这些微任务队列中,这样也就解...
闭包
function foo() {
var myName = "极客时间"
let test1 = 1
const test2 = 2
var innerBar = { setName:function(newName){ myName = newName },
getName:function(){ console.log(test1) return myName } }
return innerBar}
var bar = foo()
bar.setName("极客邦")
bar.getName()
console.log(bar.getName())
站在内存模型的角度来分析这段代码的执行流程。
1.当 JavaScr...
CORS
cross origin resource share
简单的请求
有些请求不会触发CORS预检。这些在本文中被称为“简单请求”,尽管Fetch规范(它定义了CORS)不使用该术语。不会触发CORS预检的请求(所谓的“简单请求”)是满足以下所有条件的请求:
唯一允许的方法是:
GET
HEAD
POST
CORS安全列表请求标头
除了由用户代理自动设置的标头(例如,Connection,User-Agent,或任何与所述抓取规格为“禁止的标题名称”定义名称其它标题的),其允许被手动设置仅标头是那些Fetch规范将其定义为“CORS安全列表请求标头”,它们是:
Accept
Accept-Langu...
共计 109 篇文章,22 页。