Màn hình @media và (max-width: 1024px) có nghĩa là gì trong CSS?


245

Tôi đã tìm thấy đoạn mã này trong một tệp CSS mà tôi được thừa hưởng, nhưng tôi không thể hiểu ý nghĩa của nó:

@media screen and (max-width: 1024px){
    img.bg {
        left: 50%;
        margin-left: -512px; }
}

Cụ thể, những gì đang xảy ra trên dòng đầu tiên?

Câu trả lời:


306

Đó là một truy vấn truyền thông. Nó ngăn CSS bên trong nó chạy trừ khi trình duyệt vượt qua các bài kiểm tra mà nó chứa.

Các thử nghiệm trong truy vấn phương tiện này là:

  1. @media screen- Trình duyệt tự nhận mình đang ở trong danh mục màn hình trực tuyến. Đây đại khái nghĩa là trình duyệt xem xét bản thân theo lớp desktop - như trái ngược với ví dụ như một của trình duyệt điện thoại di động (lưu ý rằng iPhone, và các trình duyệt điện thoại thông minh khác, làm tự nhận mình như là trong các loại màn hình), hoặc một đọc màn hình - và rằng nó được hiển thị trang trên màn hình, thay vì in nó.

  2. max-width: 1024px- chiều rộng của cửa sổ trình duyệt (bao gồm thanh cuộn) là 1024 pixel trở xuống. ( CSS pixel, không phải pixel thiết bị .)

Thử nghiệm thứ hai cho thấy điều này nhằm hạn chế CSS cho iPad, iPhone và các thiết bị tương tự (vì một số trình duyệt cũ hơn không hỗ trợ max-widthtruy vấn phương tiện và rất nhiều trình duyệt máy tính để bàn được chạy rộng hơn 1024 pixel).

Tuy nhiên, nó cũng sẽ áp dụng cho các cửa sổ trình duyệt máy tính để bàn rộng dưới 1024 pixel, trong các trình duyệt hỗ trợ max-widthtruy vấn phương tiện.

Đây là thông số của Media Queries, nó khá dễ đọc:


Nếu chiều rộng màn hình của tôi trên 1200px, làm thế nào để chỉ định trong màn hình @media
sanoj lawrence

2
bạn chỉ có thể sử dụng (min-width: 1200px) thay vì sử dụng chiều rộng tối đa hoặc bạn chỉ có thể có nó như CSS thông thường mà không cần truy vấn phương tiện và sử dụng 'max-width' để ghi đè lên điều này khi đi đến một thiết bị nhỏ hơn
MintWelsh

Có cách nào để chỉ tạo hiệu ứng cho kiểu dáng trên máy tính để bàn (KHÔNG phải di động) trong khi bạn thay đổi kích thước khung nhìn không? Vì vậy, nếu tôi tự điều chỉnh lại kích thước trình duyệt của mình thành 'chiều rộng tối đa 720px', nó sẽ sử dụng một câu lệnh đa phương tiện phát hiện bạn trên máy tính để bàn không di động, và bạn hiện đang ở dưới 720px?
wharfdale

@ JordanC26: có vẻ như bạn đang đặt câu hỏi và bạn muốn có nút Hỏi Hỏi Câu gần góc trên bên phải của màn hình. Trước khi bạn sử dụng điều đó, bạn có thể muốn xác định những gì bạn có ý nghĩa của máy tính để bàn và trên điện thoại di động. Microsoft Surface di động hay máy tính để bàn? Tại sao? Còn những thiết bị trong tương lai chưa được phát minh thì sao?
Paul D. Chờ


10

Nó nói: Khi trang hiển thị trên màn hình ở độ phân giải tối đa 1024 pixel, sau đó áp dụng quy tắc tuân theo.

Như bạn có thể đã biết trong thực tế, bạn có thể nhắm mục tiêu một số CSS đến một loại phương tiện có thể là một trong những thiết bị cầm tay, màn hình, máy in, v.v.

Có một cái nhìn ở đây để biết chi tiết ..


3
Tôi sẽ không đưa ra giả định rằng anh ấy biết điều đó.
jcolebrand

6

Trong trường hợp của tôi, tôi muốn tập trung logo của mình trên một trang web khi trình duyệt có 800pxhoặc ít hơn, sau đó tôi đã làm điều này bằng cách sử dụng @mediathẻ:

@media screen and (max-width: 800px) {
  #logo {
    float: none;
    margin: 0;
    text-align: center;
    display: block;
    width: auto;
  }
}

Nó làm việc cho tôi, hy vọng ai đó tìm thấy giải pháp này hữu ích. :) Để biết thêm thông tin xem điều này .



1

Điều đó có nghĩa là nếu kích thước màn hình là 1024 thì chỉ áp dụng dưới các quy tắc CSS.


1

Nếu điều kiện truy vấn phương tiện của bạn là đúng thì CSS của bạn với điều kiện đó sẽ hoạt động. Điều đó có nghĩa là CSS trong kích thước pixel điều kiện truy vấn phương tiện của bạn sẽ có hiệu lực hoặc nếu không thì điều kiện đó sẽ không có nghĩa là nếu chiều rộng của thiết bị lớn hơn 1024px so với CSS của bạn sẽ không hoạt động. Vì điều kiện truy vấn phương tiện của bạn sai.

max-width là giới hạn CSS tối đa của bạn cho đến chiều rộng đó.


0

Cũng đáng chú ý, bạn có thể sử dụng 'em' cũng như 'px' - blog và các trang web dựa trên văn bản làm điều đó bởi vì sau đó trình duyệt đưa ra quyết định bố cục liên quan nhiều hơn đến nội dung văn bản.

Trên Wordpress twentysixteen, tôi muốn khẩu hiệu của mình hiển thị trên điện thoại di động cũng như máy tính để bàn, vì vậy tôi đặt nó trong style.css chủ đề con của tôi

@media screen and (max-width:59em){
    p.site-description {
        display:    block;
    }
}

0

Nó nhắm mục tiêu một số tính năng được chỉ định để thực thi một số mã khác ...

Ví dụ:

@media all and (max-width: 600px) {
  .navigation {
    -webkit-flex-flow: column wrap;
    flex-flow: column wrap;
    padding: 0;

  }

đoạn trích trên cho biết nếu thiết bị chạy chương trình này có màn hình có chiều rộng 600px hoặc nhỏ hơn 600px, trong trường hợp này, chương trình của chúng tôi phải thực hiện phần này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.