有没有能控制 css 加载完毕后再加载 HTML 的呢?

现象:css文件是通过请求过来的,在页面加载先是显示乱序的HTML, 再显示正常的HTML

有没有能控制 css 加载完毕后再加载 HTML 的呢?

我是原生的 HTML

你的css是外部引入的,如果网速慢的话的确会出现你说的问题.

解决方法是在body中设置 style="display: none;"先让整个页面隐藏.
在外部css中最后加入body { display: block !important; } 当css加载之后再让页面显示出来.就可以避免加载时先是显示乱序的HTML的问题了

<!doctype html>
<html lang="en">
<head>
    <title> 页面名称 </title>
    <link rel="stylesheet" href="a.css"/>
</head>
<body style="display: none;">
    <p>text</p>
</body>
</html>

a.css中最后加入

body { display: block !important; }

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

可以啊。用ajax请求。
先引入css
在success里引入html

css放head标签中,js放body结束标签前,建议题主看下这篇文章,虽然有点老还是很有用的

img

css 放在head里面就行了,加载html的时候优先执行css,但是你的css应该是外部引入的吧,这样的话,如果网速慢的话加载就很慢,如果你将其下载下来本地引入,加载就很快了,如果你不想下载到本地,可以给你的页面做一个懒加载,加载css资源后再加载页面

css 放在head中就行啦

实现思路是,将html代码放到script模板或者其它b页面或者变量里面。
当前页面在全部加载完毕后调用获取到变量的html代码,添加到当前页面。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>

    <link href="StyleSheet1.css" rel="stylesheet" />
    <link href="StyleSheet2.css" rel="stylesheet" />
</head>
<body>
<script>
    $(document).ready(function () {
        var _html = '<p></p>';
        $("body").html(_html);
        })
</script>
</body>
</html>