What Exactly Happens When Some CSS Code Found on the Footer
我知道CSS用于决定网页上的布局和其他样式。如果CSS在页面的底部,那么所有东西(HTML元素、文本、图像等)都将通过使用浏览器自己的样式来显示,当浏览器找到我们的CSS时,它会再次为我们重新设计页面。这可能叫做重新粉刷!
所以,我理解重新粉刷页面会很难看,而且用户看到它(非样式文本的快速闪现,专家命名)。但我还是想了解:
重新喷漆需要多长时间?大约值!我知道这取决于页面上的内容。还可能发生什么?
my main concerned right nowis about using FONT Awesome CSS file(external hosted on their own cdn which download css and FONT files).我想知道如果我把它放在页面的底部或者延迟它的加载,设备之间会发生什么?目前放在
link rel='stylesheet'href='http://netdna.bootstrapcdn.com/font-awome/4.0.3/css/font-awome.css'type='text/css'media='screen'
使用del,这样它就不会看起来是问题的主要部分。问题的主要部分是关于底部的一些CSS,那么在给定测量值或由测量值支持的情况下,重新喷漆、阻塞等会发生什么。
在上面的情况下,或者在只有部分文档会受到底部CSS影响的情况下,会发生什么?浏览器重新绘制所有内容,还有什么?需要多少时间。假设,放置在
我不知道当CSS位于底部时实际会发生什么。所以,如果你有任何视频或图像显示流程,请在这里提及。
所有这些都基于设备的性能,以及非课程用户体验。谢谢您。
更新:我为自己和每个人都准备了更多的东西。下面是一个函数(delayloadcss)google为下面的折叠内容推荐的css。虽然,我不会走极端,但如何做的字体可怕的类型的CSS?
根据我的经验,无论CSS出现在页面上的什么地方,它的加载几乎都是即时的——除了一个例子:应用CSS会导致浏览器延迟的是将CSS放在需要时间才能完成的脚本元素之后。
这就是为什么我们认为最好的做法是用脚本结束您的body部分,这样在浏览器提交处理脚本之前,您的页面将被呈现并设置样式。
因此,如果您的HTML如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 | <head> <link rel="stylesheet" type="text/css" href="/css/styles.css"> [long loading js] </head> <body> ... content [long loading js] </body> |
那么你的CSS仍然会立即应用。
但是,如果您这样构造它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <head> [long loading js] <style> [css here] </style> </head> <body> ... content [long loading js] </body> |
甚至
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <head> [long loading js] </head> <body> ... content [long loading js] <style> [css here] </style> </body> |
然后,在JS完成之前,您的CSS将不会应用于该文档。
第一个是最佳实践,我建议将样式标签完全保留在您的文档中,但一定要保留在您的文档正文中。放置在脚本标记上方的外部样式表是一种方法…这也适用于字体Awesome的外部托管CSS。除非链接出现在引起浏览器注意的脚本元素之后,否则浏览器不应继续渲染。
*编辑*
然而,这篇文章直接反驳了我刚才所说的。
CSS中有两个级联。
小级联:这是对单个样式表的分析
大级联:这是浏览器执行三个"小级联"的位置,顺序如下:
你的问题是,如果你把风格放在头以外的任何地方,会发生什么。让我们讨论一下:
简言之,浏览器按显示样式的顺序应用样式。页脚的样式表会使事情变得更糟,而不是更好。因为我没有你的样式表或网站,所以我不能提供更糟的量化指标。
所有浏览器都有fouc(或fout)。它的持续时间取决于浏览器的速度和样式表的质量。一种缩小的样式表,它在重置后立即应用文本样式,在其他样式之前,通常具有最少的FOUC。
页脚中的样式不会被阻止进行处理,它们也不会阻止
你的问题很有趣…但有一个问题:
CSS样式表必须放在
否则,您的HTML标记无效。然后,每个浏览器都可以以不同的方式处理它。
我很感激杰里米苏夫的回答,但是我也很想回答,希望它能帮助你。
大约需要一段时间来下载CSS文件(如果不是缓存的,也不是内联的)+片刻。这一刻取决于CPU、GPU、HD速度(如果缓存的话)和您已经提到的内容+脚本。在实际操作中,由于下载时间的原因,您不希望在正文末尾使用[link href="…"/]。
您也不希望使用内联样式,因为它们没有被缓存,这是另一段用户将使用HTML下载的代码,但是,此解决方案可以使用小型内联样式。实际上,它不会闪烁。
我建议使用以下模式:
head>main css>body>html>additional css>scripts如果脚本更改了元素的默认行为(例如阻止链接单击),我建议将脚本放在头中。
关于字体。在我看来,使用外部字体是一种糟糕的做法。但是,如果您愿意,字体最好包含在头部,因为您可能无法在样式标记中嵌入它们。所以这里出现了下载时间问题。
即使在手机上,10个图标对当今的CPU来说也算不了什么。
我的建议很简单:(如果跨设备,我也会考虑页面重量,因为移动网络速度较慢)