Sử dụng @Media trong CSS để tạo Responsive

Tính năng Responsive CSS website ngày càng được chú trọng trong thiết kế. Hầu hết các trang web hiện nay đều bắt buộc phải có tính năng này. Khi sử dụng website của bạn sẽ co giản theo bất cứ màn hình thiết bị nào. Chẳng hạn khi người dùng vào bằng điện thoại giao diện không bị vỡ khung hay tràn ra ngoài.

Media CSS là gì?

Media CSS là một trong những công nghệ được giới thiệu trong ngôn ngữ CSS3. Khi sử dụng website sẽ hiển thị theo các thông số quy định. Và được khai báo bắt đầu với cú pháp @media.

Cú pháp như sau:

@media not|only mediatype and (media feature) {
    CSS-Code;
}

Giải thích:

mediatype gồm có các thuộc tính như

  1. all: Dùng cho tất các các thiết bị
  2. print: Chỉ dùng cho máy in
  3. screen: Chỉ dùng cho máy tính và các thiết bị smart phone

Hướng dẫn Responsive với @Media trong CSS3

Trước tiên tại khu vực <head>…</head> bạn phải khai báo meta

<meta name="viewport" content="width=device-width, initial-scale=1">

Giải thích:

  • viewport: Đây là khung nhìn của người dùng. Viewport của điện thoại sẽ nhỏ hơn so với Destop.
  • with: là chiều rộng của khung nhìn
  • height: là chiều cao của khung nhìn
  • device-width: là chiều rộng cố định của thiết bị
  • initial-scale: sẽ đặt giá trị là 1 có nghĩa là không phóng to khi xem trên di động, tablet
  • minimum-scale: thiết lập mức phóng to tối thiểu
  • maximum-scale: là thiết lậpmức phóng to tối đa
  • min-device-width: Chiều rộng tối thiểu của device
  • max-device-width: Chiều rộng tối đa của device
  • min-device-height: Chiều cao tối thiểu của device
  • max-device-height: Chiều cao tối đa của device

Cách viết Media CSS

1. Sử dụng min-width là chiều rộng tối thiểu. Chẳng hạn với kích thước 480px thì các thuộc tính CSS sẽ không tác động tới 479px trở xuống.

@media screen and (min-width: 480px) {
  #content {width: 600px; float: left;}
  #sidebar {width: 200px; float: right}
}

2. Sử dụng max-width là chiều rộng tối đa. Chẳng hạn khi đặt max-width là 1024px thì từ kích thước 1025px trở lên không bị tác động.

@media only screen and (max-width: 1024px){
    .section {
        width: 100%;
    }
}

Tham khảo thêm màn hình cách thiết bị tại bài viết Responsive là gì? Hướng dẫn thiết kế Responsive Web Design

Ví dụ:

@media screen and (min-width: 769px) {
  .main-content {
    width: 600px;
    height: 300px;
    background: #ddd;
    float: left;
  }
  .sidebar-right {
  	width: 250px;
    height: 300px;
    background: #ddd;
    float: right;
  }
}

Với kích thước lớn hơn 769px thì sẽ được kết quả như bên dưới

responsive-5

Và mình sẽ sử dụng max-width: 768px có nghĩa là kích thước từ 768px trở xuống

@media screen and (max-width: 768px) {
  .main-content,
  .sidebar-right
  {
    width: 100%;
    background: #ddd;
    height: 300px;
    margin-bottom: 20px;
  }
  
}

responsive

[alert-box text=’Lưu ý: Cần phải thêm <meta name=”viewport” content=”width=device-width, initial-scale=1″> thì responsive mới hoạt động. ‘]

3. Kết hợp min-widthmax-width

Với cách này chỉ áp dụng CSS cho một kích thước nhất định mà thôi.

Ví dụ:

@media only screen and (min-device-width : 320px) and (max-device-width : 480px){
  body {
   width: 100%;
  }
}

Có rất nhiều kích thước thiết bị khác nhau. Tuy nhiên chúng ta chỉ nên sử dụng các điểm ngắt phổ biến.

responsive-css6

Với bài viết hướng dẫn sử dụng @media trong CSS bạn thấy thế nào. Chắc không quá khó đâu nhỉ? Để hiểu hơn nên tạo ra một file rồi chạy nó áp dụng những điểm ngắt mà mình giới thiệu ở trong bài viết ngay đi nhé.

Related Posts

Hover-CSS-1

Hiệu ứng rê chuột trong CSS

CSS là ngôn ngữ trang trí với nhiều hiệu ứng hay. Bạn sẽ thường gặp nhất là khi di chuyển chuột vào một liên kết (Link) hay…

Mẫu Form đăng nhập HTML và CSS đẹp mắt

Trong một số bài viết trên blog này mình đã chia sẻ về cách tạo một Form đăng nhập đơn giản. Nhưng để có một Form đẹp…

form-lien-he-4

Hướng dẫn tạo form liên hệ bằng HTML, CSS

Form liên hệ là một chức năng không thể thiếu cho blog, website. Thông qua Form độc giả, khách hàng có thể yêu cầu admin trợ giúp…

css-code-1

8 Cách viết CSS chuẩn, dễ đọc và tối ưu

Nói tới xây dựng giao diện phía Front-end không thể thiếu CSS. Ngôn ngữ được sử dụng phổ biến để sắp xếp bố cục các phần tử…

Thuộc tính text-shadow trong CSS

Trong những lúc rảnh rỗi mình thường hay nghịch ngợm một vài thứ hay ho tìm thấy trên internet. Đối với CSS thì text-shadow cũng là thuộc…

Thuộc tính Overflow trong CSS

Khi thiết kế web với HTML và CSS đôi khi chúng ta sẽ gặp phải tình trạng văn bản (text) bị tràn ra khỏi phần tử HTML…