html - 响应式图像 - 为什么此场景中的图像没有响应式?
问题描述
感谢您的帮助!
我设置了 2 个图像 - 800X1000
图片 1:设置在一个容器中,设置为:宽度:100%。
我还设置的图像 - 宽度:100%
图 2:无容器套装,无特殊订单。
我为我的容器设置了一个边框 - 当调整屏幕大小时,大约 800px 标记 - 容器开始缩小并且没有采用我设置的 100% 宽度。(因此,图像也缩小了)。
一旦我删除了第 2 个图像,它就如预期的那样 - 占据屏幕的 100% 宽度。
这是为什么?为什么一旦我有两张图片,第二张图片基本上会导致缩小?
这是我的代码(没什么特别的,2 CSS 行)
.alon {
width: 100%;
border: 5px solid green;
}
.alon img {
width: 100%;
}
<div class="alon">
<img src="images/donald.jpg" alt="">
</div>
<img src="images/donald.jpg">
上面的 HTML。
解决方案
您的第二个图像没有样式,您基本上只是将图像放入主体容器中并且从未为其指定宽度。
使用您提供的代码,第二个图像将保持其默认宽度,而其中的图像.alon div
将采用其父容器的宽度。在这种情况下, 中的图像.alon div
占用浏览器的 100% 宽度,而其中的图像占用 100% 的宽度.alon div
。
我在下面包含了一个示例,该示例也将 100% 宽度应用于第二个图像。
body img {
width: 100%;
}
* {
box-sizing: border-box;
}
.alon {
width: 100%;
border: 5px solid green;
padding: 0px;
}
.alon img {
width: 100%;
padding: 0px;
}
body img {
width: 100%;
}
<div class="alon">
<img src="https://cdn.pixabay.com/photo/2020/10/28/11/08/castle-5693094__340.jpg" alt="">
</div>
<img src="https://cdn.pixabay.com/photo/2020/10/28/11/08/castle-5693094__340.jpg">
运行代码后,您会注意到第二张图片像您的第一张图片一样占据了浏览器的 100% 宽度。
如果您删除以下 CSS:
body img {
width: 100%;
}
第二个图像将恢复到其默认大小。
此外,为了进一步回答您的问题,由于您的第一张图片包含在具有 5px 绿色边框的 div 中,浏览器上的默认框大小不会将您的边框计算为声明的 100% 宽度的一部分,这反过来, 将使您的图像容器偏移 5px。
要使浏览器将 5px 边框计算为 100% 容器宽度的一部分,您可以box-sizing: border-box
对文档应用通用。
我已将其包含在上面的片段中以供参考。
推荐阅读
- javascript - 延迟的承诺链不起作用
- arrays - Scala 使用泛型类型重载运算符
- excel - Angular 5 上的 XLSX 缩小版?
- linux-kernel - perf_event_open:处理最后记录的样本
- node.js - 防止导入 es6 默认导出
- python - 如果不同的日子,将计数器重置为零 - Python
- ajax - Ajax - 替换内容
- ios - 将视差滚动添加到 UIPageViewController
- python - python:使用临时文件作为管道
- java - Intellij 创建具有令人兴奋的 sqlite 依赖项的 .jar 文件失败