CSS媒体查询相互推翻

时间:2013-04-14 17:26:22

标签: css media-queries

我的样式表中有几个媒体查询,每个都修改一些样式,但不修改其他样式。我正在使用max-width查询:

@media screen and (max-width: 1024px) {
    #header .span6 { width: 60%; margin-left: 200px; }
    #error .span6 { width: 60%; margin-left: 200px; }
    #timer-block { width: 60%; margin-left: 200px;}
    #timer { font-size: 5em; }
    #start-pause { margin-left: 200px; }
    .control { width: 297px; margin-top: 0; }
    #footer { width: 60%; margin-left: 200px; }
}

@media screen and (max-width: 768px) {
    #header .span6 { width: 80%; margin-left: 75px; }
    #error .span6 { width: 80; margin-left: 75px; }
    #timer-block { width: 80%; margin-left: 75px;}
    #timer { font-size: 5em; }
    #start-pause { margin-left: 75px; }
    .control { width: 300px; margin-top: -5px; }
    #footer { width: 80%; margin-left: 75px; }
}

@media screen and (max-width: 800px) {
    #header .span6 { width: 80%; margin-left: 75px; }
    h1 { font-size: 3.5em; margin-bottom: 0px;}
    #error .span6 { width: 80%; margin-left: 75px; }
    #timer-block { width: 80%; margin-left: 75px; }
    #timer { font-size: 5em; }
    .little { font-size: 0.5em; }
    #start-pause { margin-left: 75px; }
    .control { width: 312px; margin-top: -5px; }
    #footer { width: 80%; margin-left: 75px; }
}

@media screen and (max-width: 600px) {
    #header .span6 { width: 90%; margin-left: 25px; }
    #error .span6 { width: 90%; margin-left: 30px; }
    #timer-block { width: 90%; margin-left: 30px;}
    #start-pause { margin-left: 30px; }
    .control { width: 264px; margin-top: -5px; }
    #footer { width: 90%; margin-left: 25px; }
}

@media screen and (max-width: 480px) { 
    #header { margin-top: -10px; }
    #header .span6 { width: 90%; margin-left: 25px; }
    h1 { font-size: 3em; margin-left: -15px; padding-left: 10px; }
    #interval { width: 150px; height: 40px; font-size: 2em; margin-bottom: 20px; width: 150px; }
    #error .span6 { width: 90%; margin-left: 25px; }
    #timer-block { width: 90%; margin-left: 24px; height: 100px; padding: 10px; }
    #start-pause { margin-left: 25px; }
    .control { margin-top: -5px; width: 210px; }
    #footer { width: 100%; margin-top: -20px; margin-left: 0; }
}

@media screen and (max-width: 320px) { 
    #timer-block { width: 90%; margin-left: 15px; padding: 10px; font-size: 0.8em; }
    #header { margin-top: 0px; }
    #header .span6 { margin-left: 37px; }
    #interval { margin-top: -45px; margin-left: 20px; }
    #error .span6 { width: 90%; margin-left: 15px; }
    .control { width: 141px; margin-top: -10px; }
    #start-pause { margin-left: 15px; }
    #footer { width: 95%; margin-left: 10px; }
}

有没有办法可以改变我正在做的事情,以避免碰撞?这是我第一次使用媒体查询,所以我可能完全错过了一些东西。

3 个答案:

答案 0 :(得分:3)

而不是

@media screen and (max-width: 480px)

您可以使用

@media screen and (max-width: 480px) and (min-width: 321px)

这样它只会看到320到481之间的屏幕尺寸; 而不是0和481

答案 1 :(得分:2)

将最小宽度设置为比下一个查询的最大宽度高1个像素

实施例

@media screen and (min-width: 769px) and (max-width: 1024px) {
    #header .span6 { width: 60%; margin-left: 200px; }
    #error .span6 { width: 60%; margin-left: 200px; }
    #timer-block { width: 60%; margin-left: 200px;}
    #timer { font-size: 5em; }
    #start-pause { margin-left: 200px; }
    .control { width: 297px; margin-top: 0; }
    #footer { width: 60%; margin-left: 200px; }
}

答案 2 :(得分:1)

我认为在这种情况下你需要使用min-width来防止碰撞,例如:

@media only screen and (min-width : 321px) and (max-width : 480px) {
    /* Styles */
}