html - 全宽图像,加载时停止布局更改

标签 html css responsive-design

我有一个显示在页面顶部的全宽图像。在图像加载之前,它的空间高度为 0,但在加载之后,它会向下推整个内容,从而造成令人不快的加载闪烁

这通常是通过 CSS 设置图像的 height 来解决的,这样图像的空间就会在 reserved图像加载后布局不会改变。在我的例子中,它不起作用(至少不是直接的),因为我不知道图像的高度:作为全宽图像,它的高度实际上由视口(viewport)的宽度决定。

img {
  width: 100%;
}

是否有任何纯 CSS 方法来解决此问题(仅在知道图像大小的情况下,在加载图像之前为图像保留空间)?

这是一个demo

LE: 我刚刚注意到,如果存在某种具有与图像相同属性的占位符元素(例如:在顶部添加一个具有相同宽度的元素),则可以解决此问题/height 作为源图像并且还具有 100% 宽度样式属性),这样图像所需的空间实际上将由该占位符元素使用。

最佳答案

就像我在评论中所说的那样,我不知道,我认为没有针对此问题的 css 解决方案,但我创建了 jQuery 解决方案,它可能会有所帮助,希望能做到:)

在加载图片之前将图片包裹到容器中并设置高度

$(function() {
  var originalW = 1920;
  var originalH = 800;
  var ratio = originalH / originalW;
  $(".image-wrap").css({
    height: $("body").width() * ratio
  })
});

DEMO

关于html - 全宽图像,加载时停止布局更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376561/

相关文章:

javascript - 我可以屏蔽网站图标吗?

javascript - 相同的 div 类具有不同的 css 样式

html - Bootstrap - 一行 3 列,标题在行外

css - 媒体查询问题。风景和肖像

c# - 使用 ASP.Net 实现多语言网站

html - 背景在手机上显示不正确

html - 如何使用CSS修复图像定位

css - 涵盖 IE < 9 中 CSS 下拉菜单的 YouTube 视频内容

html - CSS 宽度限制

javascript - 基金会 6 : Responsive Toggle no working