Mục đích của dấu hoa thị trước thuộc tính CSS


101

Phần sau được lấy từ thiết lập lại CSS của Yahoo. Ai đó có thể vui lòng giải thích mục đích của các dấu hoa thị không?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}

Câu trả lời:


117

Đây là một bản hack CSS dành riêng cho trình duyệt dành cho phiên bản 7 trở xuống của Internet Explorer.

*giá trị tài sản

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

* thuộc tính: giá trị áp dụng giá trị thuộc tính trong IE 7 trở xuống. Nó có thể hoạt động hoặc không hoạt động trong các phiên bản tương lai. Cảnh báo: điều này sử dụng CSS không hợp lệ.

Từ: http://www.javascriptkit.com/dhtmltutor/csshacks3.shtml


5

Đó là một cuộc tấn công Internet Explorer. Nếu bạn thêm một ký tự không phải chữ và số, chẳng hạn như dấu hoa thị (*) ngay trước tên thuộc tính, thuộc tính sẽ được áp dụng trong IE7 trở xuống, nhưng không áp dụng trong các trình duyệt khác.

http://www.javascriptkit.com/dhtmltutor/csshacks3.shtml


1

Tất cả các trình duyệt nhưng IE bỏ qua các quy tắc. Nó được gọi là hack ngôi sao. Tôi nghĩ rằng IE7 sẽ bỏ qua các quy tắc trong chế độ tiêu chuẩn.

Trong trường hợp này, quy tắc phông chữ được đặt và sau đó được ghi đè cho IE 6 và đôi khi là 7.


Đây không phải là hack html sao. Cái đó đi trong bộ chọn và là CSS hợp lệ.
bobince

@bobince Star Hack và Star HTML Hack là hai thứ khác nhau: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington

0

Theo như tôi biết, dấu hoa thị ngăn Firefox đọc thuộc tính, nhưng có hiệu lực trong IE.


0

Đó là một cuộc tấn công CSS, quy tắc đó sẽ chỉ được áp dụng cho IE7 trở xuống.

Tuy nhiên, tôi không khuyến khích sử dụng nó, có nhiều cách tốt hơn để khắc phục sự không tương thích của IE.


0

Đặt các ký tự như vậy là một cách hack / giải pháp để khiến IE 6 sử dụng thuộc tính của một kiểu, đồng thời ẩn nó khỏi các trình duyệt "lành mạnh" hơn.

Từ đây :

Để cắt ngắn một câu chuyện dài, trình phân tích cú pháp CSS của Internet Explorer quá tích cực trong việc cố gắng khám phá tên của các thuộc tính và trên thực tế sẽ bỏ qua các ký tự không phải là chữ và số. Từ thử nghiệm của tôi, điều này dường như đúng với trường hợp ít nhất là IE5 trở đi.

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.