Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS正在减慢页面呈现速度_Html_Dom_Css - Fatal编程技术网

Html CSS正在减慢页面呈现速度

Html CSS正在减慢页面呈现速度,html,dom,css,Html,Dom,Css,我们有一个页面,用户最多可以浏览2000个配置文件,当用户滚动到页面底部时,我们会添加20个配置文件。500个元素之后,配置文件的添加速度变慢,1000个元素之后,很难向下滚动我们最初认为这是太多DOM对象的结果,但调试后发现,如果我们从页面滚动中删除CSS,直到2000个概要文件之前,实际问题是CSS。有人能告诉我为什么CSS会这样做吗?以及我们如何改进它以显示2000个配置文件 我们的配置文件只包含一个图像,没有文本 CSS如下所示 .profileCard { width: 25rem

我们有一个页面,用户最多可以浏览2000个配置文件,当用户滚动到页面底部时,我们会添加20个配置文件。500个元素之后,配置文件的添加速度变慢,1000个元素之后,很难向下滚动

我们最初认为这是太多DOM对象的结果,但调试后发现,如果我们从页面滚动中删除CSS,直到2000个概要文件之前,实际问题是
CSS
。有人能告诉我为什么CSS会这样做吗?以及我们如何改进它以显示2000个配置文件

我们的配置文件只包含一个图像,没有文本

CSS如下所示

.profileCard {
  width: 25rem;
  height: 10rem;
  float: left;
}
.profileCard .imageHolder {
  width: 9.9rem;
  height: 9.9rem;
  float: left;
}
.profileCard .imageHolderSecondary {
  height: 100%;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.profileCard .imageHolderSecondaryTwo {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.imageCard .profileCard {
   width: 18.75rem;
   height: 18.75rem;
   background-color: white;
}
.imageCard .profileCard .imageHolder {
   width: 100%;
   height: 100%;
 }
.imageCard .profileCard .imageHolder .profileImage {
   min-width: 18.75rem;
   min-height: 18.75rem;
 }
HTML

<div class="profileCard">
  <div class="imageHolder">
    <div class="imageHolderSecondary">
      <div class="imageHolderSecondaryTwo"> 
        <div class="profileImageContainer"> 
          <img id="imageUrl" class="profileImage" src="http://graph.facebook.com/xyz/picture?type=large" title="undefined"></img> 
        </div> 
       </div> 
      </div>
    </div>
  </div>
</div>

将REM的用法更改为EM,您应该会没事的。考虑到REM是CSS3的一个特性,它没有得到广泛的支持,也没有得到广泛的优化


为如何有效使用EMs提供了一个很好的解释,并讨论了REMs。

这是一个非常有趣的问题。在查看代码之后,我认为如果为100%元素设置显式大小,可以加快速度。我相信每次加载其中一个元素时,浏览器必须不断地重新解析dom,以计算出100%的大小。尝试静态大小是一个简单的测试,看看这是否是正确的方向。

你的目标是什么样的布局,因为浮动似乎过多,尤其是没有清除的迹象。浏览器可能会有一场噩梦,处理所有这些浮动定位计算


编辑:不完全相同的情况,但似乎其他人也有类似的webkit相关问题。我不知道QT是什么,但它似乎是一个非常类似的口吃滚动条问题

你能做一个测试用例吗?我想说完全一样的话。REM是CSS3。我会在那里调查。我也试过em,结果还是一样的。我们使用rem,因为这是我们网页的一部分。因为在页面中,字体大小在不同的级别上发生变化,所以我想使用rem全局控制不同组件的大小。如果我使用em,全局控制组件将是一件令人头痛的事情。@thirtydot您能否指导如何使测试用例仍然保持相同的结果:(在您提供的HTML中,您有一个太多的
标记。这是否相关?您能否提供一个我们可以访问和修补的示例?可能是一个包含所有2000个条目的静态HTML页面,或类似的页面?我们的目标是图像网格视图。嗯,可能从浮动块切换到内联块,大多数浏览器现在都支持它。无论如何,f或者测试一下删除浮动,看看它能做什么?向左浮动是个问题,删除它就解决了问题。谢谢。我基本上设置了。profileCard显示:inline block;然后因为facebook个人资料图像是固定大小,所以显式指定宽度。如果你不知道图像的大小,我可能会使用jQuery来捕捉图像加载后,显式地将其设置一次,设置一次并保留它将比重新计算的强度小得多。如果这没有帮助,请发布一个连线布局,我会找出css