根据高度和宽度制作图像

时间:2015-03-02 15:41:53

标签: javascript html css wordpress

我正在使用购买的Wordpress主题在一个客户的网站上工作(因此所有代码不一定是我的,但如果需要,我可以提取一些东西)。

着陆页有响应的背景图片。最重要的是,我需要使用图像来显示相关的徽标(我输入的字段用于文本,但它们允许图像没有问题)。图像周围也有边框环绕,然后人们可以从那里向下滚动以查看其余内容。

我的问题:在桌面上,徽标将重新调整,WIDTH正常。但是我的一个客户正在一个非常广泛的浏览器窗口中查看(我认为这对所有用户来说都是不寻常的,但它是客户端!),并且徽标不会随着HEIGHT更改而重新缩放,因此它们会被边界切断包裹。

我尝试过像

这样的事情
.home-section img {
max-height: 50%;
}    

这是主题开发人员最初提供的内容,也改变了50%到50vh(只是尝试了我在网上遇到的一些事情,而不是任何代码专家),以及此解决方案的变体HERE 没有运气。

我的(再次,部分)理解是因为没有明确设置背景图像的div的高度,我不能使用徽标/子元素的百分比高度,但有没有办法解决此?

我目前正在使用srcset来获取适合移动设备的徽标,但这不是一个完美的解决方案。我想也可能有一个javascript解决方案,但我只有75%左右的HTML&没有明确指示的JS和PHP并没有多少CSS。 (称之为有能力,但缺乏经验)。

您可以查看问题HERE

谢谢!

=============================================== ==

编辑: 一位同事遇到了这个解决方案,这大大改善了事情。问题仍然发生在足够短的浏览器(IE浏览器观看等),但适用于更大范围的视口大小:

div.home-section-image {
    min-width: 600px;
    max-width: 1080px;
    min-height: calc(690px * (90/150));
    height: 100vh;
    width: 100vh;
}

徽标现在垂直缩放到一个点,虽然视口高度仍然可以捕捉并切断它们,但处于更好的阈值(大约550px高,之前它发生在~720px高 - 现在远远超过正常人的最小浏览器大小,我的理解是~760px是平均值。

我试图将这与@ kburgie的代码建议结合起来,以使徽标完全位于绿色边框之上,但我的结果最终将徽标从页面顶部推下来,这更糟糕(对我来说,在横向Galaxy上) S3,我至少可以显示顶部徽标的主要方块,这对我来说足够了。)

感谢所有帮助过的人 - 我认为这可能是我现在可以提供的最佳解决方案!

2 个答案:

答案 0 :(得分:1)

似乎你应该能够组合宽度和高度媒体查询来捕捉边缘情况:

@media (min-width: 1200px) and (max-height: 500px) {
    .home-section img {
        height: 200px;
        width: auto;
    } 
}

答案 1 :(得分:0)

我没有足够的代表发表评论,或者我愿意。我认为isherwood的媒体查询太具体了。

响应式图像应该已经根据高度和宽度做出响应,处理它的最佳方法是使用图像宽度。

这是一个危险的选择器,你应该摆脱它:

img {
  height: 100%;
  width: auto;
}

它会影响您网站上的所有图片。你应该使用一个类。除此之外,您的图像已经设置为最大宽度:100%,这就是您所需要的。

专注于你的定位

第1步:删除上边距和下边

.home-section .container { margin: 0 auto; }

步骤2:将图像容器完全放在其父母的底部。然后它将始终保持在绿色边界之上。如果您只想在某个屏幕尺寸之上定位,请将其粘贴在媒体查询中。

.home-section-image {
  position: absolute;
  bottom: 10px;
 }