2012-01-24 35 views
42

Tôi muốn hiển thị cùng một tập hợp các kiểu CSS cho những người in trang (phương tiện = in) và những người đang duyệt trên điện thoại di động. Có cách nào tôi có thể kết hợp các truy vấn phương tiện CSS?Kết hợp các truy vấn phương tiện CSS

Something như

@media only print or @media only screen and (max-device-width: 480px) { 
    #container { 
    width: 480px; 
    } 
} 
+0

liên quan: http://stackoverflow.com/questions/7668301/is-it-possible-to-embed -media-queries-within-media-queries –

Trả lời

56

Tách chúng bằng dấu phẩy:

@media only print, only screen and (max-device-width: 480px) 

See the spec, đặc biệt, ví dụ VI (nhấn mạnh thêm):

Một số truy vấn phương tiện truyền thông có thể được kết hợp trong một danh sách truy vấn phương tiện truyền thông. A danh sách truy vấn phương tiện được phân cách bằng dấu phẩy. Nếu một hoặc nhiều phương tiện truyền thông truy vấn trong danh sách được phân tách bằng dấu phẩy là đúng, toàn bộ danh sách là đúng, và ngược lại sai. Trong cú pháp truy vấn phương tiện, dấu phẩy biểu thị hợp lý HOẶC, trong khi từ khóa ‘và’ thể hiện một logic AND.

tôi nghi ngờ rằng thứ hai only là cần thiết, vì vậy bạn có thể làm:

@media only print, screen and (max-device-width: 480px) 
+0

Toán tử "only" chỉ được sử dụng để áp dụng kiểu nếu toàn bộ truy vấn phù hợp, hữu ích để ngăn các trình duyệt cũ áp dụng các kiểu đã chọn. Vì vậy, chỉ cần sử dụng dấu phẩy ... ví dụ: nếu bạn muốn áp dụng kiểu khi thiết bị ở chế độ nằm ngang: @media (min-width: 700px) và (orientation: landscape) {...} – Aruna

3

Từ https://developer.mozilla.org/en/CSS/Media_queries

Bạn có thể kết hợp phương tiện truyền thông nhiều truy vấn trong một danh sách bằng dấu phẩy; nếu bất kỳ truy vấn phương tiện nào trong danh sách là đúng, thì tờ áp dụng kiểu được liên kết được áp dụng. Điều này là tương đương với một hoạt động logic "hoặc".

Bạn chỉ cần xóa số thứ hai @media và thêm một số dấu ngoặc vuông.

Các vấn đề liên quan