Cuối cùng, tôi đã thiết kế các trang web đáp ứng tốt hơn và tôi thường xuyên sử dụng các truy vấn phương tiện CSS. Một mô hình mà tôi nhận thấy là thứ tự mà các truy vấn phương tiện được xác định thực sự quan trọng. Tôi đã không thử nghiệm nó trên mọi trình duyệt mà chỉ trên Chrome. Có lời giải thích cho hành vi này không? Đôi khi, thật khó chịu khi trang web của bạn không hoạt động như bình thường và bạn không chắc đó là truy vấn hay thứ tự mà truy vấn được viết.
Đây là một ví dụ:
HTML
<body>
<div class="one"><h1>Welcome to my website</h1></div>
<div class="two"><a href="#">Contact us</a></div>
</body>
CSS:
body{
font-size:1em; /* 16px */
}
.two{margin-top:2em;}
/* Media Queries */
@media (max-width: 480px) {
.body{font-size: 0.938em;}
}
/* iphone */
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
body {font-size: 0.938em;}
}
/*if greater than 1280x800*/
@media (min-width: 1200px) {
.two{margin-top:8em;}
}
/*1024x600*/
@media (max-height: 600px) {
.two{margin-top:4em;}
}
/*1920x1024*/
@media (min-height: 1020px) {
.two{margin-top:9em;}
}
/*1366x768*/
@media (min-height: 750px) and (max-height: 770px) {
.two{margin-top:7em;}
}
Tuy nhiên, nếu cuối cùng tôi viết truy vấn cho 1024x600, trình duyệt sẽ bỏ qua nó và áp dụng giá trị lề được chỉ định trong phần đầu của CSS (margin-top: 2em).
/* Media Queries - Re-arranged version */
@media (max-width: 480px) {
.body{font-size: 0.938em;}
}
/* iphone */
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
body {font-size: 0.938em;}
}
/*if greater than 1280x800*/
@media (min-width: 1200px) {
.two{margin-top:8em;}
}
/*1920x1024*/
@media (min-height: 1020px) {
.two{margin-top:9em;}
}
/*1366x768*/
@media (min-height: 750px) and (max-height: 770px) {
.two{margin-top:7em;}
}
/*1024x600*/
@media (max-height: 600px) {
.two{margin-top:4em;}
}
Nếu hiểu biết của tôi về các truy vấn phương tiện là đúng, thứ tự sẽ không thành vấn đề, nhưng có vẻ như nó đúng. Điều gì có thể là lý do?