Media Queries - ในระหว่างความกว้างสอง


141

ฉันพยายามใช้คำสั่งสื่อ CSS3 เพื่อสร้างคลาสที่ปรากฏเฉพาะเมื่อความกว้างมากกว่า 400px และน้อยกว่า 900px ฉันรู้ว่านี่อาจจะง่ายมากและฉันก็ขาดอะไรที่ชัดเจน แต่ฉันไม่สามารถเข้าใจได้ สิ่งที่ฉันได้มาคือโค้ดด้านล่างขอขอบคุณสำหรับความช่วยเหลือ

@media (max-width:400px) and (min-width:900px) {
    .class {
        display: none;
    }
}

คำตอบ:


270

คุณต้องเปลี่ยนค่าของคุณ:

/* No greater than 900px, no less than 400px */
@media (max-width:900px) and (min-width:400px) {
    .foo {
        display:none;
    }
}​

การสาธิต: http://jsfiddle.net/xf6gA/ (ใช้สีพื้นหลังเพื่อให้ง่ายต่อการยืนยัน)


4
max-widthและmin-widthควรกลับรายการ วิธีนี้อ่านง่ายขึ้น
machineaddict

33

@ Jonathan Sampson ฉันคิดว่าวิธีการแก้ปัญหาของคุณผิดถ้าคุณใช้หลาย@media

คุณควรใช้ ( ความกว้างต่ำสุดก่อน ):

@media screen and (min-width:400px) and (max-width:900px){
   ...
}

10
คำตอบที่ยอมรับนั้นไม่ผิด แต่ฉันคิดว่าการใช้ความกว้างขั้นต่ำถึงความกว้างสูงสุดเป็นวิธีการที่ชัดเจนและอ่านง่ายขึ้น
เดฟพาวเวอร์

1
ยอมรับด้วย @DavePowers ในกรณีของฉันฉันมีแบบสอบถามสื่อของฉันรูปแบบเช่น @WalkerNuss แต่ได้ลืมครั้งแรกหลังจากที่and @media screenการแทรกandแก้ไขครั้งแรกนี้สำหรับฉัน
Kyle Vassella

4

แค่อยากจะ.scssยกตัวอย่างของฉันที่นี่ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดโดยเฉพาะอย่างยิ่งฉันคิดว่าถ้าคุณปรับแต่งมันเป็นเรื่องดีที่จะกำหนดความกว้างเพียงครั้งเดียว! มันไม่ฉลาดที่จะใช้มันทุกหนทุกแห่งคุณจะเพิ่มปัจจัยมนุษย์อย่างทวีคูณ

ฉันรอคอยสำหรับข้อเสนอแนะของคุณ!

// Set your parameters
$widthSmall: 768px;
$widthMedium: 992px;

// Prepare your "function"
@mixin in-between {
     @media (min-width:$widthSmall) and (max-width:$widthMedium) {
        @content;
     }
}


// Apply your "function"
main {
   @include in-between {
      //Do something between two media queries
      padding-bottom: 20px;
   }
}

หากคุณใช้พารามิเตอร์ในมิกซ์อินมันอาจจะเป็น "ฟังก์ชั่น" ...
1984

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.