MediaQueries在桌面上工作但不在移动设备上工作

时间:2015-09-21 11:59:41

标签: android html css media-queries

我知道这个问题已被多次询问,但我找到的答案没有帮助。 我的媒体查询正在桌面上正常工作,但不是在3个不同的Android设备上。没有任何变化,好像MQ不存在一样。 我只尝试使用全屏,屏幕。基本上所有选项,将我的元标记更改为您可以在下面看到的内容。

元:

 <meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1" name="viewport">
        <link rel="stylesheet" href="style_mini.css">
  

@media掌上电脑,屏幕和(max-width:48em){some style}

这是我的第一个网站,我真的不知道自己做错了什么。

好的,所以我花了几个小时测试我的设备和#34;思考&#34;他们有960px并使用媒体查询这个宽度而不是使用更小的MQ。 这里建议做的事情:http://webdesign.tutsplus.com/articles/quick-tip-dont-forget-the-viewport-meta-tag--webdesign-5972没有帮助。

html {} 
* {
 box-sizing: border-box;
 -moz-box-sizing: border-box;
 -webkit-box-sizing: border-box;
 -webkit-text-size-adjust:none;
 }
 body {
 font-family: 'Slabo 27px', serif;
 color: #3F4D59;
 background-color: #F2E9DE;
 width: 98%;
 margin: 0 auto;
}
.flex {
 display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: center;
align-content: center;
align-items: center;
}
.top {
flex-direction: row;
order: 1;
background-color: #F2E9DE;
justify-content: left;
align-content: left;
align-items: left;
}
.top {
width: 100%;
position: fixed;
top: 0px;
z-index: 1000;
margin: auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=92);
-moz-opacity: 0.92;
-khtml-opacity: 0.92;
opacity: 0.92;
}
.anchor {
display: block;
height: 200px;
/*same height as header*/

margin-top: -200px;
/*same height as header*/

visibility: hidden;
}
.content {
padding-top: 200px;
}
.header {
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
align-self: auto;
/*    min-width: 0;*/

min-height: auto;
width: 35%;
text-align: center;
font-size: 3em;
padding: 2%;
} 
.nav {
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
align-self: auto;
/*    min-width: 0;*/

min-height: auto;
width: 50%;
font-size: 2.5em;
text-align: right;
}
.nav a {
padding: 3%;
}
a:link,
a:visited {
color: #3F4D59;
text-decoration: none;
font-weight: bolder;
}
a:hover {
color: #9CA1A6;
text-decoration: none;
}
.stamp {
width: 15%;
}
.stamp {
background: url(images/kowalew_ALL.jpg);
display: block;
height: 200px;
width: 200px;
background-repeat: no-repeat;
/*    text-indent: -9999px;*/
}
.stamp:hover {
background-position: 0 -200px;
}
.offer {
order: 4;
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
align-self: auto;
min-width: 0;
min-height: auto;
padding-top: 3%;
padding-bottom: 4%;
padding-left: 2%;
background-image: url(images/pea3.jpg);
background-repeat: no-repeat;
background-size: cover;
}
h1 {
font-size: 2em;
color: #3F4D59;
} 
li {
font-size: 1.4em;
font-weight: 600;
text-align: left;
color: #F2E9DE;
}
.mini-contact {
order: 5;
background-color: #9ca1a6;
flex-direction: row;
}
.mini-contact p {
padding: 0 5%;
font-size: 1.2em;
}
.nolist {
list-style-type: none;
 }
.sectionheader {
text-align: center;
font-size: 2.5em;
font-weight: 800;
flex-direction: column;
background-color: #F2E9DE;
}
.subsectionheader {
text-align: center;
font-size: 1.8em;
background-color: #F2E9DE;
}
.gallery {
flex-direction: row;
background-color: #F2E9DE;
}
.gallery img {
 width: 20%;
 margin: 0.1%;
 border: solid 4px #3F4D59;
 }
.videocontainer iframe {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 border: solid 4px #3F4D59;
 }
.gallery img:hover {
 position: relative;
 overflow-x: hidden;
 border-radius: 10px;
 margin: auto 0;
 box-shadow: 7px 7px 10px #9ca1a6;
 transition: 0.5s ease-in-out;
 z-index: 2000;
 }
.right:hover {
transform: scale(2) translateX(-25%);
}
.left:hover {
transform: scale(2) translateX(25%);
}
.middle:hover {
transform: scale(2);
}
.videocontainer a img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: solid 4px #3F4D59;
}
.video {
flex-direction: row;
}
.videocontainer {
position: relative;
padding-bottom: 10%;
padding-top: 135px;
margin-right: 2%;
margin-left: 2%;
height: 0;
overflow: hidden;
flex-direction: column;
width: 33%;
order: 1
}
.caption {
flex-direction: row;
width: 100%;
padding: 0;
}
.caption p {
width: 33%;
padding: 0;
}
.backgroundcon {
background-color: #9ca1a6;
padding-bottom: 4%;
}
.con {
background-color: #9ca1a6;
}
.contact p {
font-size: 1.4em;
font-weight: 700;
 }
.map {
border: solid 3px #3F4D59;
 }
footer {
text-align: center;
padding-top: 3%;
padding-bottom: 2%;
}
/*MEDIA QUARIES*/

@media handheld, screen and (max-width: 85.375em) {
.hide {
    display: none;
}
}
@media handheld, screen and (max-width: 64em) {
.header {
    font-size: 2em;
 }
.nav {
    font-size: 1.8em;
 }
.subsectionheader {
    font-size: 1.3em;
 }
.sectionheader {
    font-size: 2em;
    font-weight: 300;
 }
 }
 @media handheld, screen and (max-width: 48em) {
 .shide {
    display: none;
 }
 .gallery img {
    width: 25%;
 }
 .contact p {
    font-size: 1.1em;
    font-weight: 300;
 }
.sectionheader {
    font-size: 1.8em;
}
.nav {
    width: 60%;
}
.header {
    width: 40%;
}
.content {
    padding-top: 130px;
}
}
@media handheld, screen and (max-width: 40em) {
.xshide {
    display: none;
}
.gallery img {
    width: 33%;
}
.top {
    flex-direction: column;
}
.header {
    flex-direction: row;
    width: 100%;
    text-align: center;
}
.nav {
    flex-direction: row;
    width: 100%;
    text-align: center;
}
.content {
    padding-top: 130px;
}
}
@media handheld, screen and (max-width: 30em) {
.xxshide {
    display: none;
}
.gallery img {
    width: 50%;
}
.offer {
    background-image: none;
    margin-top: 2px;
}
a:hover {
    color: #498099;
    text-decoration: none;
}
li {
    color: #3F4D59;
}
.top {
    background-color: #9ca1a6;
    box-shadow: 3px 3px 3px #a7a4a4;
    border: solid 1px #a7a4a4;
    border-radius: 5px;
}
.mini-contact {
    box-shadow: 3px 3px 3px #a7a4a4;
    border: solid 1px #a7a4a4;
    border-radius: 5px;
}
.nav a {
    padding-bottom: 3%;
}
.backgroundcon {
    box-shadow: 3px 3px 3px #a7a4a4;
    border: solid 1px #a7a4a4;
    border-radius: 5px;
}
.caption p {
    width: 50%;
}
.videocontainer {
    width: 50%;
}
.content {
    padding-top: 80px;
}
 }
@media handheld, screen and (max-width: 20em) {
.nav {
    flex-direction: column;
    width: auto;
}
.top {
    flex-direction: column;
}
.xxxshide {
    display: none;
}
li {
    font-size: 1.1em;
}
h1 {
    font-size: 1.5em;
}
footer {
    font-size: .8em;
}
}

2 个答案:

答案 0 :(得分:0)

尝试替换最大尺寸的单位:使用px代替em

以下是我一直用于媒体查询的代码示例,它始终适用于移动设备:

@media screen and (max-width : 1024px) {
    /* Change 1024 by what you need. */
}

以下是em单位的W3schools说明:

  

相对于元素的字体大小(2em意味着当前字体大小的2倍)

根据文档的字体大小定义媒体查询有点奇怪!

答案 1 :(得分:0)

您的媒体查询运行,他们只是没有做您期望的事情。我使用不同的屏幕尺寸得到了不同的结果,大多数是30em左右。要对此进行调试以了解发生的情况,您可以将color: bluecolor:red等添加到标题或正文标记中,然后显示更改。使用已编辑的媒体查询(对于px,内容替换为颜色)与HTML和桌面css进行演示jsfiddle

handheld与逗号一起使用意味着每个媒体查询都将针对任何手持设备运行,这可能会导致混淆的结果,因为屏幕大小将被忽略,如explained here。我没有在其他地方看到媒体查询中使用的handheld并且无法查看使用它的原因,除非您正在处理需要不同css而非相同大小桌面的非常大的手持设备。

从您的CSS看起来您可能没有意识到and (max-width: 48em)and (max-width:40em)的媒体查询将两者运行40em或更少的屏幕尺寸 - 某些行重复几个媒体查询。如果您希望(max-width:48em)不能为较小的尺寸运行,那么您可以添加与此类似的内容,但我建议转换为 px ,否则40.0001em(例如)赢了&#39 ; t触发查询:

 @media handheld, screen and (max-width: 48em) and (min-width:40.1em) {
 /* code for 40.1 to 48em */
 }
@media handheld, screen and (max-width: 40em) {
 /* code for 40em and under */
} 

另一种选择是反转先前的媒体查询中的任何问题,例如使用display: block来显示之前隐藏的内容。媒体查询按照给定的顺序运行。

您的代码不是MCVE,因为它应该是Stackoverflow的代码 - 大量编辑代码,无论您是在此处发布还是在自己的强文上调试,它都会帮助您解决错误。