2009-03-14 52 views
5

Tôi đã xem xét một bản hack để giải quyết vấn đề CSS mà tôi có. Tôi đã sử dụng một để tạo quy tắc tùy chỉnh cho Internet Explorer.Phạm vi của * CSS hack là gì?

margin-top:45px; 
*margin-top:0px; 

Bản hack này có áp dụng cho tất cả các trình duyệt IE không? Liệu hack này có xuất hiện trong bất kỳ phiên bản nào của Firefox hoặc Safari không?

Trả lời

9

Điều này áp dụng cho IE7 trở xuống. Nhưng lưu ý rằng đây không phải là CSS hợp lệ và có thể bị hỏng bất kỳ lúc nào. Xem here để có danh sách toàn diện hơn về các hacks CSS khác nhau và trình duyệt nào chúng ảnh hưởng đến chúng.

Mặc dù Internet Explorer 7 điều chỉnh hành vi của nó khi một tên thuộc tính được bắt đầu bằng một dấu gạch dưới hoặc dấu gạch ngang, tiền tố nhân vật phi tự chữ và số khác được đối xử như họ trong IE6. Do đó, nếu bạn thêm ký tự không phải chữ và số như dấu sao (*) ngay trước tên thuộc tính, thuộc tính sẽ được áp dụng trong IE và không phải trong các trình duyệt khác. Không giống như phương thức gạch nối và gạch dưới, đặc tả CSS không đặt dấu hoa thị làm tiền tố, do đó việc sử dụng hack này có thể dẫn đến hành vi không mong muốn khi các đặc tả CSS phát triển.

Tôi đặc biệt khuyên bạn nên xem xét lại xem bạn có thực sự cần hack hay không và nếu không có cách nào tốt hơn để làm những gì bạn muốn.

+1

Vâng, tôi muốn không sử dụng nhận xét có điều kiện để bao gồm một biểu định kiểu khác, điều đó có nghĩa là một yêu cầu HTTP khác cho người dùng IE. – Sam152

+1

Đó là một chút của một tình trạng khó xử sai - bạn không nhất thiết phải chọn giữa (a) bảng định kiểu có điều kiện và (b) hacks CSS. Có nhiều cách để viết CSS để chúng trông giống nhau trong IE và các trình duyệt khác, mặc dù tôi thừa nhận điều đó khó hơn một chút. –

+0

Tình huống cụ thể im trong là một chút của một pickel. Một cái gì đó để làm với cách IE xử lý lồng nhau của UL và nổi. – Sam152

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