IE - Internet Explorer là trình duyệt Internet phổ biến nhất do nó được tích hợp chặt chẽ với hệ điều hành Windows, lợi thế đó cho thấy sự ích kỉ và sinh ra sự áp đặt đối với người dùng, đặc biệt là các nhà phát triển. Có những đoạn mã đúng chuẩn XHTML có thể chạy tốt trên tất cả các trình duyệt đạt chuẩn hiển thị XHTML nhưng chưa hẳn nó sẽ hiển đúng trên IE thậm chí IE còn không thèm trả lại kết quả ![]()
Dưới đây là 7 thủ thuật CSS thường dùng đối với các lỗi độc quyền của ngài IE trong quá trình thiết kế một trang Web.
- Lỗi hiển thị khối: Sửa lỗi hiển thị cho các phiên bản IE6 về trước khi viền và khoảng cách với nội dung bao gồm cả chiều rộng của đối tượng.
padding: 4em; border: 1em solid red; width: 30em; width/**/:/**/ 25em;
- Ghi chú điều kiện: Những ghi chú này đơn giản là những ghi chú chỉ hiển thị đối với những phiên bản trình duyệt nhất định do từng phiên bản có những lỗi khác nhau.
Đoạn mã trên sẽ hiển thị mã CSS tương ứng trên tất cả các phiên bản trình duyệt IE, nếu bạn chỉ muốn nó được trình duyệt IE v5.01, v5.5 và v6 đọc được thì có thể dùng đoạn mã sau:
Sau khi thử nghiệm chúng ta nên loai bỏ các đoạn mã đặc biệt trên để giảm nhẹ file CSS cũng như giảm tải cho các trình duyệt khác, để áp dụng các mã CSS đặc biệt trên cho IE thì chỉ cần thêm đoạn mã sau vào phần header là đạt yêu cầu được nạp trong IE:
Một vài kiểu mã điều kiện:
- IE - Bất kỳ phiên bản nào
- lt IE version - Phiên bản trước version
- lte IE version - Phiên bản trước hoặc bằng với version
- IE version - Chỉ với phiên bản version
- gte IE version - Phiên bản từ version
- gt IE version - Phiên bản mới hơn version
- Min-width và Max-width - Độ rộng lớn tối đa và tối thiểu của một đối tượng: Tất cả các phiên bản của IE đều giả ngu không hiểu đoạn mã này có ý nghĩa gì, chính vì vậy chúng ta phải tạo một cách khác để nó có thể biết ta đang muốn gì
dựa trên ví dụ về việc tạo một lớp có id id=”wrapper”:
Information
- This entry was posted on Monday, November 19th, 2007 at 9:03 pm by Narga and is filed under Phát triển Web.
- You can follow any responses to this entry through the RSS 2.0 feed.
- You can leave a response, or trackback from your own site.






Phần thủ thuật 1 viết tệ quá
Đọc xong ko hiểu gì cả. Đáng lẽ diễn đạt là chiều rộng bao gồm cả đường viền và khoảng cách với nội dung thì dễ hiểu hơn 
Phần đó liên quan đến cách xử lý box model hoàn toàn sai trong IE5, IE6. IE6 có fix nhưng chỉ fix trong chế độ standard mode, còn chế độ quirks mode thì không.
Chế độ chế độ quirks mode (buggy CSS) được bật khi khai báo doc type ko có hay thiếu. Ví dụ bác vnexpress.net sinh HTML ở chế độ quirks mode. IE6 cũng bật quirks mode nếu có thẻ XML khai báo trước doc type. Chi tiết xem ở http://msdn2.microsoft.com/en-us/library/ms535242.aspx
Theo chuẩn thì box model của 1 block element hiển thị như thế này
Khi đó thuộc tính width chỉ là width của content
Trong khi đó IE hiểu là width= content width + border + padding
Và như thế thì khi làm web trên FF, hiển thị trên IE khối content bao giờ cũng nhỏ hơn. Nếu padding và margin = 0 thì không sao. Nhưng nếu padding = 10 chẳng hạn thì tổng độ rộng của khối sẽ tăng lên 10 trong khi đó IE giữ nguyên. Nghĩa là IE luôn bỏ qua border và padding.
Điều này rất quan trọng với việc định vị khối. Ví dụ
div#column1 { width: 100px; padding: 10px; border: 10px; }Độ rộng chuẩn của #column1 sẽ là 140px trong khi đó bác IE là 100px. Vậy là bác IE sẽ hiển thị hở sườn rồi
Hack thế này
div#column1 { width: 100px; /* Mozilla/FF/Opera/Safari */ padding: 10px; border: 10px; } /* FF/Opera/SF sẽ bỏ qua mấy cái dấu escape này */ div#column1 { \width: 140px; /* IE 5 and 6/quirks mode hiểu là độ rộng bị cài lại thành 140*/ w\idth: 100px; /* IE6 standard mode thoát được escape nên set lại width về 100 và hiểu nó theo chuẩn */ }Bạn Narga dịch à
, cái này không thuyết phục lắm đâu
. Mình sẽ viết lý do trong blog của mình
. Có điều có thể tóm gọn là
1) nên dùng Conditional CSS (kiểu if IE mà cậu minh họa)
2) tránh mọi thứ hack khác.