【问题标题】:Responsive image - why image in this scenerio is not responsive?响应式图像 - 为什么这种情况下的图像没有响应式?
【发布时间】:2021-02-15 19:15:36
【问题描述】:

感谢您的帮助!

我设置了 2 张图片 - 800X1000

图片 1: 设置在一个容器中,该容器设置为: 宽度:100%。

我还设置的图像 - 宽度:100%

图片 2: 无容器套装,无特殊顺序。

我为我的容器设置了一个边框 - 当调整屏幕大小时,大约 800px 标记 - 容器开始缩小,没有达到我设置的 100% 宽度。 (因此,图像也被缩小了)。

一旦我删除了第 2 个图像,它就如预期的那样 - 占据屏幕的 100% 宽度。

这是为什么呢? 为什么一旦我有 2 张图片,第二张图片基本上会导致缩小?

这是我的代码(没什么特别的,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。

【问题讨论】:

  • 考虑分享您的 html 吗?
  • 请分享一个有效的 sn-p 或 codepen 以便很好地解决您的问题。考虑添加预期行为的图像。
  • @Mr.Brickowski 我分享了我的 html。它真的很标准。只是一个

标签: html css responsive-design responsive responsive-images


【解决方案1】:

您的第二张图片没有样式,您基本上只是将一张图片放入主体容器中并且从未为其指定宽度。

使用您提供的代码,第二个图像将保持其默认宽度,而.alon div 中的图像将采用其父容器的宽度。在这种情况下,.alon div 中的图像占用了浏览器的 100% 宽度,而其中的图像占用了.alon div 的 100% 宽度。

我在下面提供了一个示例,该示例也将 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 中,因此浏览器上的默认 box-sizing 不会将您的边框计算为声明的 100% 宽度的一部分,反过来,这将使您的图像容器偏移 5px。

要让浏览器将 5px 边框计算为 100% 容器宽度的一部分,您可以将通用 box-sizing: border-box 应用于您的文档。

我已将其包含在上面的 sn-p 中以供参考。

【讨论】:

  • 您好,感谢您的回答!它认为我不清楚。我不想将第二张图片设为宽度的 100%。我的问题是 - 为什么如果我在正文中放置一个图像,并且我没有在 css 中指定任何内容 - 为什么它会导致第一个图像(设置为 100%)在浏览器较小时不占用 100%?发生的事情是,随着第二张图片的添加,在 px 之后,第一张图片不再占用 100%,它缩小了。
  • 如果第一张图片的宽度是100%,并且第一张图片周围的父div也有100%的宽度,那么第一张图片没有理由不占宽度其父 div。 - 如果您说的是真的,那么文档正文不能是浏览器的 100% 宽度,但我已经根据您提供的代码创建了一个示例,并向您展示了为什么不是这种情况。 - 随时更新您的代码并展示您所遇到的实际示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 2017-12-23
  • 2018-08-22
相关资源
最近更新 更多