首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

前端优化--阻塞渲染CSS

默认情况下,CSS 被视为阻塞渲染资源,这意味着浏览器将不会渲染任何已处理内容,直至 CSSOM 构建完毕。请务必精简您 CSS,尽快提供它,并利用媒体类型和查询来解除对渲染阻塞。...HTML 显然是必需,因为如果没有 DOM,我们就没有可渲染内容,但 CSS 必要性可能就不太明显。如果我们在 CSS 不阻塞渲染情况下尝试渲染一个普通网页会怎样?...默认情况下,CSS 被视为阻塞渲染资源。 我们可以通过媒体类型和媒体查询将一些 CSS 资源标记为不阻塞渲染。 浏览器会下载所有 CSS 资源,无论阻塞还是不阻塞。 ?...上例展示了纽约时报网站使用和不使用 CSS 显示效果,它证明了为何要在 CSS 准备就绪之前阻塞渲染,— 没有 CSS 网页实际上无法使用。右侧情况通常称为“内容样式短暂失效”(FOUC)。...浏览器将阻塞渲染,直至 DOM 和 CSSOM 全都准备就绪。 CSS 是阻塞渲染资源。需要将它尽早、尽快地下载到客户端,以便缩短首次渲染时间。

85021

提升CSS渲染性能骚操作

考核内容: CSS渲染 题发散度: ★★ 试题难度: ★★ 看看大家选择 解题: 如何使css渲染效率更高效,也就是如何加快css渲染速度 先做一个引入。...当浏览器解析HTML时首先构造一个内部文件树来代表所有显示元素。然后浏览器根据标准CSS级联、继承和排序规则,为元素指定匹配各种样式。CSS搜索引擎通过样式规则为每个元素找到匹配样式。...不过渲染速度各不相同。 ID渲染速度是最快, 如 #menu{……} 但是当ID也其他标签组合的话他渲染速度就有可能变得很低。 如 #menu li{……} 为什么呢?...但网页中如果使用过多绝对定位,会让你网页变得非常慢 避免使用CSS表达式 举个css表达式例子 font-color: expression( (new Date()).getHours()%3...“#FFFFFF" : “#AAAAAA" ); 这个表达式会持续在页面上计算样式,影响页面的性能。并且css表达式只被IE支持。 在线测试: 答案: A. 尽量使用CSS子代选择器尽量多嵌套

87540

css渲染(三)颜色与背景

一、前景色 color   color前景色   值: | inherit   初始值: 用户代理特定值   应用于: 所有元素   继承性: 有 一般来说,前景是元素文本,不过前景还包括元素周围边框...二、透明度 opacity   opacity是CSS3中专门用来设置透明度一个属性,opacity只能给整个元素设置一个透明度,并且其透明度直接会继承给其后代元素   值: value | inherit.../1.jpg"); 背景平铺 背景平铺属性值中space和round是CSS3新增值。...space表示背景图像两端对齐平铺,多出来空间用空白代替;round也表示背景图像两端对齐平铺,但多出来空间通过自身拉伸来填充。...,可以控制背景图片在水平和垂直两个方向缩放,也可以控制图片拉伸覆盖背景区域方式,甚至还可以截取背景图片。

1.3K60

JS 与 CSS 阻塞 DOM 渲染解析情况详解

简单阐述一下浏览器解析渲染过程,解析DOM生成DOM Tree,解析CSS生成CSSOM Tree,两者结合生成render tree渲染树,最后浏览器根据渲染渲染至页面。...因此CSS不会阻塞页面DOM解析,但是由于render tree生成是依赖DOM Tree和CSSOM Tree,因此CSS必然会阻塞DOM渲染。...更为严谨一点说,CSS会阻塞render tree生成,进而会阻塞DOM渲染。...倘若在决定渲染页面时,还有尚未加载完成CSS样式,只能等待其加载完成再去渲染页面。 Body 内 CSS 来看一个较为特殊情况。...CSS不会阻塞DOM解析,但是会阻塞DOM渲染,严谨一点则是CSS会阻塞render tree生成,进而会阻塞DOM渲染 JS会阻塞DOM解析 CSS会阻塞JS执行 浏览器遇到标签且没有

2K31

CSS3强制启用 GPU 加速渲染 CSS3 动画

CSS3强制启用 GPU 加速渲染 CSS3 动画 css3 transform:translateZ(0)解决一个存在已久并早已知悉解决方案渲染问题… 最终,只用了一小段css代码就解决了 transform...属性等于告诉了浏览器用GPU来渲染该层,与一般CPU渲染相比,提升了速度和性能。...这和游戏中3D渲染类似,虽然我们看到是一个立体的人物,但这个人物皮肤是由不同图片“贴”和“拼”上去。...gpu加速后,涉及到区域就会被gpu直接渲染在屏幕对应区域,不用和浏览器进程共享内存和减轻cpu负担是gpu加速理论原理。...被加速元素如果有position定位子元素,这些子元素有可能无法渲染到被加速元素以外区域——left设置成-10000px都会渲染成0px; pc上有些显卡还会出现渲染bug

14010

如何只使用CSS提升页面渲染速度

如果滚动时出现动画中断或延迟,用户很可能就会离开你网站。作为一名开发者,你可以做很多事情来提升用户体验。本文主要介绍你可以用来提升页面渲染速度 4 个 CSS 技巧。 1....与滚动条行为相关问题。由于元素最初渲染高度是 0px,当你向下滚动时,这些元素会进入屏幕。实际内容会被渲染,这个元素高度会被相应地更新。这会使滚动条出现预料之外行为。 ?...为了修复这个滚动条问题,你可以使用另一个 CSS 属性,contain-intrinsic-size。它指定了一个元素自然大小。因此,这个元素会用指定高度渲染,而不是 0px。...在页面渲染时,直到 CSS 对象模型(CSS Object Model,CSSOM)准备就绪,它才开始渲染阶段。根据你 Web 应用,你可能有一个很大样式表来满足所有的设备形式因素。...CSS 最新特性之一,content-visibility,在未来几年看起来很有前景,因为它可以在页面渲染方面带来数倍性能提升。

1.3K30

如何只使用CSS提升页面渲染速度

如果滚动时出现动画中断或延迟,用户很可能就会离开你网站。作为一名开发者,你可以做很多事情来提升用户体验。本文主要介绍你可以用来提升页面渲染速度 4 个 CSS 技巧。 1....在这种情况下,我们可以使用content-visibility来跳过渲染屏幕之外内容。如果你有大量屏幕之外内容的话,这会大大减少页面渲染时间。...与滚动条行为相关问题。由于元素最初渲染高度是 0px,当你向下滚动时,这些元素会进入屏幕。实际内容会被渲染,这个元素高度会被相应地更新。这会使滚动条出现预料之外行为。...在页面渲染时,直到 CSS 对象模型(CSS Object Model,CSSOM)准备就绪,它才开始渲染阶段。根据你 Web 应用,你可能有一个很大样式表来满足所有的设备形式因素。...CSS 最新特性之一,content-visibility,在未来几年看起来很有前景,因为它可以在页面渲染方面带来数倍性能提升。

1.5K20

CSS到底会不会阻塞页面渲染

可能大家都知道,js执行会阻塞DOM树解析和渲染,那么css加载会阻塞DOM树解析和渲染吗?接下来,我们就一起来分析一下。 原理解析 那么为什么会出现上面的现象呢?...我们从浏览器渲染过程来解析下。 不同浏览器使用内核不同,所以他们渲染过程也是不一样。目前主要有两个 webkit渲染过程 ? Gecko渲染过程 ?...因此,CSS加载是会阻塞Dom渲染。 由于js可能会操作之前Dom节点和css样式,因此浏览器会维持html中css和js顺序。因此,样式表会在后面的js执行前先加载执行完毕。...那么,正如我们上面讨论过css会阻塞Dom渲染和js执行,而js会阻塞Dom解析。...总结 由上所述,我们可以得出以下结论: css加载不会阻塞DOM树解析 css加载会阻塞DOM树渲染 css加载会阻塞后面js语句执行 因此,为了避免让用户看到长时间白屏时间,我们应该尽可能提高

4.4K40

翻译 | 关键CSS和Webpack: 减少阻塞渲染CSS自动化解决方案

GivenCui) 校对者: veizz "消除阻塞渲染CSS和JavaScript"。...我们可以做很多事情来减少阻塞渲染JavaScript,例如code splitting、tree shaking,缓存等。 但是如何减少阻塞渲染CSS?...为此,可以拆分并优先加载首次渲染所需要CSS(关键CSS),然后再加载其它CSS。 可以通过编程方式筛选出关键CSS,在本文中,我将向你展示如何通过Webpack自动化流程来实现该方案。...你可以这么做,但是阻塞渲染也不是全无优点,我们实际上可以利用它。如果页面渲染时没有加载任何CSS,我们会遇到丑陋"内容闪现"。 ?...我们想要完美解决方案就应该是:首屏相关关键CSS使用阻塞渲染方式加载,所有的非关键CSS在首屏渲染完成后加载。

1.9K80

【总结】关于 JS 与 CSS 是否阻塞 DOM 渲染和解析

简单阐述一下浏览器解析渲染过程,解析DOM生成DOM Tree,解析CSS生成CSSOM Tree,两者结合生成render tree渲染树,最后浏览器根据渲染渲染至页面。...因此CSS不会阻塞页面DOM解析,但是由于render tree生成是依赖DOM Tree和CSSOM Tree,因此CSS必然会阻塞DOM渲染。...更为严谨一点说,CSS会阻塞render tree生成,进而会阻塞DOM渲染。...倘若在决定渲染页面时,还有尚未加载完成CSS样式,只能等待其加载完成再去渲染页面。 Body 内 CSS 来看一个较为特殊情况。...CSS不会阻塞DOM解析,但是会阻塞DOM渲染,严谨一点则是CSS会阻塞render tree生成,进而会阻塞DOM渲染 JS会阻塞DOM解析 CSS会阻塞JS执行 浏览器遇到标签且没有

1.4K10

第 004 期 提高页面渲染速度 3 个 CSS 技巧

提到提高页面渲染速度,我们第一想到是优化 JavaScript。其实通过优化 CSS 也能提高页面渲染速度。 优化方案 1....延时渲染屏幕外内容 - content-visibility: auto 很长页面会有大量内容在屏幕外。如果只渲染屏幕内内容,屏幕外内容在出现时才渲染,能大大节约渲染时间。...CSS Containment Module Level 2 模块 新增了 content-visibility 属性。这个属性能推迟选择HTML元素。...当发生滚动时,元素出现,被渲染后高度也会相应更新,此时滚动条行为会以非预期方式进行。解决这个问题,可以设置元素未渲染高度: contain-intrinsic-size: 未渲染高度。...就可以提高页面渲染速度4个技巧 仅使用CSS提高页面渲染速度 MDN:will-change

53501

Dom树 CSS渲染树(render树) 规则、原理

首先你要了解浏览器渲染顺序: 1.构建dom树 2.构建css树 3.构建渲染树 4.节点布局 5.页面渲染 什么是dom 树? 浏览器将HTML解析成树形数据结构,简称DOM。...看着有点像 less 写法(less这种预处理语言,就是借用DOM树思想,来将less这种语法结构,转译成普通css语法,最终我们用还是普通css语法构成css文件)。...下面是渲染引擎在取得内容之后基本流程:   1.解析html为dom树,解析css为cssom。渲染引擎开始解析html,并将标签转化为内容树中dom节点。   2....把dom和cssom结合起来生成渲染树(render)。接着,它解析外部CSS文件及style标签中样式信息。这些样式信息以及html中可见性指令将被用来构建另一棵树——render树。...所以,DOM树要小,CSS尽量用id和class,千万不要过渡层叠下去。 构建渲染树   当我们生成 DOM 树和 CSSOM 树以后,就需要将这两棵树组合为渲染树。 ?

3.9K40

js执行会阻塞DOM树解析和渲染,那么css加载会阻塞DOM树解析和渲染

DOM树解析和渲染 假设结果: 在bootstrap.css还没加载完之前,下面的内容不会被解析渲染,那么我们一开始看到应该是白屏,h1不会显示出来。...可以得知,此时DOM树至少已经解析完成到了h1那里,而此时css还没加载完成,也就说明,css并不会阻塞DOM树解析。 2.css加载会阻塞DOM树渲染吗?...由上图,我们也可以看到,当css还没加载出来时候,页面显示白屏,直到css加载完成之后,红色字体才显示出来,也就是说,下面的内容虽然解析了,但是并没有被渲染出来。所以,css加载会阻塞DOM树渲染。...因为你加载css时候,可能会修改下面DOM节点样式,如果css加载不阻塞DOM树渲染的话,那么当css加载完之后,DOM树可能又得重新重绘或者回流了,这就造成了一些没有必要损耗。...所以我干脆就先把DOM树结构先解析完,把可以做工作做完,然后等你css加载完之后,在根据最终样式来渲染DOM树,这种做法性能方面确实会比较好一点。 3.css加载会阻塞js运行吗? ​

2.3K20

如何删除渲染阻止JS 和 CSS以提高网站速度

因此,它们会大大降低您网站速度。 这可能会让读者感到沮丧。因此,在本指南中,我们将探讨如何查找和删除这些渲染阻止脚本,并向您展示如何提高 WordPress 网站加载速度。...这会减慢渲染速度。 您可以使用async属性与网页并行加载脚本,并在它可用时立即执行。或者,您可以利用defer属性来延迟脚本解析。...这意味着它还将加载与网页并行脚本,但仅在浏览器解析网页时执行它。 我们建议您不要在用于渲染和显示视觉元素脚本上使用async或defer属性。...消除所有不必要脚本 JS 和 CSS 目的是将功能扩展到网页,并在 HTML 不能地方添加逻辑。然而,HTML 5.3 带来了新标签,这将使一些 CSS 和 JS 操作变得不必要。...它允许您检测阻塞渲染 JavaScript,然后延迟它或异步加载它。 ---- 那么为什么我们不首先推荐插件呢?不幸是,其中一些插件会花费你。例如,Autooptimize 每年花费 49 美元。

2.9K20

一个可能让你页面渲染速度提升数倍CSS属性

浏览器在接收到服务端返回 HTML 之后,需要把这段数据渲染成用户看到页面,在开始渲染第一个元素之前可能还需要经过很多步骤。这个过程会适用于整个页面,包括当前不可见内容。...所以在首屏渲染时,是有很大一部分时间花费在用户不可见内容上,实际上这部分数据我们没必要在首屏就把它们渲染出来。...CSS Containment 是一种规范,它主要目的就是在页面渲染过程中通过忽略文档中某些子树来提高页面的渲染性能。...因此如果开发者能把这个信息通过 CSS 告诉浏览器,那么浏览器就不需要再去考虑其他元素了。CSS Containment 模块中提供 contain 属性就为我们提供了这种能力。...content-visibility css contain 是一个很棒属性,但是我们不太容易判断要选取它哪个值。

75320

仅使用CSS就可以提高页面渲染速度4个技巧

在这种情况下,我们可以使用内容可见性( content-visibility )来跳过屏幕外内容渲染。如果你有大量离屏内容,这将大大减少页面渲染时间。...与滚动条行为有关问题。 由于元素初始渲染高度为0px,每当你向下滚动时,这些元素就会进入屏幕。实际内容会被渲染,元素高度也会相应更新。这将使滚动条行为以一种非预期方式进行。...之后,它将该元素渲染与其他优化一起委托给GPU。这将使动画更加流畅,因为GPU加速接管了动画渲染。...为了完成这种响应式特性,我们必须根据媒体尺寸编写新样式。当涉及页面渲染时,它无法启动渲染阶段,直到 CSS对象模型(CSSOM)已准备就绪。...CSS最近一个特性:content-visibility,在未来几年里看起来是如此有前途,因为它给页面渲染带来了数倍性能提升。

71810
领券