【问题标题】:Force display inline for responsive images强制显示内联响应图像
【发布时间】:2013-02-11 22:15:43
【问题描述】:

我需要显示一个 5x3 的图像网格。无论屏幕分辨率如何,此网格都需要保持相同的格式和大小。图像本身将响应调整大小。

我有一个显示在这样的内联块中的图像列表:

<div class="gridView">
  <ul>
    <li>
      <img src="">
    </li>

    <li>
      <img src="">
    </li>

    <li>
      <img src="">
    </li>
  </ul>
</div>

CSS 是这样的:

.gridView {
    margin-left: auto;
    margin-right: auto;
    max-width: 1200px;
    text-align: center;
    width: 100%;
}

.gridView ul li {
    height: 100%;
    max-height: 150px;
    max-width: 200px;
    width: 100%;
}

现在,当我调整窗口大小时,网格不会保持它的大小固定。如何确保网格保持不变,但只有图像自己调整大小?

【问题讨论】:

  • 为什么它不起作用,因为width: 100% 将适用于小于1200px 的任何尺寸,因此当宽度小于1200px 时它会继续调整大小。如果您希望它保持静态,请将其设为 width: 1200px; 并删除 max-width

标签: css responsive-design inline


【解决方案1】:

如果你想保持布局结构不变,如:

[x] [x] [x] [x] [x]

[x] [x] [x] [x] [x]

[x] [x] [x] [x] [x]

那么您将不需要液体网格系统,而是需要液体图像。我要做的是:更改 .gridView ul li 样式,以便 您设置一个简单的高度和宽度声明,而不是最大高度和宽度。

.gridView ul li {
height: 150px;
width: 200px;
}

然后添加一个图像类以使图像具有响应性:

.img {
max-width: 100%
height: auto;
}

当然,图像文件的最大尺寸应为 150 像素 x 200 像素。

这样,您的网格不会随着您的浏览器宽度变小而折叠,并且您的图像会变小以适应网格。

希望这会有所帮助!

【讨论】:

  • 问题是,当我将 width: 1200px 分配给我的容器时,在调整窗口大小时,网格会变得黯淡,并且图像不会自行调整大小。
  • 让我们创建一个 jFiddle。发布您现在拥有的代码。我们将显示色块而不是图像。你会看到的。
  • 嗯,你的意思是将我现在拥有的代码发布到 jfiddle 中?问题是图像是通过 wordpress 动态生成的,如果我只复制其中的一部分,它不会加载图像
  • 没关系,我们将创建一个简化版本,不会使用您的图像将显示相同的结构。你的网站是什么?我可以从那里得到它。
  • 该站点仍在我的本地服务器上进行开发。我正在创建一个您之前建议的小色块示例。我会尽快把链接放在这里
【解决方案2】:

宽度:100%;将始终更改元素相对于父元素/窗口的大小。 对于固定宽度,您需要固定宽度。就那么简单 喜欢:

width: 1200px;

【讨论】:

  • 问题是,当我指定宽度:1200px 时,当调整窗口大小时,网格会变得黯淡,并且图像不会自行调整大小。
  • 很难想象你的意思,但我认为,图像不会自行调整大小,因为元素只能相对于父元素调整大小。只要你的一些父元素被修复,一切都会被修复。至少只有css。 JS也许可以处理它
  • 不是调整大小的部分对我不起作用,图像调整大小很好。然而,它是有问题的父容器。我应该改写这个问题,容器不会强制保持相同的布局。布局不是保持 5x3 然后强制图像调整大小,而是变成 4x5,然后是 3x6 等等,直到它的 1x7。我需要它一直保持 5x3
猜你喜欢
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 2019-08-26
  • 2012-10-27
  • 2016-05-21
  • 2016-02-11
相关资源
最近更新 更多