【问题标题】:CSS media queries for width or heightCSS 媒体查询宽度或高度
【发布时间】:2013-10-24 21:53:54
【问题描述】:

我在全屏页面的中心放置了一个徽标。

img.logo {
        width: 920px;
        height: 552px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -460px;
        margin-top: -276px;
    }

这工作正常。 现在我想在不同的设备高度和宽度上有不同的尺寸,所以我尝试使用媒体查询。

@media (max-width: 991px), (max-height: 460px) {
    img.logo {
        width: 235px;
        height: 141px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -117px;
        margin-top: -70px;
    }   
}
@media (min-width: 992px) and (max-width: 1199px), (min-height: 300px) and (max-height: 649px) {
    img.logo {
        width: 533px;
        height: 320px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -276px;
        margin-top: -160px;
    }   
}
@media (min-width: 1200px), (min-height: 650px) { 
    img.logo {
        width: 920px;
        height: 552px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -460px;
        margin-top: -276px;
    }
}

但如果两个参数同时更改,这仍然有效。 我想把它分开,这样你就可以改变浏览器的高度和图像大小或浏览器的宽度或两者兼而有之。

图片(徽标)应始终位于页面中间。

【问题讨论】:

  • 多用逗号,少用ands

标签: html css responsive-design media-queries


【解决方案1】:

如果您以这种方式将图像置于其父级中,则不需要所有这些边距偏移:

img.logo {
   width: 350px; //or whatever
   height: 350px; //or whatever (maybe auto)
   position:absolute;
   top:0;
   bottom:0;
   left:0;
   right:0;
   margin:auto;
}

然后您可以使用媒体查询来更改只是图像大小:

@media (max-width: 400px) {
    img.logo {
        width: 150px;
        height: 150px;
    }   
}

我发了JSFiddle example

【讨论】:

  • 好的,谢谢,但这只是改变了与浏览器宽度相关的图像,而不是高度。
  • 我明白了。 @media(最大宽度:991px),(最大高度:680px){...}
  • 使用逗号分隔的查询是正确的 (developer.mozilla.org/en/CSS/Media_queries) - 它是一个“或”,因此如果满足任一子句,则应用样式。
猜你喜欢
  • 2012-07-09
  • 2015-01-16
  • 2014-12-04
  • 1970-01-01
  • 2017-10-19
  • 2021-10-25
  • 1970-01-01
  • 2017-07-19
相关资源
最近更新 更多