如何在图像加载前为可变大小的图像预留空间,以防止布局变化?
P粉936509635
P粉936509635 2023-08-28 00:04:44
[CSS3讨论组]
<p>我有一个包含文本、图像标签和一些文本的html页面,如下所示:</p> <pre class="brush:php;toolbar:false;">这是图像之前的文本。 &lt;img src="image.jpeg"/&gt; 这是图像之后的文本。</pre> <p>现在当页面加载时,由于图像加载需要更长的时间,文本会在图像之前加载。因此会出现布局变化,即图像之后的文本会紧接在图像之前的文本后面,如果图像尚未加载,则不会为图像预留任何空间。然而,当图像加载完成后,图像之后的文本会移到下方,即布局发生变化。如何在图像加载之前为图像预留空间,以避免布局变化?此外,图像标签中可以包含任何图像,并且图像大小也是动态的。页面上必须显示原始大小的图像。此外,由于我正在使用服务器端渲染,我事先知道要显示的图像的大小。我不能固定图像的高度和宽度,因为这会导致图像在显示大小更改时出现问题,图像将不再适应屏幕的大小。</p>
P粉936509635
P粉936509635

全部回复(1)
P粉722409996

1- 将您的图像放入一个容器中。

2- 给容器一个固定的 widthheight,以及一个固定的 min-heightmin-width,可以根据您的需要或图片的 分辨率 来设置。

就是这样。

不用担心js代码,我只是为了在3秒后显示图像,以帮助您理解我的意思。

var image = document.querySelector(".image");
image.style.display = "none";
setTimeout(() => {
    image.style.display = "block";
}, 3000);
.image-container {
  width: 350px;
  min-width: 350px;
  height: 250px;
  min-height: 250px;
  border: 1px solid red;
}

.image { 
  width: 350px;
  min-width: 350px;
  height: 250px;
  min-height: 250px;
}
 <h2 class="before">This is text before</h2>
 <div class="image-container">
  <img class="image" src="https://images2.minutemediacdn.com/image/fetch/w_850,h_560,c_fill,g_auto,f_auto/https%3A%2F%2Fwinteriscoming.net%2Ffiles%2F2021%2F11%2FCaraxes-850x560.jpeg" alt="">
 </div>
 <h2 class="after">This is text after</h2>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号