CSS 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?( 课前分享)

1. 什么是 FOUC (无样式内容闪烁) ?
1. 我们在进行软件项目开发时, 不知道大家有没有发现过这样一种奇怪的现象: 以无样式显示页面内容的瞬间闪烁;解释来说呢, 就是在我们进入页面时, 我们设置 CSS 样式 "没有生效", 过了那么一瞬间的时间, 我们设置的 CSS 样式突然又有效果了, 即生效了; 这种现象称之为" 文档样式短暂失效" (Flash of Unstyled Content), 简称为 FOUC 。
2. 产生 FOUC 的原因
1. 使用 import 方法导入样式表 。

2. 将样式表放在页面底部 。

3. 有几个样式表, 放在 html 结构的不同位置 。
3. 产生 FOUC 的原理
1. 当样式表 'CSS' 晚于结构性 'html' 加载, 当加载到此样式表时, 页面将重新渲染之前的页面样式 'css' 。 此样式表被下载和解析后, 将重新渲染页面, 也就出现了短暂的花屏(屏幕闪烁)现象 。
 
4. 解决方法
1. 使用 link 标签将样式表放在文档 head 中 。

2. 在 .html 文件中, 将样式写在 style 标签中, 并且放置位置在 body 标签之上 。

----------------------------------------------

第二种解决方案:

1. 使用 <link> 标签导入

使用 <link> 标签导入外部样式表文件:

<link href="001.css" rel="stylesheet" type="text/css" />

对各个属性的说明:
  • href 属性设置外部样式表文件的地址,可以是相对地址,也可以是绝对地址。
  • rel 属性定义关联的文档,这里表示关联的是样式表。
  • type 属性定义导入文件的类型,同 style 元素一样,text/css表明为 CSS 文本文件。

一般在定义 <link> 标签时,应定义 3 个基本属性,其中 href 是必须设置属性。

也可以在 link 元素中添加 title 属性,设置可选样式表的标题,即当一个网页文档导入了多个样式表后,可以通过 title 属性值选择所要应用的样式表文件。
提示:在 Firefox 浏览器中可以在菜单中选择“查看 --> 页面样式”选项,然后在子菜单中会显示 title 属性值,只需选择不同的 title 属性值,可以有选择地应用需要的样式表文件。IE 浏览器不支持该功能。

另外,title 属性与 rel 属性存在联系,按 W3C 组织的计划,未来的网页文档会使用多个 <link> 元素导入不同的外部文件,如样式表文件、脚本文件、主题文件,甚至可以包括个人自定义的其他补充文件。导入这么多不同类型、名称各异的文件后,可以使用 title 属性进行选择,这时 rel 属性的作用就显现出来了,它可以指定网页文件初始显示时应用的导入文件类型,目前只能关联 CSS 样式表类型。

外部样式是 CSS 应用的最佳方案,一个样式表文件可以被多个网页文件引用,同时一个网页文件可以导入多个样式表,方法是重复使用 link 元素导入不同的样式表文件。

2. 使用 @import 关键字导入


在 <style> 标签内使用@import关键字导入外部样式表文件:
  1. <style type="text/css">
  2. @import url("001.css");
  3. </style>

在 @import 关键字后面,利用 url() 函数包含具体的外部样式表文件的地址。

对比


两种导入样式表的方法比较:
  • link 属于 HTML 标签,而 @import 是 CSS 提供的。
  • 页面被加载时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载。
  • @import 只在 IE 5 以上才能识别,而 link 是 HTML 标签,无兼容问题。
  • link 方式的样式的权重高于 @import 权重。


一般推荐使用 link 导入样式表的方法,@import 可以作为补充方法使用。
posted @ 2022-06-21 18:20  请善待容嬷嬷  阅读(551)  评论(0编辑  收藏  举报