【问题标题】:Responsive positioned image响应式定位图像
【发布时间】:2014-12-22 07:50:54
【问题描述】:

我想知道如何使一系列定位的图像响应窗口的尺寸?我不太确定图像本身是否需要是相对的,并且页面绝对环绕或相反。我一直在玩 jsfiddle,但似乎没有任何效果。作为参考,以下网站完成了我想要创建的效果-它完全响应窗口宽度:http://www.index-std.com/ressources/projets/guillaume_lorieux.html

我在这里设置了一个jsfiddle:http://jsfiddle.net/kenhimself/uz41Leno/

非常感谢!

CSS:

.a { top:0; left:20%; height:300px; }
.b { top:150px; right:0; height:250px; }
.c { top:400px; left:0; height:200px; }
.d { top:600px; left:50%; height:100px; }
.e { top:900px; right:20%; height:300px; }
.f { top:800px; left:10%; height:200px; }
.g { top:1300px; left:0; height:300px; }
.a, .b, .c, .d, .e, .f, .g { width:auto; }

div.page {  }
img { width:100%; height:100%; position:absolute; }
figure.thumbnail { width:100%; height:100%; position:relative; }
html, body { margin:0; padding:0; width:100%; height:100%; }

HTML:

<div class="page">
    <figure class="thumbnail">
        <img class="a" src="http://i62.tinypic.com/fxqe6g.jpg"/>
        <img class="b" src="http://i62.tinypic.com/2wgeutv.jpg"/>
        <img class="c" src="http://i61.tinypic.com/dptspl.jpg"/>
        <img class="d" src="http://i60.tinypic.com/2dv8mj6.jpg"/>
        <img class="e" src="http://i60.tinypic.com/208u109.jpg"/>
        <img class="f" src="http://i57.tinypic.com/2qdpvly.jpg"/>
        <img class="g" src="http://i58.tinypic.com/2u4ljmd.jpg"/>
    </figure>
</div>

【问题讨论】:

  • 你研究过媒体查询吗?
  • 嗨 rp.beltran -- 你所说的媒体查询是什么意思?
  • 它们是 CSS 块,仅在屏幕满足特定条件时应用(通常基于尺寸和设备类型)。 w3schools.com/cssref/css3_pr_mediaquery.asp 很好地涵盖了它们。根据您的目标,它们可能对您有用,但我认为您可能需要更持续的解决方案。

标签: html css image responsive-design


【解决方案1】:

我有updated your fiddle。从本质上讲,您需要摆脱静态尺寸声明并进行更多的相对/动态尺寸调整,例如 max-width 而不是 width

如果您希望做更多的事情,例如您的示例网站所做的事情,即在调整大小后让所有图像四处飞舞,那更像是一种类似于 javascript 的解决方案。

编辑

在给定的示例中,作者将他的图像包装在一个 div 中,并将宽度和位置设置为容器的百分比。当容器收缩时,包装器也会收缩。图片设置为100%,图片会相应缩小。

【讨论】:

  • 嗨,Jason,感谢您的编辑,但我认为有一点混淆。如果您查看index-std.com/ressources/projets/guillaume_lorieux.html,图像会保持其位置并且不会相互碰撞。这只能通过 CSS 完成吗?
  • 是的。使用 px 作为位置而不是百分比。没有混淆,我确切地知道您要做什么;)如果您在开发工具中观看该站点的容器元素,您会看到 div 绝对以 px 单位定位,然后在调整页面大小后,javascript重新定位它们。
  • 嗯,我将百分比更改为 px,但它似乎没有保持其位置并响应窗口的宽度。你能看看吗? jsfiddle.net/kenhimself/uz41Leno/2
  • 哦,我知道他们在做什么。所以他在他的图像周围有一个容器,该容器具有相对于容器大小的宽度和位置。里面的图像宽度为 100%。很抱歉让你走错了路。相应地包装每个图像并在它们上放置百分比宽度和位置,您应该会看到类似的效果。然而,就像我之前说的,它们会相互重叠,你需要 JS 在调整大小后移动它们
  • 啊,我明白了,很抱歉造成混乱——那是我的错!是的,我看了一下他们的 CSS,但我希望只用 CSS 来解决这个问题。 (另外,看起来他使用 CSS 来分配图像的位置。我似乎是 JS 脚本提供动画功能)。是否考虑过仅使用 CSS 实现效果的可能性?
猜你喜欢
  • 1970-01-01
  • 2016-03-18
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 2013-04-28
  • 2016-02-18
  • 2014-06-24
相关资源
最近更新 更多