Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用CSS提高网站性能的30种方法

使用CSS提高网站性能的30种方法

原创
作者头像
艾编程
发布于 2022-12-30 13:18:17
发布于 2022-12-30 13:18:17
3.8K00
代码可运行
举报
文章被收录于专栏:艾编程艾编程
运行总次数:0
代码可运行

根据httparchive.org的页面重量报告,CSS在平均70个请求和2MB的网页上占7个HTTP请求和70Kb的代码。这并不是网站性能糟糕的最坏原因(我正看着你呢,JavaScript),但CSS面临着特定的挑战:

  • CSS会阻止渲染:每个 <link> and @import halts other downloads while the browser downloads and parses the required CSS file.
  • CSS可以请求其他资产:CSS可以引用图像、视频、字体和其他CSS文件,这会导致附加下载的级联。
  • CSS代码随时间增长:识别未使用的样式可能很有挑战性,删除错误的样式会导致混乱。开发人员采取简单的方法,向不断增长的样式表添加更多属性。文件越大,下载和处理时间就越长。
  • CSS影响渲染:浏览器分三个阶段呈现页面:布局(元素尺寸)、绘画(文本、颜色、边框、阴影等)、和复合(定位)。某些CSS属性会触发所有三个阶段,这可能会降低性能。

下面的30个技巧将帮助您优化CSS,以改善实际和感知的响应时间。

1.使用CSS性能分析工具

衡量是确定业绩机会和评估收益的唯一途径。所有浏览器都提供DevTools面板,通常通过“更多工具”菜单或键盘快捷键Ctrl打开|按下Cmd + Shift +i或F12组合键。

“网络”面板是一个很好的起点,刷新后,它会显示资源下载的瀑布图:

较长的条突出显示加载缓慢或渲染受阻的资源(如上图中的白色块所示)。

该灯塔Chrome、Edge、Brave、Opera和Vivaldi中提供的面板可以评估核心Web重要指标并提出绩效建议:

相同的浏览器还提供了一个覆盖面板来帮助定位未使用的CSS属性,如红色边框所示:

请注意,未使用的样式指示符:

  • 刷新或导航到新页面时重置,以及
  • 计算一段时间内的样式使用情况。所需样式可能看起来未使用,因为未以特定方式查看或使用构件。

大多数DevTools还提供性能面板。它们最常用于JavaScript评估,但也可以在应用CSS时识别CPU和布局峰值。

在线性能工具还可以报告一系列CSS改进因素:

  • 打开重放:https://www.openreplay.com/
  • 谷歌PageSpeed洞察:https://pagespeed.web.dev/
  • 网页测试
  • [Pingdom网站速度测试:https://tools.pingdom.com/

2.快速间接改进CSS

您可以在不接触任何代码的情况下进行性能改进:

  • 迁移到更好、更快的Web主机或考虑使用内容交付网络(CDN)
  • 启用GZIP或更好的压缩
  • 活动HTTP/2或更高版本
  • 确保浏览器可以通过设置适当的HTTP头缓存CSS,例如 Expires, Last-Modified, and ETag.

3.预加载样式表

该<链接rel ="预加载">标记允许您在引用CSS之前启动下载。当样式表引用出现在其它资源之后,或者您已经嵌套了@导入指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>

<!-- preload CSS file -->
<link rel="preload" href="styles.css" as="style" />

<!-- more code -->

<!-- use preloaded styles -->
<link rel="stylesheet" href="styles.css" />

4.删除未使用的样式和文件

删除所有不使用的样式表。您可能能够识别不再使用的页面、小部件或框架代码。如果您将样式表拆分为具有明确责任级别和适当文档的单独文件,则此任务会更容易。

以下工具可以通过分析HTML和CSS来识别冗余代码:

  • 联合国中央支助系统:https://github.com/uncss/uncss
  • 清除CSS:https://purgecss.com/
  • 未使用CSS:https://unused-css.com/

单独的HTML分析通常是不够的,但是您可以配置白名单样式,比如那些由JavaScript激活的样式。

5.删除CSS攻击和回退

旧的代码库可能有一系列笨拙的IE黑客和后备,试图修复布局问题或启用现代CSS属性。该应用程序的最后一个版本是在十年前发布的,现在已不再受支持。是时候删除代码了。

即使你很不幸有很大比例的IE用户,许多CSS黑客使浏览器变慢。

6.使用fonts

使用OS字体可以保存数百KB,并避免出现诸如无样式文本闪烁(FOUT)或不可见文本闪烁(FOIT)等问题。您的用户可能根本不会注意到。当然,你的设计师会...

7.删除不必要的字体

标准字体需要为每种粗细和样式创建单独的文件。您可以删除那些不常用的。

同样,您不太可能需要字体中的所有字符和字形。可以使用以下工具生成字体子集字体松鼠或指定所需的字符谷歌字体例如,加载"OpenReplay"的Oswald字体字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="https://fonts.googleapis.com/css2?family=Oswald&text=OpenReplay" rel="stylesheet">

您还可以考虑可变字体。它们使用矢量插值定义了各种样式、权重和斜体。该文件稍大,但只需要一种字体而不是多种字体。

8. Host font files locally

引用Google字体很容易,但额外的DNS查找、生成子集和跟踪使用情况会带来性能成本。本地托管字体的下载和呈现速度明显更快。

Web开放字体格式2.0(WOFF2)是您唯一需要的文件版本。所有现代浏览器都支持这种字体,IE用户可以回到OS字体。

您还应该在CSS中定义适当的字体显示加载选项。以下选项可提供明显的性能提升:

  • 互换:使用第一个备用OS字体,直到Web字体可用。文本始终可读,但无样式文本的闪烁如果两个字符集具有不同的尺寸,则(FOUT)可能不一致。
  • fallback:FOIT和FOUT之间的折衷方案。文本在100ms内不可见。然后使用Web字体(如果可用)。否则,它将恢复为交换。
  • 可选:与回退相同,只是在下载Web字体后不进行字体交换。它应该出现在下一个页面加载。

9.使用HTML<链接>而不是CSS @导入

@ import at-rule允许您在CSS中加载样式表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* main.css */
@import url("reset.css");
@import url("base.css");
@import url("grid.css");

这允许您将样式表拆分为更小、更易于管理的样式表,但是每个@import都会阻塞渲染。浏览器必须依次下载和解析每个文件。

使用HTML<链接>标记效率更高,因为每个样式表都是并行加载的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="grid.css">

或者...

10.捆绑和缩小样式表

HTTP/2可以比HTTP/1.1更好地服务于多个样式表,但是单个文件需要一个头,并且可以更有效地进行gzip压缩和缓存。您可以在开发过程中使用任意数量的文件,但是要使用构建步骤来捆绑和缩小到单个样式表中。包括Sass预处理器或PostCSS导入插件在内的工具可以在一个命令中完成这项艰巨的工作。

11.使用现代CSS布局

较早的布局技术,如浮动和,我敢说,HTML<表>是笨重的,难以管理,并需要大量的代码来管理间距和媒体查询。如果您的代码库中仍然有它们,那么是时候切换到:

  • CSS列:https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Multiple-column_Layout。用于类似报纸的文本栏。
  • CSS Flexbox:https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Flexbox.对于一维布局,可以选择换行到下一行。适用于菜单、图片库、卡片等。
  • CSS网格:https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Grids。对于具有显式行和列的二维布局。非常适合页面布局。

所有这些都更易于开发,使用更少的代码,渲染更快,并且可以适应不同的屏幕大小,而无需媒体查询。

非常旧的浏览器不支持这些属性,它们将每个元素显示为一个标准块。这导致了一个更简单、更快的类似移动设备的线性布局,而且几乎没有理由添加后备。

12.用CSS效果替换图像

尽可能使用CSS代码生成图形,而不是引用图像。现代的浏览器为复杂的形状提供了渐变、带图案的边框、圆角、阴影、滤镜、叠加、混合模式、蒙版、剪切和伪元素。

CSS效果使用的带宽要少得多,可重复使用,易于修改,并且通常可以制作动画。

13.从不嵌入base64编码的位图

您可以使用base64编码将图像嵌入到CSS中,base64编码将像素转换为文本字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.imgbackground {
 background-image: url('data:image/jpg;base64,0123456...');
}

该技术减少了HTTP请求,但可能会损害CSS性能:

  • base64字符串通常比二进制数据大30
  • 浏览器需要额外的步骤来解码字符串,并且
  • 修改一个像素会使整个CSS文件无效,因此必须重新下载。

只有当图像很小,生成的字符串不比URL长多少时,才考虑base64编码。

14.尽可能使用SVG

“可缩放矢量图形”包含绘图指令,例如“在此点绘制一个半径为50个单位、红色填充和蓝色3个单位边框的圆”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 120 120">
 <circle cx="60" cy="60" r="50" stroke-width="3" stroke="#00f" fill="#ff0" />
<svg>

它们是徽标和图表的理想选择,在任何分辨率下都很好看,并且文件大小应该比位图小。

在可行的情况下,您可以将SVG直接内联到CSS代码中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.svgbackground {
 background: url('data:image/svg+xml;utf8,<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 120 120"><circle cx="60" cy="60" r="50" stroke-width="3" stroke="#00f" fill="#f0" /></svg>') center no-repeat;
}

这将增加样式表的大小,但对于必须立即显示的较小的可重用图标来说,这很有用。

15.使用CSS设置SVG样式

直接将SVG代码嵌入到HTML中通常更有用和有效,例如。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<main>
 <svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 120 120">
   <circle cx="60" cy="60" r="50" stroke-width="3" stroke="#00f" fill="#ff0" />
 <svg>
</main>

这将SVG放入DOM中。SVG的属性具有低特异性,并且可以在CSS中覆盖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* change to green and black */
circle {
 stroke-width: 10px;
 stroke: #000;
 fill: #0f0;
}

您可以:

  • 从HTML中删除SVG样式属性
  • 对不同的节或页使用具有不同样式的相同图像,以及
  • 动画任何CSS属性。

开源会话重放

OpenReplay是一个开源会话回放套件,可让您查看用户在Web应用上执行的操作,从而帮助您更快地解决问题。OpenReplay是自托管的,可以完全控制您的数据。

开始享受调试体验-开始免费使用OpenReplay。

16.成为CSS框架的牺牲品

CSS框架在你开始web开发时是很有帮助的。他们提供了一套有吸引力的风格,所以你可以迅速成为生产力。缺点?......

  • 框架可以包含大量代码,但您可能只使用了可用样式中的一小部分。在可能的情况下,检查您是否包含所需的功能,而不是更多。
  • 当框架样式不完全符合您的需要时,覆盖框架样式可能会很有挑战性。结果是两组样式,而实际上只需要一组样式。

17.预处理代码生成

CSS预处理器(如Sass)通过提供变量、循环、函数和mixin等语言构造,使CSS开发受益匪浅。也就是说,一定要检查生成的代码,以确保它与您自己编写的代码一样简洁。特别是,深度嵌套的结构可能会导致过于复杂的选择器,从而使样式表变得庞大。

18.简化您的选择器

现代浏览器解析长选择器没有问题,但是降低复杂性将减小文件大小,提高性能,并使代码更易于维护。

您还应该考虑新的:is、:where和:has选择器,它们可以像这样转换CSS选择器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
article section.primary:not(:first-child) h1,
article section.primary:not(:first-child) h2,
article section.primary:not(:first-child) p,
article section.secondary:not(:first-child) h1,
article section.secondary:not(:first-child) h2,
article section.secondary:not(:first-child) p {
 color: red;
}

变成一句简洁的话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
article section:not(:first-child):where(.primary, .secondary) :where(h1, h2, p) {
 color: red;
}

19.避免昂贵的属性

某些CSS属性比其他属性需要更多的处理。将这段代码添加到样式表中,看看滚动是如何变得不稳定的!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*, ::before, ::after {
 box-shadow: 3px 5px 5px rgba(0,0,0,0.3);
}

以下特性触发CPU密集型绘制计算:

  • position: fixed
  • border-radius
  • box-shadow
  • text-shadow
  • opacity
  • transform
  • filter
  • backdrop-filter
  • background-blend-mode

这并不是说您不应该使用它们,但是在将这些属性应用于许多元素时要谨慎。

20.使用CSS转换和动画

CSS过渡和动画将比JavaScript支持的效果更平滑,后者改变了相同的属性。但是,最好避免对触发重新布局的属性进行动画处理,例如尺寸(宽度、高度、填充、边框)或位置(顶部、底部、左侧、右侧、边距)。这会导致整个页面在每个动画帧上重新布局。

有效的动画特性包括:

  • opacity
  • filter模糊、对比度、阴影等。
  • transform:平移(移动)、缩放、旋转等。

浏览器可以使用硬件加速的GPU在自己的图层中渲染这些效果,这只会影响最终的合成渲染阶段。

通过使用将元素从页面流中取出,可以提高其他动画属性的性能位置:绝对。

21.用途意志改变必要时

该意志改变性质警告浏览器某个元素将以特定方式进行动画处理,以便浏览器可以提前进行优化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.animatedelement {
 will-change: transform, opacity;
}

可以设置任意数量的逗号分隔值。

改变意愿应该作为解决特定性能问题的最后手段。不应将其应用于太多的元素或在页面加载时立即启动动画。给予浏览器一点时间进行优化。

22. @transkey_groupall~trans

HTTP协议保存-数据标题指示用户已请求缩减的数据。浏览器可能会将此选项标记为"lite"或"turbo"模式,当启用此选项时,会显示保存-数据标头随每个浏览器请求一起发送:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /main.css HTTP/2.0
Host: mysite.com
Save-Data: on

服务器可以检测报头并相应地作出响应。例如,它可以提供更简单的CSS文件,该文件具有使用OS字体、块颜色和更少图像的线性布局。

服务器必须在修改请求时返回以下标头,以确保轻量级CSS文件在用户停用时不会被重用保存-数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Vary: Accept-Encoding, Save-Data

客户端JavaScript还可以检测保存-数据选项卡页面上创建或编辑条目.下面的代码添加全用户体验类添加到<超文本标记语言>元素时保存-数据是启用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if ('connection' in navigator && !navigator.connection.saveData) {
 document.documentElement.classList.add('fullUX');
}

然后,样式表可以应用适当的样式,而无需任何服务器交互:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* no hero image by default */
header {
 background-color: #ceb;
 background-image: none;
}

/* hero image when Save-Data is not enabled */
.fullUX header {
 background-image: url('bigimg.jpg');
}

prefers-reduced-data media查询提供了一个仅CSS的替代方案,尽管目前还没有任何浏览器支持它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* no hero image by default */
header {
 background-color: #ceb;
 background-image: none;
}

/* hero image when no Save-Data */
@media (prefers-reduced-data: no-preference) {
 header {
   background-image: url('bigimg.jpg');
}
}

23.考虑关键内联CSS

Tools such as Lighthouse may recommend you "inline critical CSS" or "reduce render-blocking style sheets. " by:

  • 标识页面加载时可见的折叠上方元素所使用的基本样式。
  • 将关键CSS内联到 <style> tag in your <head>.
  • 异步加载剩余的CSS以避免阻塞页面的呈现。

下面的示例将剩余的CSS作为"打印"样式表,浏览器以较低的优先级异步加载。该加载代码在下载后将其切换回所有媒体的标准样式表。该<诺斯克文>确保在未启用JavaScript的情况下仍然加载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<head>

<!-- critical styles -->
<style>
 body { font-family: sans-serif; color: #111; }
</style>

<!-- load remaining styles -->
<link rel="stylesheet" href="main.css" media="print" onload="this.media='all'">

<noscript>
 <link rel="stylesheet" href="main.css">
</noscript>

<head>

该技术显著提高了性能,并可能有利于具有一致界面的网站或单页面应用程序。较大的站点可能更具挑战性:

  • 要识别折叠是不可能的--每个设备都不一样。
  • 具有不同页面布局的站点需要不同的关键CSS。
  • 该技术只对用户的第一页加载有益。后续页面加载可以使用缓存的样式表,因此内联CSS是不必要的,并且会降低性能。

如果您有一个小型站点,可以可靠地自动化构建过程,或者有一个单页应用程序,请考虑关键的CSS。

24.创建针对设备的样式表

包含所有设备代码的单个(构建)样式表对于大多数站点都是实用的。然而,如果你的代码库很大,或者移动的和桌面设计有很大的不同,你可以创建特定于设备的样式表,例如。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- core styles for all devices -->
<link rel="stylesheet" href="core.css">

<!-- served to screens less than 400px wide -->
<link rel="stylesheet" media="(max-width: 399px)" href="mobile.css">

<!-- served to screens 400px or wider -->
<link rel="stylesheet" media="(min-width: 400px)" href="desktop.css">

25.考虑CSS遏制

CSS包含通过允许您标识页的独立子树来提高性能。然后浏览器可以优化特定DOM内容块的呈现过程。

该集装箱属性支持以空格分隔的列表形式显示以下一个或多个值:

  • none:无包含(默认)
  • layout:将元素与页面的其余部分隔离:其内容不会影响其他元素的布局
  • paint:将元素裁剪为特定大小而不出现任何可见溢出
  • size:元素的行内和块尺寸与内容无关-无需计算子元素的大小
  • inline-size:类似于 size but applies to inline dimensions only.

还提供了两个特定值:

  • strict:应用所有包含规则,除了 none
  • content:应用 layout and paint

考虑一个具有长<乌尔>列表设置为包含:严格;。更改任何子项的内容时<里>,浏览器将不会重新计算该项目、列表中的其他项目或页面上的任何其他元素的大小或位置。渲染速度更快。

26.尝试渐进式渲染

渐进式呈现是一种为每个页面和组件定义单独样式表的技术。这将有利于具有大量CSS的大型站点,这些站点的页面具有不同的设计或由一系列组件构成。

  • 不需要在第一个页面加载时为不使用的组件下载一个包含CSS的大型样式表。
  • 对一个组件的样式所做的更改不会影响其他缓存文件。

你可以领养原生Web组件或在组件出现在HTML中之前立即引用较小的CSS文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
<!-- core styles -->
<link rel="stylesheet" href="core.css" />

<!-- header -->
<link rel="stylesheet" href="header.css" />
<header>header content</header>

<!-- article -->
<link rel="stylesheet" href="article.css" />
<main>

  <h1>title</h1>

  <!-- widget -->
  <link rel="stylesheet" href="widget.css" />
  <div class="widget">widget content</div>

</main>

<!-- footer -->
<link rel="stylesheet" href="footer.css" />
<footer>footer content</footer>

</body>

大多数浏览器在HTML下载时呈现HTML。每个样式表<链接>都是呈现阻止的,但每个文件不应超过几千字节。

较旧的浏览器可能会显示一个空白页面,直到所有CSS都加载完毕,但总体影响应该不会比一个大的呈现阻塞样式表更糟。

27.采用web组件

本机浏览器Web组件提供了一种创建封装的、单一责任的自定义功能的方法。换句话说,您可以创建自己的HTML标记,例如<hello-world>,它与每个框架都兼容。

JavaScript框架引入了这些概念,但它们的组件从未真正与其他CSS或JavaScript分离。原生组件提供了一个Shadow DOM,它隔离了元素,因此样式和功能不会泄漏。优点:

  • 默认情况下,组件的CSS负责其样式。只有在使用该组件时才会下载和缓存它。
  • 组件CSS可以比页面CSS更简洁,因为它不需要复杂的或特定于位置的选择器。

组件仍然可以显示shadow:part元素,因此可以进行有限的外部样式设置。

28.使用良好实践开发技术

良好实践技术会不断发展、过期,并且因开发人员而异,但可靠的方法包括:

  • 将您的CSS组织成具有个人职责的较小文件,例如:页眉、页脚、表单元素、表格、菜单等。
  • 使用linting工具和浏览器DevTools确保设置有效的属性和值。
  • 使用以下工具自动化构建过程以构造单个样式表和自动刷新 浏览器同步.
  • 采用移动优先的方法。默认样式创建更简单、线性、类似移动设备的布局。当空间允许时,媒体查询和固有的网格布局可以应用更复杂的桌面设计。
  • 在移动的和桌面浏览器中彻底测试您的样式。至少,使用以下内容:
    • 桌面:Firefox、Chrome(Chrome、Edge、Brave、Opera或Vivaldi)和Safari浏览器
    • 移动的:Android上的Chrome和iOS上的Safari。
  • 记录您的代码。您不会记得自己在一个月内做了什么--其他开发人员将如何科普!带有示例组件的样式指南是理想的选择。

29.拥抱瀑布

CSS新手通常会尝试绕过全局名称空间,并分别设置每个组件的样式。CSS-in-JS框架通常在构建时创建随机类名,因此组件样式不会冲突。

最后,使用CSS级联比使用CSS级联更好。例如,你可以设置默认字体、颜色、大小、边框等。它们是普遍应用的,然后在必要时覆盖它们。这样可以减少重复,缩短样式表的长度,提高样式表的性能。

30.学会爱上CSS

一知半解大有帮助。现代CSS的几行代码可以取代和改进十年前需要复杂JavaScript的效果。您对CSS了解得越多,需要编写的代码就越少。

诚然,CSS很容易学习,但掌握起来很有挑战性。没有人期望您理解数百个属性,但是当您下次在Stack Overflow或ChatGPT上找到解决方案时,逐步浏览代码是值得的。扎实掌握CSS基础知识可以彻底改变您的工作流程、增强您的应用程序并显著提高性能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何提高CSS性能
结合现代网站的复杂性和浏览器处理CSS的方式,即使是适量的CSS也会成为设备受限、网络延迟、带宽或数据限制的瓶颈。因为性能是用户体验的一个至关重要的部分,所以必须确保在各种形状和尺寸的设备上提供一致的高质量体验,这也需要优化你的CSS。
coder_koala
2021/05/28
2.4K0
如何提高CSS性能
CSS 20大酷刑
在讲正文之前,看到了一篇「九边」大佬写的<笨功夫是普通人最后的依靠>文章. 其中有一些文字很打动我. 然后,秉承着「独乐乐不如众乐乐」的想法,给大家分享出来. 以下是我认为最好的一段文字,如果想看全文,可以搜索文章名字进行查阅.
前端柒八九
2023/09/10
4420
CSS 20大酷刑
仅使用CSS就可以提高页面渲染速度的4个技巧
一般来说,大多数Web应用都有复杂的UI元素,它的扩展范围超出了用户在浏览器视图中看到的内容。在这种情况下,我们可以使用内容可见性( content-visibility )来跳过屏幕外内容的渲染。如果你有大量的离屏内容,这将大大减少页面渲染时间。
夜尽天明
2023/03/15
8810
仅使用CSS就可以提高页面渲染速度的4个技巧
如何只使用CSS提升页面渲染速度
用户喜欢快速的 Web 应用。他们期望页面加载速度快,运行流畅。如果滚动时出现动画中断或延迟,用户很可能就会离开你的网站。作为一名开发者,你可以做很多事情来提升用户体验。本文主要介绍你可以用来提升页面渲染速度的 4 个 CSS 技巧。
深度学习与Python
2021/01/07
1.4K0
将 SVG 与媒体查询结合使用
在 HTML 文档中,我们可以根据视口的条件显示、隐藏或重新排列页面的某些部分。例如,如果浏览器窗口的宽度为 480 像素,我们可能会将导航从水平导航移动到垂直可折叠列表。将 SVG 与媒体查询一起使用时,我们可以做类似的事情。
玖柒的小窝
2021/09/12
6.9K0
将 SVG 与媒体查询结合使用
IT课程 CSS基础 019_HelloCSS
CSS(Cascading Style Sheets,层叠样式表)和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言。CSS 是一门样式表语言,用于为 HTML 元素添加样式,描述 HTML 文档外观,控制 HTML 文档元素的颜色、大小、字体、布局等。
zhaoJian.Net
2024/04/03
1640
IT课程 CSS基础 019_HelloCSS
初识HTML5和CSS3
HTML5不仅仅是HTML规范的最新版本,它也代表了一系列Web相关技术的总称,其中最重要的三项技术就是HTML5核心规范、CSS3(Cascading StyleSheet,层叠样式表的最新版本)和JavaScript(一种脚本语言,用于增强网页的动态功能)。
王凡汎
2020/04/02
4K0
【CSS】1995- 15个CSS 常见错误,请一定要注意避免
在不断发展的 Web 开发领域,掌握 CSS(层叠样式表)对于制作视觉上令人惊叹且响应迅速的网站至关重要。
pingan8787
2024/03/26
2370
【CSS】1995- 15个CSS 常见错误,请一定要注意避免
【Web前端】“CSS”第一步
CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。
一条晒干的咸鱼
2024/11/19
760
【Web前端】“CSS”第一步
掌握CSS引入方式:优化网页样式加载与性能
当谈到CSS(层叠样式表)的引入方式时,有多种方法可供选择,每种方法都适用于不同的情况和需求。本文将详细介绍各种CSS引入方式,以及何时以及如何使用它们来优化网页样式加载和性能。
海拥
2023/09/15
6400
掌握CSS引入方式:优化网页样式加载与性能
深入理解css中的link 和 @import
今天看八股文中,看到了一个面试题: 简明说一下 CSS 中 link 与 @import 的区别和用法?. 再经过实践之后, 决定写一篇文章, 一方面加深自己的理解,同时方便其他掘友进行学习.
心安事随
2024/07/29
2990
深入理解css中的link 和 @import
前端开发总结:如何优化网站性能?
学前端这么久了,从一无所知到web网页的开发,自己也是踩了巨多的坑,自己也在不断的摸索中,短时间内可能不会再做前端了,毕竟java是我的主方向。总结一下web网站在性能提升方面前端能做些什么优化,其中有结合一些资料,也有自己的经验之谈,毕竟不是专门学前端的,有不对的地方敬请多多指教。
beifengtz
2019/06/03
1.1K0
分享一个简单容易上手的CSS框架:Pure.Css
雅虎(Yahoo!)创建了一个简单的CSS框架,被称为Pure.css(https://purecss.io/),以提供一套基础样式集,可作为网页开发的起点。Pure.css旨在轻量、模块化和响应式,使构建快速加载、适用于任何设备的移动友好网站变得简单。在本文中,我们将讨论Pure.css的工作原理以及如何使用它。
前端达人
2023/10/22
1K0
分享一个简单容易上手的CSS框架:Pure.Css
【Web前端】HTML样式 - CSS
HTML 用于创建网页的结构。网页的所有内容,例如文本、图像、链接、表单等,都是通过 HTML 标签来定义的。以下是一个简单的 HTML 文档结构示例:
一条晒干的咸鱼
2024/11/19
3200
【Web前端】HTML样式 - CSS
CSS和网络性能
CSS对于呈现页面至关重要 - 在找到,下载和解析所有CSS之前,浏览器不会开始呈现 - 因此我们必须尽可能快地将其加载到用户的设备上。 关键路径上的任何延迟都会影响我们的“开始渲染”并让用户看到空白屏幕。
frontoldman
2019/09/03
1.4K0
CSS和网络性能
百度Web前端技术学院(1)-HTML, CSS基础
百度前端学院的第一次任务笔记,HTML、CSS 基础。主要有 CSS 工作原理,选择器的使用,常用属性,行高属性,盒模型与定位,最后根据设计图实现 4 个页面。
零式的天空
2022/03/22
1.1K0
CSS小技能:常用样式属性、选择器分类、盒子模型
CSS(cascading style sheets,层叠式样式表)是一种用来表现HTML 或XML 等文件样式的计算机语言,CSS文档以.css作为后缀 。
公众号iOS逆向
2022/08/22
2K0
CSS小技能:常用样式属性、选择器分类、盒子模型
优化 CSS 代码的12个小技巧
上述属性都是对性能要求比较高的。如果这些属性使用较少,那这就不是问题。但是如果一个页面出现几百次,那么整体的CSS可能会受到影响,所以要谨慎使用。
@超人
2023/05/12
5980
优化 CSS 代码的12个小技巧
CSS入门
我们发现,虽然标签的属性可以调整一些样式,但是效果不够理想,而我们更愿意把样式编写在<style> 标签中,让页面设计更美观更丰富,实际上,这是通过CSS实现的。那么什么是CSS呢?
楠羽
2022/11/18
4.1K0
CSS入门
HTML以及CSS初级操作
html是用来描述网页的一种语言,是一种超文本标记语言。也就是说,html不是编程语言。也就是说,html不是一种编程语言,仅仅是一种标记语言。
Nagato_Yuki
2019/07/16
2.7K0
相关推荐
如何提高CSS性能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验