Hướng dẫn
Quảng cáo

Cách xác định hoặc tạo stylesheet chỉ cho Internet Explorer

Chủ đề: HTML / CSSBài trước|Bài tiếp

Trả lời: Sử dụng bảng định kiểu (stylesheet) có điều kiện của IE

Nếu bạn là một nhà thiết kế web, bạn có thể có kinh nghiệm tồi tệ khi xử lý các lỗi IE. Hầu hết trường hợp bạn không thể thoát khỏi nó, có thể là do yêu cầu của dự án hoặc khách hàng của bạn vẫn đang sử dụng phiên bản cũ hơn của Internet Explorer (IE). Vì vậy, chúng ta hãy tìm cách sống chung với nó.

Mỗi phiên bản IE hoạt động hơi khác so với những phiên bản khác. Vì vậy, những gì chúng tôi làm ở đây là xác định các biểu định kiểu (stylesheet) riêng biệt cho các phiên bản trình duyệt IE khác nhau để xác định vấn đề chính xác trong một phiên bản cụ thể.

Giả sử thuộc tính CSS bạn đã xác định cho một số phần tử không hoạt động như mong đợi trong IE, nhưng nó hoạt động hoàn hảo trong các trình duyệt khác như Firefox hoặc Chrome. Vì vậy, về cơ bản những gì chúng ta làm là xác định một biểu định kiểu (stylesheet) chỉ nhắm mục tiêu trình duyệt IE và sau đó chúng ta điều chỉnh giá trị của thuộc tính đó hoặc thêm một số thuộc tính mới vào biểu định kiểu (stylesheet) này để khắc phục sự cố này. Đây là một ví dụ:

Ví dụ

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>IE Only Style Sheet</title>
<link rel="stylesheet" href="css/default.css">
<!--[if IE]>
    <link rel="stylesheet" href="css/ie.css">
<![endif]-->
</head>
<body>
    <h1>Define Style Sheet for IE</h1>
    <p>If you open this page in IE the output will be different.</p>
</body>
</html>

Các thẻ mở và thẻ đóng của các biểu định kiểu (stylesheet) có điều kiện chỉ là các chú thích HTML thông thường . Ở giữa các câu lệnh điều kiện được đặt có ý nghĩa như sau.

  • Ý nghĩa của "IF" và "IE" là khá rõ ràng.
  • ! là viết tắt của "not", vì vậy IE có nghĩa là "không phải IE".
  • gt là viết tắt của "lớn hơn".
  • gte là viết tắt của "lớn hơn hoặc bằng".
  • lt nghĩa là "nhỏ hơn".
  • lte có nghĩa là "nhỏ hơn hoặc bằng".

StyleSheets dành riêng chi IE

Các câu lệnh điều kiện có lẽ là cách phổ biến nhất để tạo các style sheet chỉ dành cho IE để sửa lỗi IE, đặc biệt là trong các phiên bản cũ hơn. Phần sau đây tóm tắt cú pháp để nhắm mục tiêu các phiên bản khác nhau của trình duyệt Internet Explorer.

Nhắm mục tiêu tất cả các phiên bản của IE

Ví dụ

<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="css/ie-only.css">
<![endif]-->

Nhắm mục tiêu Tất cả Trình duyệt Ngoại trừ IE

Ví dụ

<!--[if !IE]>
    <link rel="stylesheet" type="text/css" href="css/all-except-ie.css">
<![endif]-->

Chỉ nhắm mục tiêu Phiên bản IE9

Ví dụ

<!--[if IE 9]>
    <link rel="stylesheet" href="css/ie9.css">
<![endif]-->

Nhắm mục tiêu IE9 và các phiên bản cao hơn

Ví dụ

<!--[if gte IE 9]>
    <link rel="stylesheet" href="css/ie9-and-higher.css">
<![endif]-->

Tương tự, bạn có thể xác định biểu định kiểu cho các phiên bản khác của Internet Explorer.


Câu hỏi liên quan

Dưới đây là một số câu hỏi thường gặp khác liên quan đến chủ đề này:

Advertisements