响应 CSS @media 查询

Responsive CSS @media queries

为了响应我的网站,我使用了这样的媒体查询

@media screen and (max-width: 320px){code}
@media screen and (max-width: 480px){code}
@media screen and (max-width: 640px){code}

但是当我尝试测试我的网站时,我遇到了一些问题。一种问题是@media 320px 没问题,但是当我将我的网页 320px 调整为 480px 或 640px 默认情况下 320px 即将到来并且其他两个查询不起作用。即使我尝试使用 min-width:320px 但结果是一样的。现在我该怎么办? 我的另一个问题是:最大宽度和最小宽度有什么区别?我应该在什么时候使用哪一个?

也试过这个。 代码:

    @media screen and (min-width: 320px){code}
    @media screen and (min-width: 480px){code}
    @media screen and (min-width: 640px){code}

完整的响应式代码,

代码:

/*640px*/
@media screen and (min-width : 640px) {
    .colum {
        max-width: 960px;
        margin: 0 auto;
    }
    .navbar-header h1 {
        margin-left: 20px;
    }
    .welcome_text h4 {
        font-size: 25px;
    }
    .welcome_text h1 {
        font-size: 50px;
        letter-spacing: 20px;
    }
    
    
    .promo_title h1, .work_title h1 {
        max-width: 640px;
    }
    .promo_title p, .work_title p{font-size: 18px;
    color: #7e8287;
    width: 620px;
    padding: 0;
    }
    .promo_list{
        margin-bottom: 390px;
    }
    
    .fix1{
        overflow: hidden;
    }
    .clear1 {
        clear: both;
        margin-top: 20px;
    }
    .extramarg {
        margin-top: 30px;
    }
    .rightborder {
    position: absolute;   
    height: 175px;
    border-right: 1px solid #d9dbdb;
    right: 313px;
    }
    .single_list {
        border-right: none;
        width: 315px;
    }
    .rightimg {
        background: none;
        right: 0;
        top: 0;
        width: 0;
        height: 0;
        opacity:0;
    }
    .service_list {
        padding: 60px 25px 20px;
        text-align: center;
    }
    .leftarea {
        width: 640px;
        padding: 0 25px;
    }
    .service_list h1:before {
        left: 36%;
    }
    .service_item .ss_list {
        width: 295px;
        padding-left: 0;
        padding-bottom: 30px;
        text-align: center;
    }
    .work_title p {
        margin: 0;
    }
    .work_slider {
        width: 50%;
    }
    .slider_detail h3 {
        padding-top: 60px;
    }
    .promo_title h1, .work_title h1 {
        font-size: 40px;
    }
    .msg_area .colum {
        width: 640px;
    }
    .msg_area textarea {
        width: 570px;
    }
    .contact input[type="text"], .contact input[type="email"] {
        width: 540px;
    }
    .submit a {
        padding: 10px;
    }
    .promo_title, .work_title {
        padding-top: 60px;
    }
}

/*480 */
@media screen and (min-width : 480px) {
    .colum {
        max-width: 320px;
        margin: 0 auto;
    }
    .navbar-header h1 {
        margin-left: 20px;
    }
    .welcome_text h1 {
    font-size: 25px;
    margin: 12px 0;
    letter-spacing: 12px;
    }
    .welcome_text h4 {
        font-size: 15px;
    }
    .promo_title h1, .work_title h1 {
        max-width: 320px;
    }
    .promo_title p, .work_title p{
    font-size: 12px;
    color: #7e8287;
    width: 340px;
    padding:0;
    }
    .single_list {
        border-bottom: 1px solid #d9dbdb;
        border-right: 0;
        padding: 20px 0;
        width: 320px;
    }
    .promo_list div:last-child {
      border-bottom: 0;
    }
    .promo_area {
        margin-bottom: -230px;
    }
    .floatleft {
        float: none;
    }
    .leftarea {
        width: 320px;
    }
    .leftarea h1 {
       text-align: center
    }
    .service_list p {
            padding: 35px 0;
    text-align: center;
    }
    .service_list h1:before {
        left:75px;
    }
    .service_list h1 {
        font-size: 38px;
    }
    .service_list {
        padding: 60px 0;
    }
    .service_item .ss_list {
        width: 320px;
        padding-left: 0;
        padding-bottom: 30px;
        text-align: center;
        }
    .work_slider {
        width: 80%;
        margin: 0 auto;
    }
    .slider_detail h3 {
        padding-top: 80px;
    }
    .promo_title h1, .work_title h1 {
        font-size: 30px;
    }
    .rightimg {
      background:none;
      right: 0;
      top: 0;
      width:0;
      height: 0;
      opacity: 0;
    }
    .contact input[type="text"], .contact input[type="email"], .contact textarea{
        width:320px;
    }
    .submit a {
        padding: 10px;
    }
    .promo_title, .work_title {
        padding: 40px 0;
    }
}


/* Smartphones (portrait and landscape) ----------- */
@media screen and (min-width : 320px) {
    .colum {
        max-width: 320px;
        margin: 0 auto;
    }
    .navbar-header h1 {
        margin-left: 20px;
    }
    .welcome_text h1 {
    font-size: 25px;
    margin: 12px 0;
    letter-spacing: 12px;
    }
    .welcome_text h4 {
        font-size: 15px;
    }
    .promo_title h1, .work_title h1 {
        max-width: 320px;
    }
    .promo_title p, .work_title p{
    font-size: 12px;
    color: #7e8287;
    width: 300px;
    padding:0;
    }
    .single_list {
        border-bottom: 1px solid #d9dbdb;
        border-right: 0;
        padding: 20px 0;
        width: 320px;
    }
    .promo_list div:last-child {
      border-bottom: 0;
    }
    .promo_area {
        margin-bottom: -230px;
    }
    .floatleft {
        float: none;
    }
    .leftarea {
        width: 320px;
    }
    .leftarea h1 {
       text-align: center
    }
    .service_list p {
            padding: 35px 0;
    text-align: center;
    }
    .service_list h1:before {
        left:75px;
    }
    .service_list h1 {
        font-size: 38px;
    }
    .service_list {
        padding: 60px 0;
    }
    .service_item .ss_list {
        width: 320px;
        padding-left: 0;
        padding-bottom: 30px;
        text-align: center;
        }
        .work_slider {
        width: 100%;
        }
    .slider_detail h3 {
        padding-top: 60px;
    }
    .promo_title h1, .work_title h1 {
        font-size: 30px;
    }
    .rightimg {
      background:none;
      right: 0;
      top: 0;
      width:0;
      height: 0;
      opacity: 0;
    }
    .contact input[type="text"], .contact input[type="email"], .contact textarea{
        width:320px;
    }
    .submit a {
        padding: 10px;
    }
    .promo_title, .work_title {
        padding: 40px 0;
    }
}

试吹代码:

@media screen and (max-width: 320px){code} @media (min-width: 320px) and (max-width: 480px) {code} @media (min-width: 480px) and (max-width: 640px) {code} 希望你的问题能得到解决

试试这个。

<!DOCTYPE html>
<html>
<head>
<style>
body {
    background-color: lightblue;
}

@media screen and (max-width: 850px) {
    body {
        background-color: lightcoral;
    }
}
@media screen and (max-width: 480px) {
    body {
        background-color: lightgreen;
    }
}
</style>
</head>
<body>

<h1>Resize the browser window to see the effect!</h1>
<p>The media query will only apply if the media type is screen and the viewport is 480px wide or wider.</p>

</body>
</html>

这是错误的代码.. @media 屏幕和(最小宽度:320px){ 此代码将 运行 在屏幕 320px 及以上 如果你把代码放在这里当然这个代码将 运行 在 480px 和 680px }

top 阻止 480px 和 680px 的代码 做成这样 @media 屏幕和(最小宽度:320px)和(最大宽度:479px){ 这里的代码 }

(编辑说明:更正了一些错别字和错误)

你要考虑到 CSS 是 "cascading" (= falling down),这意味着:如果你对同一个元素有两个不同的规则,后者 (= lower) 将覆盖较早的一个。所以在你的第一个代码示例中:

@media screen and (max-width: 320px){code}
@media screen and (max-width: 480px){code}
@media screen and (max-width: 640px){code}

在第三个媒体查询(最大宽度:640)中写入的任何内容都将覆盖在第一个媒体查询中写入的内容,因为宽度低于 320px 的所有内容都是 also宽度低于 640 像素。

所以你有两个选择:

1.) 转单:

@media screen and (max-width: 640px){code}
@media screen and (max-width: 480px){code}
@media screen and (max-width: 320px){code}

那样的话,如果屏幕是 300px 宽,它将首先遵循前两个查询的规则,然后是第三个查询中的规则,这将覆盖其他的。这称为桌面优先方法,因为它首先列出了更大(桌面)屏幕的规则(在媒体查询上方),然后分三步(首先最大 640,然后 480,然后 320px)被较小设备的规则覆盖).因此,一个 450 像素宽的平板手机将读取第一个和第二个查询中的规则(第二个覆盖第一个)然后停止并忽略第三个媒体查询中的规则,因为它在下面 not 320 像素宽。

替代方案:

2.) 按升序使用媒体查询,但最小宽度为:

@media screen and (min-width: 320px){code}
@media screen and (min-width: 480px){code}
@media screen and (min-width: 640px){code}

这是一种移动设备优先的方法:它首先列出移动设备的规则(即 至少 320 像素宽的所有内容),然后再进一步。因此 360px 设备将在第二次媒体查询后停止读取规则,台式计算机将读取所有三个规则,同样,第三条规则中的规则将推翻第一个查询中的规则。